Sunteți pe pagina 1din 57

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

UM ESTUDO DA LGICA LINEAR COM APLICAO EM CINCIA DA COMPUTAO

TRABALHO DE GRADUAO

Felipe de Lima Athayde

Santa Maria, RS, Brasil 2010

UM ESTUDO DA LGICA LINEAR COM APLICAO EM 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

Orientador: Profa Dra Juliana Kaizer Vizzotto

Trabalho de Graduao No 307 Santa Maria, RS, Brasil 2010

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

A Comisso Examinadora, abaixo assinada, aprova o Trabalho de Graduao

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

COMISSO EXAMINADORA:

Profa Dra Juliana Kaizer Vizzotto (Presidente/Orientador)

Prof Dr Giovani Rubert Librelotto (UFSM)

Profa Dra Iara Augustin(UFSM)

Santa Maria, 15 de dezembro de 2010.

AGRADECIMENTOS

O presente trabalho produto de muito esforo e estudo. Sei que h muitos pontos a serem melhorados e o farei no decorrer de minha vida. Mais do que uma produo como requisito para concluso da graduao em Cincia da Computao, este trabalho resultado da concepo que tenho das coisas no momento atual de minha vida. Como parte do progresso natural das coisas, minha concepo evoluir, verei que o que acreditava ser verdadeiro no mais o ou nunca o foi e novos conhecimentos viro. Com o trmino deste trabalho, deixo meus sinceros agradecimentos a todos os meus amigos. Amigos, pois no h expresso mais abrangente e precisa para designar a relao afetiva que me une a todos que participaram da minha vida e pelos quais guardo carinho fraternal. Nos quatro breves anos que compreendem uma graduao, incrvel o quanto nos imposto aderir a um ambiente colaborativo, talvez o carter mais espontneo e invarivel da vida. A fora empregada por cada pessoa na nossa vida, com sua intensidade e direo, formam uma resultante quando devidamente somadas. Essas aes conjugadas ditam aonde chegaremos, onde estaremos em tantos anos, o quanto impulsionaremos a vida de outros e, consequentemente, o estado do mundo. Com tantas pessoas envolvidas em minha vida, direta ou indiretamente, muitas foram as foras atuando de modo a favorecer a completude de minha graduao. Agradeo a Deus, fora principal que atua permanentemente em favor do progresso universal. Agradeo minha famlia, pela permanente ateno e auxlio. Devo a todos da minha famlia o meu desenvolvimento pessoal, meus valores e minha conduta. Agradeo secretria do curso, Janice, por todos os esforos despendidos em meu favor. Tal auxlio no apenas contribuiu, mas permitiu que eu vencesse alguns obstculos que pareciam intransponveis. Alm disso, admirvel o quanto alm de suas funes esta pessoa, sempre simptica e sorridente, se colocou para auxiliar os alunos. Agradeo aos meus colegas de curso pela companhia, auxlio e aprendizado. Alguns destes contriburam bastante para que este trabalho fosse realizado. Agradeo aos professores do curso que realmente cumpriram com seu dever. Tambm aos professores que compuseram minha banca, por todo auxlio no presente trabalho. Agradeo tambm ao coordenador do curso que demonstrou muita responsabilidade e competncia no exerccio de suas funes, reetindo o sucesso de suas aes na qualidade de nossa graduao. Devo a escolha do tema do presente trabalho a uma das mentes mais brilhantes com as quais pude ter contato, atravs de seus textos, aulas e programas de rdio. ao contato com essa grande inteligncia que devo meus esforos de ascenso e esta enorme mudana de direo na vida. Agradeo ao professor Olavo de Carvalho.

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

Trabalho de Graduao Curso de Cincia da Computao Universidade Federal de Santa Maria UM ESTUDO DA LGICA LINEAR COM APLICAO EM CINCIA DA COMPUTAO Autor: Felipe de Lima Athayde Orientador: Profa Dra Juliana Kaizer Vizzotto Local e data da defesa: Santa Maria, 15 de dezembro de 2010. A cincia da computao se ocupa da automatizao do raciocnio para solucionar problemas e auxiliar no exerccio de determinadas atividades. Nesta rea, as lgicas clssica e intuicionista so muito utilizada no desenvolvimento de algoritmos que atendam s necessidades do mundo real. Porm, h restries que no so previstas pelos sistemas lgicos clssicos, como a escassez de recursos disposio neste mundo. Os sistemas lgicos usuais lidam com verdades gerais e imutveis. A lgica linear, por outro lado, foi desenvolvida para permitir a produo com base nas questes de realismo e preservao de recursos, to comuns no mundo construtivista em que se vive. Tais conceitos possuem grande receptividade em reas computacionais como inteligncia articial, sistema de tipos, interpretao abstrata e computao paralela. Este trabalho apresenta um estudo da lgica linear com aplicao em cincia da computao e com algum contraste com outros sistemas lgicos. Primeiro ser discutida a lgica linear como linguagem formal e seu sistema de deduo natural. Depois, para demonstrar como a lgica linear pode ser aplicada na cincia da computao, ser utilizada uma aplicao baseada em sistemas concorrentes, um dos grandes focos da lgica linear, desenvolvida para ilustrar uma aplicao desenvolvida de forma linear.

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

O ser humano, como um dos mais aptos usurios do intelecto, tem seu comportamento regido por relaes lgicas. Ainda mais, tanto no processo cognitivo quanto no de produo de conhecimento, tenta-se utilizar, ainda que inconscientemente, de elementos lgicos que coletados no decorrer da evoluo intelectual individual. O estudo de lgica pode ser sumarizado como o estudo do modo correto de raciocinar (GENSLER, 2002). A utilizao com rigor da lgica adotada principalmente em reas cientcas, onde as construes devem ser sistemticas de forma a garantir a unidade do saber e garantir a forma correta do raciocnio. Dentre as reas cientcas, a Cincia da Computao surgiu principalmente para auxiliar o ser humano no exerccio de atividades j realizadas anteriores ao advento tecnolgico e permitir que se avanasse em direo a solues que no eram possveis at ento. Na cincia da computao, a lgica formal fundamental, pois atravs dela que se mantm o rigor matemtico necessrio para dar conabilidade rea. atravs da utilizao correta da lgica que se pode desenvolver linguagens para modelar situaes encontradas para depois analis-las formalmente (HUTH; RYAN, 2004). Outras reas onde a lgica bastante utilizada a de interpretao abstrata (ANDREOLI; CASTAGNETTI; PARESCHI, 1993), sistema de tipos (BAILLOT, 2007; BAILLOT; HOFMANN, 2010; XI; ZHU; LI, 2004; SHI; XI, 2009), determinao de complexidade (GROHE, 1998; FREIRE, 2008) e outras. Pode-se consultar (HALPERN; HARPER, 2001) para uma abordagem aprofundada no assunto. O termo lgica per se remete diretamente lgica clssica, mas existem diversos tipos de lgicas que podem se mostrar convenientes dependendo das necessidades e da circunstncia em questo. Dentre os muitos sistemas lgicos que so utilizados em Cincia da Computao, so alguns deles: lgica clssica, lgica proposicional, lgica intuicionista,

13

lgica de predicados e lgica linear. Porm, o conhecimento de outros tipos de lgica alheios convencional no costuma ser amplamente explorado em muitos dos maiores cursos de Cincia da Computao no Brasil, como pode ser constatado atravs da anlise da ementa destes cursos (UFRGS, 2010; UFPEL, 2010; PUC-RIO, 2010; UFRJ, 2010; UFSM, 2010; USP, 2010; UNICAMP, 2010). O sistema de provas da lgica focado em sistemas formais, como: clculos de predicado intuicionistas, clculo de predicado clssico, aritmtica. A lgica intuicionista considera o que se pode obter dada uma certa informao, enquanto a Cincia da Computao se preocupa em como produzir tal resultado atravs do que se fornecido. Em dado momento, cou evidente que a linguagem de programao era uma espcie de lgica e a lgica era uma espcie de linguagem de programao. A isto se deu o nome de isomorsmo de Curry-Howard (XAVIER; OLIVEIRA, 2009). Em um mundo dinmico, em cima do qual a Cincia da Computao deveria trabalhar, a lgica clssica oferece um estaticismo e trabalha em cima de situaes que nem sempre podem ser obtidas no mundo real. A lgica linear, por outro lado, permite abordar os problemas de forma mais dinmica e coerente, respeitando os limites impostos pelo mundo real e oferecendo um sistema de provas construtivo (LINCOLN, 1992; GIRARD, 1995). Neste cenrio, este trabalho busca estudar lgica linear, como algo que vem se mostrando de grande importncia no meio cientco, e demonstrar sua aplicabilidade em um programa desenvolvido para ns didticos. Para este m, desenvolveu-se uma aplicao que simula um gerenciador de mquinas virtuais, em um sistema que dispe de recursos nitos. Em dado momento, sero confrontados os sistemas lgicos habituais, clssico e intuicionista, e a lgica linear. Atravs deste trabalho, ser possvel compreender em parte a essncia da lgica linear e seus operadores quando postos em prtica em uma aplicao.

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

cientca e imperativa a uncia dos prossionais dessa rea neste sentido, para garantir melhor rendimento e maior conabilidade nas suas produes. A lgica linear, com suas caractersticas construtivas, oferece uma grande aproximao com o mundo real e seus recursos limitados. Com a expanso de reas como processamento paralelo, inteligncia articial, otimizao de algoritmos e sistema de tipos, a lgica linear tem trazido grande entusiasmo para os cientistas da computao, os quais reconheceram a lgica linear como uma lgica expressiva e poderosa, com conexes profundas com a cincia da computao (LINCOLN, 1992). Na rea de inteligncia articial, a lgica linear oferece solues bastante intuitivas para problemas como o das Torres de Hanoi e o cenrio dos Blocos (POWER; WEBSTER, 2001). Outra grande vantagem da lgica linear, que utilizando este sistema, no h necessidade de utilizar garbage collector, contagem de referncias e se pode utilizar com segurana atualizao destrutiva de vetores (WADLER, 1990). Na rea de processamento paralelo, enquanto um processo est utilizando algum recurso os outros processos devem aguardar at que este recurso esteja disponvel novamente. Como uma alternativa lgica linear, este trabalho visa a correta compreenso da lgica linear, o que pode ser de grande valia para o meio cientco nessas e em muitas outras reas de aplicao. Apesar da importncia da lgica, seu ensino no vem sendo to enfatizado quanto deveria ser nos cursos de Cincia da Computao no Brasil, como pode-se observar na grade curricular de alguns dos maiores cursos de Cincia da Computao do pas. O trabalho direto com lgica em algumas das maiores universidades do pas acaba sendo abordado diretamente em poucas matrias (UFRGS, 2010; UFPEL, 2010; PUC-RIO, 2010; UFRJ, 2010; UFSM, 2010), quando nenhuma (USP, 2010; UNICAMP, 2010), com exceo da (UFPE, 2010), que oferece um curriculum vit bastante amplo no campo da lgica. A abrangncia do tema, portanto, ca bastante limitada devido amplitude do tema e limitao temporal. O estudo da lgica, portanto, acaba cando distribudo entre outras cadeiras ofertadas, nenhuma, porm, segundo a ementa das universidades consultadas, abordando a lgica linear. Sendo assim, este trabalho visa expandir os conhecimentos acerca da lgica, com foco na lgica linear, e permitir projees de trabalhos relacionados.

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
Este trabalho comeou a ser desenvolvido com a pesquisa e conceituao das questes elementares da lgica e da cincia da computao: raciocnio, lgica e cincia. Os conceitos foram relacionados de forma a compreender a importncia de cada um. Em seguida, foi feito um estudo mais aprofundado em cima da lgica, dos sistemas lgicos (clssico, proposicional e intuicionista), dos elementos que constituem seus objetos, dos seus aspectos (clssicos e construtivistas) e como a lgica se aplica na cincia da computao. Aps se estabelecer uma base estvel, comeou-se o estudo sobre lgica linear, onde diversos artigos foram estudados para melhor compreender corretamente este sistema. No decorrer deste passo, foi sendo produzido o contedo explicativo do que a lgica linear, quais seus operadores, sua gramtica, suas operaes fundamentais. Concomitantemente, foram sendo comparados os sistemas lgicos clssico e intuicionista com a lgica linear, am de compreender seus pontos de interseco e de divergncia. Foram citadas algumas reas de atuao que vem sendo bastante estudadas graas ao advento da lgica linear. Por m, foi feito um breve estudo em cima do trabalho de um pesquisador que desenvolveu uma implementao da lgica linear, o qual cedeu o cdigo fonte para que pudesse ser apreciado. Tal anlise motivou a criao da aplicao desenvolvida a seguir. Por m, foi desenvolvida uma aplicao para vericar e exemplicar como pode ser utilizada a lgica linear na prtica. Tal desenvolvimento possibilitou uma melhor compreenso da aplicabilidade da lgica linear, pois permitiu expressar as operaes computacionais atravs de operaes lineares e da utilizao do sistema de deduo natural linear. Os resultados dos experimentos foram descritos, ento, e seguiu-se para a concluso do trabalho.

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
A lgica exerce um papel fundamental na cincia da computao, similar ao exercido pelo clculo na fsica e na engenharia tradicional. O conhecimento da lgica est se tornando uma necessidade prtica para o prossional da computao (MANNA; WALDINGER, 1985). A palavra lgica vem do grego logos, que signica palavra, pensamento, ideia, argumento, relato, razo lgica ou princpio lgico. Aristteles (384-322 a.C), ao tentar denir e delimitar os elementos que compem a argumentao, disse serem quatro as cincias do discurso: a potica, a retrica, a dialtica e a analtica (posteriormente denominada lgica). O que lhes dava estatuto de cincia era que enunciavam leis gerais que podiam ser aplicadas a todos os casos semelhantes, independendo de circunstncias particulares (CARVALHO, 1997). A retrica e a dialtica foram agrupadas como as responsveis pela arte da discusso e a lgica cou com atribuio de servir de arte da demonstrao cientca segundo o encadeamento necessrio das razes fundadas em premissas verdadeiras (CARVALHO, 1997). Dessa forma, a lgica tem grande papel ao fornecer subsdio produo de um bom raciocnio. lgica como cincia, pouco importa as motivaes e as emoes do indivduo responsvel pela produo racional, as circunstncias particulares que poderiam servir de subsdio para a aceitao ou refutao de uma produo racional (como fatores religiosos, atributos fsicos de um interlocutor ou ainda a natureza de uma ao a ser julgada) etc. Para esta cincia, o que importa a forma do raciocnio, a coerncia das premissas, as relaes entre elas e a concluso obtida destas. (MORTARI, 2001) apresenta esta denio de forma mais didtica, embora, talvez, menos acurada, ao dizer que a lgica se preocupa com a existncia de uma boa razo para a crena em algo, ou seja, se a concluso consequncia do que se sabe. 2.2.1 Auto-evidncia Na denio de um conceito elementar, de axiomas fundamentais de uma cincia, encontram-se verdades que precisam ser aceitas como tal, para que a partir destas se possa produzir. Para saber quais so as fundaes de algo, preciso realizar uma regresso ao fundamental deste objeto, at atingir um ponto primitivo onde o estado atual seja evidente

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

possam ser apresentados e justicados rigorosamente, ou executados em uma mquina. (HUTH; RYAN, 2004) Computao a manipulao de dados a m de obter uma determinada soluo, de forma que possa ser expressa algoritmicamente. A inveno do computador para automatizar o processo de computao, que originalmente se deu para ns belicosos, se deve em grande parte a John von Neumann (1903-1957), notvel matemtico hngaro. Neumann criou o projeto lgico de um computador que implementa uma mquina de Turing universal (originalmente descrita em 1937), onde os dados cam armazenados em memria e cujo processamento sequencial e determinstico onde a repetio de uma entrada sempre gera o mesmo resultado. Assim surgiu a cincia da computao, ocupando-se da produo sistemtica de algoritmos para manipulao de informao, enquanto o computador se ocupa da automatizao do processamento de informaes. Ou seja, a cincia da computao se preocupa com a forma de manipular uma informao e o computador o modo de executar tal algoritmo. Nesta rea, a utilizao com rigor da lgica fundamental, pois atravs da lgica que se pode tratar de diversas reas, como: Determinao de complexidade - determinar se um determinado problema solvel por uma determinada linguagem; Interpretao abstrata extrair informao sobre um algoritmo o executando parcialmente, para, por exemplo, depurar ou aperfeioar o cdigo; Desenvolvimento, estudo e anlise dos sistemas de tipos. papel da lgica, ainda, permitir a expresso do raciocnio em uma linguagem noambgua e auto-evidente, atravs da lgica formal.

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

r: chover; Pode-se construir a proposio: p (w q) r Pode-se ler esta sentena como Se a umidade estiver elevada ou a temperatura e a presso atmosfrica estiverem elevadas, ento chover. 2.5.2 Lgica intuicionista Na losoa da matemtica, o construtivismo arma ser necessrio encontrar ou construir um objeto matemtico para provar que ele existe. Supor que um objeto no existe e utilizar a partir disso uma contradio no signica encontrar ou construir o objeto, portanto, no aceito por este sistema. A lgica proposicional intuicionista, ou lgica construtivista, foi criada por Arend Heyting para prover uma base formal para o intuicionismo de Brouwer. Este sistema lgico se baseia na justicativa das verdades, de forma que se as hipteses so verdadeiras e justicveis, a concluso tambm o . Sendo assim, uma disjuno somente ser tautologia se ao menos um dos termos for tautologia e uma conjuno somente ser tautologia se ambos termos forem tautologia. Portanto, a lei da dupla negao, lei de Pierce e a lei do terceiro excludo no podem ser demonstrados neste sistema lgico. 2.5.3 Lgica de predicados Segundo (HUTH; RYAN, 2004), a lgica proposicional trata de maneira bastante satisfatria com componentes de frases do tipo no, e, ou e se... ento, mas os aspectos lgicos das linguagens naturais so muito mais expressivos e complexos. No possvel expressas na lgica proposicional a seguinte sentena: Todo homem mortal. Tal sentena s poderia ser expressa citando um a um todos os homens. Para tentar suprir as limitaes da lgica proposicional, a lgica de predicado permite lidar com modicadores como existe, todo, entre e apenas. Na sentena acima h uma propriedade, ser mortal, que pode ser expressa na lgica de predicado junto com suas relaes lgicas e dependncias (HUTH; RYAN, 2004). Para tal, introduziu-se o conceito de predicado. Atravs dos predicados, pode-se expressar que Joo um homem, atravs do predicado H(Joo) e indicar que Joo um estudante, atravs do predicado E(Joo). De forma anloga, pode-se denotar que Paulo mais jovem que Joo, por J(Paulo,Joo) (HUTH;

27

RYAN, 2004). Existem dois quanticadores na lgica de predicados: - quanticador existencial. Permite estabelecer a existncia de um objeto sem identicar esse objeto explicitamente. - quanticador universal. Permite estabelecer fatos a respeito de diversos objetos sem ter de enumer-los. Atravs destes operadores podemos expressar, por exemplo, que dados alguns blocos e uma mesa, ou um bloco est sobre a mesa ou est sobre outro bloco. Expressa-se isso da seguinte forma: X[bloco(X) Y[sobremesa(X,Y)]] 2.5.4 Isomorsmo de Curry-Howard O Isomorsmo de Curry-Howard estabelece uma correspondncia bijetiva entre sistemas dedutivos da lgica formal e clculos computacionais de teoria de tipos (FERNANDES, 2009). Estabelecido na dcada de 1940, pelos matemticos Haskell B. Curry e William A. Howard, o isomorsmo de Curry-Howard permite estabelecer uma correspondncia entre a lgica formal e o -clculo simplesmente tipado (FERNANDES, 2009). (FERNANDES, 2009) apresenta detalhadas dedues acerca das proposies do isomorsmo de Curry-Howard, para mais informaes, tal artigo deve ser consultado. De forma breve, evidente a semelhana entre a deduo para o sequente (ax) , (I) (I) E a prova de y : .x : .x : : (var) y : , x : x : (I) y : x : .x : (I) y : .x : .x : As seguintes correspondncias podem ser obtidas da tabela 2.1. :

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


Algumas das melhores coisas na vida so gratuitas e outras no. A verdade gratuita. Tendo-se provado um teorema, voc pode usar esta prova tantas vezes quanto desejar, sem custo adicional. Comida, por outro lado, tem um custo. Tendo-se cozinhado um bolo, voc pode com-lo apenas uma vez. Se a lgica tradicional sobre verdade, ento a lgica linear sobre comida (WADLER, 1993). 2.6.1 Surgimento e conceituao Criada em 1987 por Jean-Yves Girard, a Lgica linear um renamento dos sistemas clssico e intuicionista, unindo algumas caractersticas de ambas (XAVIER; OLIVEIRA, 2009). Seu criador a caracterizou como uma lgica de recursos, algo que vem sendo cada vez mais aceito por cientistas da computao (LINCOLN, 1992). Isso acontece pois as sentenas so tratadas como recursos ou aes e as consequncias lgicas so tratadas como transies entre estados (MARTINS, 2003). Neste texto sero realizados alguns confrontos entre sistemas lgicos. Pode-se consultar (PRATT, 2005) para um detalhamento maior, onde a lgica linear colocada como complemento da lgica clssica. Na rea tecnolgica, a priori, tem-se de tomar decises. Estas decises devem levar em considerao o gerenciamento de recursos, uma vez que este mundo no dispe de recursos ilimitados e a partilha de recursos tarefa habitual na rea da computao, nos sistemas multiprogramados (MARTINS, 2003). Neste escopo, a lgica linear atua ladoa-lado com o planejamento do sistema, reduzindo este hiato entre o planejamento e a prtica. 2.6.2 Operaes em lgica linear Neste ponto, conveniente a introduo aos operadores da lgica linear. Girard (GIRARD, 1986) faz a seguinte diviso de conectivos: os multiplicativos (, , & ) que so verses bilineares do e, ou e do implica;

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

premissas sem alterar o grau de expressividade de uma determinada soluo. Tal regra pode ser representada como se segue: , A A regra de contrao permite que se elimine proposies sem alterar a concluso (MARTINS, 2003; LINCOLN, 1992). Tal regra pode ser representada como se segue: , A, A , A Na lgica clssica, considera-se que, dada uma proposio A, ou A x ou y, no havendo uma terceira possibilidade. Tal lei se chama lei do terceiro excludo, tertium non datur. Tal regra pode ser representada como se segue: (p p) A regra da dupla negao permite eliminar ou introduzir uma dupla negao. Negar uma proposio duas vezes o mesmo que arm-la. A remoo como se segue: A A A introduo como se segue: A A Outra lei aceita na lgica clssica a da no contradio, que diz que uma proposio verdadeira no pode ser falsa e uma proposio falsa no pode ser verdadeira. Portanto, nenhuma proposio pode ser verdadeira e falsa ao mesmo tempo. A esta lei se d o nome de lei da dupla negao. Tal lei representada como se segue: (p p) A lgica intuicionista um sistema que leva em considerao a prova da existncia das premissas usadas em processo construtivo. Se as hipteses so verdadeiras, tambm a concluso o ser. Na lgica intuicionista se pode ter outros valores alm do verdadeiro e do falso (XAVIER; OLIVEIRA, 2009). , portanto, evidente a incompatibilidade das regras do terceiro excludo e da dupla negao neste sistema. A Lgica Intuicionista,

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

U m dlar ; U ma pizza ; U ma torta .

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 &

A B. A disjuno aditiva signica que se tem um ou outro elemento, mas no

33

nossa escolha qual pegar, como em: D

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 Contrao , [A] B A !-I [] !A , A A B B -I

B Enfraquecimento , [A] B B !-E 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


Desde a sua criao, aproximadamente em 1987, a lgica linear teve diversas tentativas de implementao. Dentre os diversos trabalhos realizados, James Power, pesquisador do departamento de Cincia da Computao da universidade National University of Ireland, desenvolveu uma codicao do sistema da lgica linear baseada em estados (POWER; WEBSTER, 2001) e a cedeu gentilmente para observao. Outras implementaes importantes so: Lolli (HODAS, 1992): um renamento de Prolog para operar com lgica linear; LLP (HODAS et al., 1998): uma linguagem de programao lgica baseada na lgica linear intuicionista. um superconjunto de Lolli. LilliMon (AL., 2005): uma extenso da linguagem Lolli, focada em programao concorrente mondica. Nesta seo ser brevemente descrita a implementao desenvolvida em (POWER; WEBSTER, 2001), pois ela baseou a aplicao desenvolvida para este trabalho. O motivo para tal que esta implementao mais recente que as outras implementaes listadas acima e se mostrou bastante didtica. 2.7.1 COQ - Um sistema de Gerenciamento de Provas Formais O Coq um sistema de gerenciamento de provas formais distribudo sob licena GNU Lesser General Public License verso 2 (GNU LESSER GENERAL PUBLIC LICENSE, 2010). Este sistema trabalha com uma linguagem matemtica de alto nvel chamada Gallina (THE COQ PROOF ASSISTANT, 2010). Atravs desta linguagem prpria e de um conjunto de regras j programadas, possvel: denir funes e predicados que podem ser avaliados ecientemente; declarar teoremas matemticos e especicaes de software; desenvolver intuitivamente provas formais desses teoremas; uniformizar a escrita; vericar a tipagem correta;

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

O objetivo do teste deste cenrio no escopo da lgica linear testar como isso poderia ser resolvido utilizando um sistema baseado em estados, onde os objetivos e transies podem ser representados (POWER; WEBSTER, 2001). Neste exemplo, existe um brao robtico que pode pegar os blocos de cima e mov-los. Primeiramente se deve denir os predicados. O seguinte cdigo dene os predicados em Coq - a sintaxe utilizada da aplicao Coq: Variable emcima : Bloco -> Bloco -> ILinProp. Variable mesa : Bloco -> ILinProp. Variable limpar : Bloco -> ILinProp. Variable segura : Bloco -> ILinProp. Variable vazio : ILinProp. Aqui esto denidos os cinco predicados na sintaxe do Coq. Primeiro se declara o predicado e depois o seu tipo. O primeiro, por exemplo, representa um predicado de nome emcima que possui dois elementos do tipo Bloco e cuja relao lgica forma um tipo ILinProp, representando uma proposio linear. A relao emcima entre blocos pode ser vista como (emcima x y), onde x est sobre o bloco y. Os predicados unrios: (mesa x) indica que o bloco x est sobre ela e (vazio x) indica que no h nada sobre x. Dois predicados relativos ao estado do rob: (segura x) indica que o rob segura o bloco x e (vazio x) indica que o rob no est segurando bloco algum. O prximo passo denir as aes do sistema, com base no estado atual. Para isso se deve denir qual o estado atual, quais recursos se tem e para qual estado se deve ir. O processo funciona como uma deduo linear. As aes criadas em (POWER; WEBSTER, 2001) so as seguintes: Ao Pegar: diz que se o brao estiver em um estado vazio (sem estar segurando nada) e o bloco x no tiver nada em cima de si, o brao ir peg-lo. H duas possibilidades, ou x estava sobre a mesa ou estava sobre outro bloco y. No segundo caso, precisa-se informar que y agora no possui bloco algum sobre si (limpar);

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.

A unidade 1 (um) a identidade do operador e denota uma inferncia linear que no produz nada.

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


O sistema em questo um simulador de um gerenciador de mquinas virtuais. O usurio pode escolher quanto de cada um dos recursos do sistema ele quer utilizar em cada mquina virtual, limitado pelas capacidades do sistema. A virtualizao consiste na emulao de recursos computacionais de forma que o hardware original omitido. Denida a quantidade de recursos a alocar por mquina virtual, o usurio pode executar tantas mquinas quanto desejar, porm o sistema no deve permitir que se tente utilizar mais recursos do que o disponvel, uma vez que os recursos so nitos. Escolheu-se uma aplicao que se utiliza de concorrncia, por esta ser uma das reas que mais podem se beneciar da lgica linear. O motivo para tal que a lgica linear oferece um controle mais adequado dos recursos disponveis no sistema e possibilita reduzir a necessidade de sincronizao. Tais tpicos sero tratados na seo 3.2. 3.1.1 Os recursos do sistema Neste sistema utilizado como exemplo, os recursos disponveis so: 8 Gb de memria;

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


Como foi explicado na seo 2.6, a lgica linear v os objetos do raciocnio lgico, as premissas, como recursos. Em um sistema linear, ao utilizar determinados recursos, eles so consumidos e no esto mais disposio. A aplicao desenvolvida um simulador de mquinas virtuais que trabalha com concorrncia computacional, onde vrias threads estaro sendo executadas simultaneamente. Em computao concorrente comum que haja disputas por recursos, uma vez que dois processos no podem utilizar um mesmo recurso concomitantemente. nestas situaes que a lgica linear encontrou mais adeptos, como em (SHI; XI, 2009; CERVESATO; SCEDROV, 2009; BEFFARA, 2004; KAHRAMANOGULLAR, 2009; AL., 2005; NETO, 1996). Girard descreve a lgica linear como uma primeira tentativa de resolver o problema da sincronizao no paralelismo em um nvel lgico, atravs do fragmento multiplicativo da lgica linear (GIRARD, 1986). Para um maior aprofundamento no assunto, devem ser consultados os trabalhos citados previamente neste pargrafo. Como a lgica linear permite uma nica referncia a objetos que no estejam marcados com o exponencial !, pode-se utilizar uma abordagem de atualizao destrutiva in loco (ALAGI; CSRNYEI; VARGA, 2010), ou um valores de tipo linear (WADLER, 1990), que somente possuem uma referncia, eliminando a necessidade de um sistema de garbage collector. Girard, em (GIRARD, 1986) citou com bastante entusiasmo as possibilidades de se empregar a lgica linear para programao concorrente, devido s vantagens advindas da adio dos operadores multiplicativos, pois estes permitem uma comunicao sem a necessidade de sincronizao (ora so os operadores aditivos que requerem sincronizao, uma vez que dependem de uma escolha). Isto torna os programas mais previsveis e o sucesso da comunicao dependente do fato que se pode ver os programas como provas de algo. Outra vantagem da viso linear de um sistema que h ferramentas que permitem expressar a manipulao de estados, to importante em boa parte dos sistemas computacionais atuais (REDDY, 1993; GIRARD, 1986). Na computao concorrente, a ideia que todos os processos estaro atuando em um mesmo estado, cada um podendo realizar alteraes locais. Para um maior aprofundamento no assunto, Cervesato e Scedrov elaboraram um trabalho sobre concorrncia baseada em processos e estados (CERVESATO;

45

SCEDROV, 2009). Um exemplo de passagem de um estado para outro ocorre ao inicializar uma mquina virtual. Neste momento, recursos que antes estavam disponveis so consumidos para gerar outros recursos, neste caso, a mquina virtual. Assim que essa mquina for desativada, consome-se ela, como recurso, e o produto o mesmo utilizado para inicializ-la. O sistema volta ao estado inicial. Cada mquina virtual deve ter, no mnimo, memria RAM, alguma porcentagem do processador, algum espao em disco, uma impressora ou um gravador e permisso para estabelecer tantas conexes quanto desejar. Dessa forma, pode-se demonstrar os operadores da lgica linear e expressar operaes das lgicas clssica e intuicionista, atravs do uso do exponencial !. Pode-se reconhecer claramente alguns estados do programa desenvolvido. So estes: Estado inicial do programa. Nenhuma mquina virtual rodando; Uma mquina virtual consome recursos e comea a rodar. O programa sofre alteraes no seu estado inicial e passa a dispor de menos recursos; Vrias mquinas virtuais rodando. O programa esgota seus recursos e se encontra em um estado onde nenhuma outra mquina pode rodar; Uma ou mais mquinas interrompem a execuo. O produto delas o que foi consumido para faz-las rodar. O sistema passa a dispor de recursos para inicializar outras mquinas. 3.2.1 As operaes da aplicao O sistema conta com os seguintes recursos, em seu estado inicial: A: Memria: 16 u., cada uma representando 512 Megabytes; B: Processador: 10 u., cada uma representando 10% da CPU; C: Espao em disco: 40 u., cada uma representando 50 Gigabytes; D: Impressoras: 5 u., cada uma representando 1 impressora; E: Gravadores: 5 u., cada uma representando 1 gravador;

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

Isso pode ser lido como: Consumindo 2 As, 3 Bs, 2 Cs, 1 D e 5 Fs se produz 1 M. A mquina gerou uma alterao local no estado da mquina e isso leva o sistema pra outro estado, com os seguintes recursos: A: Memria: 14 u., cada uma representando 512 Megabytes; B: Processador: 7 u., cada uma representando 10% da CPU; C: Espao em disco: 38 u., cada uma representando 50 Gigabytes; D: Impressoras: 4 u., cada uma representando 1 impressora; E: Gravadores: 5 u., cada uma representando 1 gravador; F: Conexes: innitas u., cada uma representando 1 conexo. No momento que a mquina M for encerrada o resultado ser o seguinte: M 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

do problema a ser computado. Assim o no caso dos recursos e assim o no mundo real. Pde-se observar que a lgica linear, por outro lado, oferece uma aproximao ao o mundo real bastante adequada ao programador. A lgica linear oferece uma aplicao mais realista, baseada em estados e consciente dos recursos limitados. Tudo contribui para que no haja preocupao com sincronizao e saneamento do que no mais utilizado no programa, permitindo um maior controle da aplicao pelo programador. As facilidades de utilizar-se de um raciocnio linear, o qual a lgica linear possibilita, podem ser observadas na anlise da aplicao desenvolvida no presente trabalho. Nesta, teve-se apenas que denir quais eram os recursos disponveis e quais as provas das inferncias lineares que descreviam o comportamento da aplicao. Os estados descritos so mera consequncia evidente da aplicao das inferncias neste ou naquele caso. Ao consumir boa parte dos recursos do sistema, natural que se estar em um estado onde mquina virtual alguma possa vir a ser inicializada. Analogamente, ao terminar a execuo de uma dada mquina virtual, evidente que os recursos antes consumidos se faro novamente disponveis. assim no mundo real e a este que a lgica linear tenta aproximar-se. Por m, deve-se ver a lgica linear no como uma tentativa de substituir os outros sistemas lgicos, mas complement-los. A utilidade de algo est no seu emprego. Ao utilizar a lgica linear com os exponenciais (! e ?), pode-se torn-la to expressiva quanto as lgicas clssica e intuicionista, permitindo tratar de todos os problemas que j eram resolvidos com os outros sistemas. Da anlise dos trabalhos pesquisados foi possvel observar que este sistema, ainda quando no utilizado diretamente, em uma linguagem de programao, tem seus conceitos j esto difundidos implicitamente em diversas reas como no paralelismo e sistema de tipos. Tendo os conceitos da lgica linear expostos e uma aplicao desenvolvida para vericar a aplicabilidade deste sistema linear, pode-se expor algumas sugestes de trabalhos futuros. Como uma das possibilidades, a utilizao da lgica linear em sistemas de tipos pode ser bastante vantajosa. Outra necessidade que se pode notar a falta de uma linguagens de programao recente utilizando lgica linear, para favorecer a produo linear. Por m, h a carncia de um estudo comparativo de aplicaes concorrentes utilizando o raciocnio linear em contraste com outras abordagens, a m de observar qual oferece maior desempenho.

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.

S-ar putea să vă placă și