Você está na página 1de 7

Relação entre lógica computável e lógica razoável.

Ricardo Bedin, Róger Bés, Vinícius Denardi

Universidade de Caxias do Sul – Campus da Região dos Vinhedos (CARVI)


Caixa Postal 32 – 95700-000 – Bento Gonçalves – RS – Brasil
bedaum@hotmail.com, roger_bes222@hotmail.com,
viniciusdenardi@yahoo.com.br.

Resumo. Este artigo tem como objetivo descrever a lógica computável, a


lógica razoável e a relação entre as mesmas. Tendo em conta suas
semelhanças, diferenças, significados e aplicações dentro da computação e do
dia-a-dia desde o inicio das mesmas até os dias de hoje.

Introdução.

A lógica é empregada em diversos termos usualmente falado por leigos, “é


lógico que hoje é sexta”, “a lógica do amor”, “a lógica dos técnicos de futebol” entre
outros, mas se tratarmos lógica com o significado que adquire atualmente fica
inadequado usá-la desta maneira.
No Dicionário Aurélio o termo que encontramos para lógica é o seguinte: S. F.
Ciência que estuda as leis do raciocínio. Sendo a lógica uma ciência, esta fica
sistemática e regrada perdendo o sentido falado anteriormente então tal questão fica a
cabo da Filosofia que trata, entre outras coisas, de temas sem resposta definida.
Desde pequenos sempre ouvimos falar de lógica e que cada pessoa segue uma
lógica, mas o que as pessoas nesses momentos nos falam são atos que as pessoas fazem
por sentimentos e não pelo uso da razão, pelo uso do pensamento. Por esses e outros
motivos que devemos tratar a lógica com muito respeito, pois a mesma é à base de
nossa sociedade.
No entanto o que seria lógica razoável e lógica computável?
Dois ramos distintos que se unem com o advento da computação com o objetivo
de aumentar o conhecimento na era da informática e nos prover um novo estilo de vida
e acesso ao conhecimento?
Lógica não é tudo igual? Coisa de filosofo antigo?
E como esse dois tipos de lógica se encaixam no contexto da computação e para
que são úteis?
No decorrer do artigo responderemos estas e muitas outras perguntas.
Lógica Razoável.

Alguns sinônimos comuns para razoável, que faz sentido, possível de ser feito,
nem bom nem ruim, que não é intransigente.
Lógica razoável é a lógica empregada pelo ser humano no dia-a-dia, é uma
lógica fundada sobre fatos iniciais inquestionáveis e que pode ser expressa em uma
linguagem argumentativa, que é a linguagem que usamos no dia-a-dia.
A lógica razoável podemos dizer que é qualquer lógica que faça sentido, que
tenha razão, que seja útil, desse modo ela existe desde que o ser humano existe e ela
mesma fez com que o ser humano evoluísse ate o ponto em que estamos hoje, ela fez
com que o ser humano em tempos mais antigo sobrevivesse, a lógica era simples se os
animais selvagens chegassem muito perto de mim e eu estivesse desarmado eu seria
comido. Conclusão as pessoas deveriam sempre andar armadas para não serem comidas
e ainda ofereceria grande perigo, mas então ocorreu uma grande idéia, a idéia de
construir um muro ou mais precisamente uma muralha e desse modo garantir a
sobrevivência das pessoas que habitassem o local e ao mesmo tempo deixar as mesmas
se dedicarem a outras coisas alem de se manterem vivas, desse modo a maioria dos
seres humanos se transformaram em seres pensantes e começaram a usar a razão antes
dos músculos.
Com o passar do tempo as pessoas começaram a raciocinar mais e mais até que
chegamos ao tempo de Aristóteles, que foi o fundador da ciência da lógica, e
estabeleceu um conjunto de regras rígidas para que conclusões pudessem ser aceitas
logicamente válidas.
O emprego da lógica de Aristóteles levava a uma linha de raciocínio lógico
baseado em premissas e conclusões. Como por exemplo: se é observado que "todo ser
vivo é mortal" (premissa 1), a seguir é constatado que "Sarah é um ser vivo" (premissa
2), como conclusão temos que "Sarah é mortal". Desde então, a lógica Ocidental, assim
chamada, tem sido binária, isto é, uma declaração é falsa ou verdadeira, não podendo
ser ao mesmo tempo parcialmente verdadeira e parcialmente falsa. Esta suposição e a
lei da não contradição, que coloca que "U e não U" cobrem todas as possibilidades,
formam a base do pensamento lógico Ocidental.
Somente nos séculos XVI foi que houve um avanço significativo em seus
estudos com Leibniz que vislumbra a lógica simbólica formal, ou seja, uma lógica
abstrata. Então somente no século XIX os estudos de lógica formal são retomados por
Boole que desenvolveu a álgebra lógica. Depois destes tempos surgiram trabalhos
isolados que permitiram seu rápido desenvolvimento alguns autores importantes como
Peano, Whitehead, Russell e Frege e Gödel foram de extrema importância nos
questionamentos filosóficos e matemáticos sobre os limites da lógica formal. Também
se pode destacar a influência de Wittgenstein no pensamento filosófico analítico.
Muitas vezes o desenvolvimento do computador não é tão lembrado nos livros
de lógica, mas a máquina desenvolvida por cientistas como Von Newman (um dos
nomes mais lembrados), que revolucionou a forma de conceber e desenvolver a lógica,
gerando uma categoria de profissionais como os programadores de computador que ora
são matemáticos, ora lógicos às vezes artistas.
Alem do pensamento binário também temos uma lógica com vários termos, que
seria a lógica nebulosa ela é geralmente dividida em graus de verdade é uma lógica
utilizada quando não se quer somente “quente” ou “frio” quer-se o “morno” ou a
“temperatura ambiente” também.
A lógica razoável como é apresentada aqui é muito usada na computação com o
uso das premissas e conectores “and”, “or” e similares para seleção de opções de
caminhos em algoritmos desde o inicio da computação.
Da mesma maneira a lógica fuzzy esta sendo muito usada, mas num contexto de
mais alto nível como em inteligência artificial, sistemas especialistas, redes neurais,
sistemas de geo-processamento e todo o tipo de aplicação que exija um grau elevado de
complexidade.
Lógica Computável.

Alguns sinônimos comuns para computável são: solúvel, decidível, e recursivo.


Lógica computável é toda função que pode ser expressa por algoritmos para ser
executada em maquinas e que gera resultados corretos. Como todos sabem os
computadores só realizam cálculos básicos, desse modo funções muito complexas ficam
muito mais complexas ainda e podem não ser respondidas por meio de algoritmos.
Ao longo do século XX vários matemáticos se intrigaram com problemas que
não teriam solução e tudo isso começou em 1900, no Segundo Congresso Internacional
de Matemática, realizado em Paris, David Hilbert propôs uma lista de problemas de
envergadura, cuja solução desafiaria as futuras gerações de matemáticos. Vários
problemas dessa famosa lista foram desde então resolvidos, sendo que alguns resistem
até hoje e permanecem ainda em aberto.
O décimo problema da lista de Hilbert era de enunciado bastante simples:
“descreva um algoritmo que determina se uma dada equação diofantina do tipo 0 " ,..., ,
( 2 1 = n u u u P , onde P é um polinômio com coeficientes inteiros, tem uma solução
dentro do conjunto dos inteiros”. Trazendo para nossa linguagem usual na Computação
ficaria: “escreva um programa que tem por entrada uma equação diofantina, e que dá
por saída um sim ou um não, conforme a equação tenha ou não soluções inteiras. O
programa não precisa encontrar a solução da equação, somente se tal solução existe. Se
a entrada for 0 11 2 2= − + − xy y x , então o programa após um número finito de
passos, deve responder sim, pois esta equação tem solução inteira (x=3, y=2 é uma
solução). Já se a entrada fosse 0 11 2 2= − + + xy y x , a resposta deveria ser não, pois
esta equação não possui soluções inteiras.
Para termos uma breve idéia da complexidade desses problemas utilizaremos a
demonstração de Gödel que é a solução do problema numero dez de Hilbert, sendo a
demonstração de Gödel uma das descobertas científicas mais importantes do século XX
- ao lado da Teoria da Relatividade e da Física Quântica - mas é conhecida por um
número relativamente pequeno de pessoas. Isto talvez se deva ao fato de ela tratar
diretamente com lógica e matemática em estado puro.
O que Kurt Gödel demonstrou foi que qualquer sistema lógico, baseado num
número finito de princípios básicos e que seja perfeitamente consistente - isto é, incapaz
de aceitar ou produzir contradições - contém afirmações que não podem ser provadas,
dentro das regras do próprio sistema, como verdadeiras ou falsas. Fazendo uma
comparação, é mais ou menos como dizer que em qualquer jogo criado a partir da
aplicação perfeitamente lógica de um conjunto fixo de regras, surgirão jogadas que não
podem ser julgadas como válidas ou faltosas, de acordo com as próprias regras. No caso
do esporte, basta criar novas regras, ou apelar para a interpretação do árbitro. No caso
da matemática, isto significa que nenhum sistema lógico se basta a si mesmo, e nem é
capaz de compreender-se sozinho a si mesmo: sempre será necessário um sistema maior
e mais complexo para dar conta de tudo que o sistema menor contém (e este sistema
maior, para ser entendido integralmente, precisará de outro, maior ainda; e este último,
de um outro; e de outro e assim por diante), não tendo uma resposta específica cabe aos
filósofos darem um rumo a decisão ou deixar que a mesma fique indecisa para o todo
sempre.
Surpreendentemente, todos os modelos de resposta ao décimo problema que são
o cálculo Lambda, Kurt Gödel as funções recursivas, Stephen Kleene com seus sistemas
formais, algoritmos de Markov, máquinas de Post e máquinas de Turing são
completamente equivalentes: qualquer coisa computável no Cálculo Lambda é
computável por uma máquina de Turing e similarmente para todos os outros pares dos
sistemas computacionais citados. Depois que isto foi provado, Church expressou a
opinião que a noção intuitiva de em princípio computável é idêntica às definições
apresentadas. Esta opinião, identificada agora como Tese de Church-Turing, é aceita de
forma unânime pelos matemáticos.
Parte do ímpeto de codificar o que é computável deve-se a Hilbert e sua
proposta de que toda a Matemática poderia ser axiomatizada precisamente. Pensou que
uma vez que isto fosse feito, haveria "um procedimento eficiente", isto é, um algoritmo
que tomaria como a entrada qualquer indicação matemática precisa, e, após um número
finito das etapas, decidiria se a indicação era verdadeira ou falsa.
Hilbert estava perguntando pelo que seria chamado pelos matemáticos de
procedimento de decisão. Como um exemplo especial deste problema de decisão,
Hilbert considerou o Problema de Validade para a Lógica de Primeira Ordem. Esta
lógica é uma linguagem matemática em que a maioria das indicações pode ser
formulada. Cada indicação na Lógica de Primeira Ordem tem um significado preciso
em cada estrutura lógica apropriada: é verdadeira ou falsa em cada estrutura. Aquelas
indicações que são verdadeiras em todas as estruturas apropriadas são chamadas válidas.
Aquelas indicações que são verdadeiras em algumas estruturas são chamadas
satisfazíveis. Observe que uma fórmula, ϕ, é válida se e somente se sua negação, ¬ ϕ,
não é satisfazível.
Hilbert denominou o problema da validade para a Lógica de Primeira Ordem de
Entscheidungsproblem. No livro Principles of Mathematical Logic, de Hilbert e
Ackermann, os autores escreveram: "o Entscheidungsproblem é resolvido quando
conhecemos um procedimento que nos permita, para toda expressão lógica, decidir em
um número finito de operações sua validade ou satisfazibilidade. O
Entscheidungsproblem deve ser considerado o problema principal da lógica
matemática”.
Em sua tese de PhD, 1930, Gödel apresentou uma axiomatização completa da
Lógica de Primeira Ordem, baseado no Principia Mathematica de Whitehead e Russell.
Gödel provou seu Teorema da Completude, a saber: que uma fórmula é provada a partir
dos axiomas se e somente se é válida. O Teorema da Completude de Gödel era uma
etapa para a definição do Entscheidungsproblem de Hilbert.
Em particular, desde que os axiomas são facilmente reconhecidos, e regras de
inferência são muito simples, há um procedimento mecânico que pode listar todas as
provas. Note que cada linha em uma prova ou é um axioma, ou é seqüência das linhas
precedentes em uma regra simples. Para uma dada cadeia de caracteres, podemos dizer
se ela é uma prova. Portanto podemos listar sistematicamente todas as cadeias de
caracteres de comprimento 1, 2, 3, e assim por diante, e verificar se cada uma delas é
uma prova. Sendo assim, podemos então adicionar a última linha de prova em nossa
lista de teoremas. Desta forma, podemos listar todos os teoremas, isto é, podemos listar
exatamente todas as fórmulas válidas da Lógica de Primeira Ordem através de um
procedimento mecânico simples. Mais precisamente, o conjunto de fórmulas válidas é o
domínio de uma função computável. Em terminologia moderna dizemos que o conjunto
de fórmulas válidas da lógica de primeira ordem é enumerável recursivamente (R. E.).
Entretanto, o Teorema da Completude de Gödel não era suficiente para dar uma
solução definitiva ao Entscheidungsproblem. Dada uma fórmula, ϕ, se ϕ é válida
então o procedimento acima eventualmente listaria e poderia responder: "sim, ϕ é
válido".
Entretanto, se ϕ fosse inválida então poderíamos não encontrar nunca este fato.
O que faltava era um procedimento para listar todas as fórmulas não-válidas, ou
o equivalente da lista de todas as fórmulas satisfazíveis. Um ano mais tarde, em 1931,
Gödel chocou o mundo matemático provando seu Teorema da Incompletude: não há
nenhuma axiomatização completa e computável da teoria de primeira ordem dos
números naturais. Isto é, não há nenhuma lista razoável de axiomas a partir dos quais
podemos provar exatamente todas as deduções verdadeiras da teoria dos números.
Alguns anos mais tarde, Church e Turing provaram independentemente que o
Entscheidungsproblem é insolúvel. Church fez esta prova usando os métodos do
Teorema da Incompleteza de Gödel para mostrar que o conjunto de fórmulas
satisfazíveis da Lógica de Primeira Ordem não é R.E., isto é, não podem ser listados
sistematicamente por uma função computável pelo Cálculo Lambda. Turing introduziu
suas máquinas e provou muitos teoremas interessantes alguns desses discutiremos a
seguir. Em particular, provou a insolubilidade do problema da parada, e obteve a
insolubilidade do Entscheidungsproblem como um corolário.
Hilbert ficou muito decepcionado, pois sua previsão de um procedimento de
decisão envolvendo toda a Matemática estava demonstrando ser impossível. A
simplicidade do décimo problema de Hilbert era apenas aparente e somente 70 anos
depois de intensos esforços foi encontrada a solução, por Matijasevic, um matemático
russo de apenas 22 anos na época. É uma solução bastante complexa, dependendo tanto
de resultados da Teoria dos Números, conhecidos a muitíssimos anos, como do trabalho
anterior, específico sobre o problema de Hilbert, de três americanos, Martin Davis, Julia
Robinson e Hilary Putnan, que por sua vez baseia-se em certos resultados fundamentais
sobre lógica e algoritmos descobertos na década de 30 por Gödel, Turing, Post, Church
e Kleene. E a solução foi: Tal algoritmo não existe! O décimo problema de Hilbert é
indecidível, más abriu um novo campo na Matemática com o vasto conhecimento
adquirido sobre a natureza fundamental da computação.
No ano 2000 os matemáticos se reuniram para fazer uma reedição dos
problemas de Hilbert proporão oito problemas para serem resolvidos durante o século
XXI, entre estes problemas esta presente o décimo sexto problema de Hilbert que um
século depois ainda esta sem solução.
Os oito problemas são:
A Conjectura de Goldbach: Todo número inteiro par maior que 2 pode ser
escrito como uma soma de dois números primos.
A Hipótese de Riemann: Todos os zeros não triviais de ζ (s) estão sobre a reta
crítica.
A Conjectura de Poincaré: Suponha que uma hipersuperfície regular, compacta
e conexa M em R4 tenha a propriedade de que toda curva fechada sobre ela possa ser
deformada num ponto sem sair da hipersuperfície. Então M pode ser deformada numa
esfera tridimensional S³?
A Conjectura Jacobiana: Suponha que uma aplicação polinomial f: Rⁿ → Rⁿ
tenha a propriedade de que sua derivada em cada ponto seja não-singular. Então f é
injetora?
O décimo sexto Problema de Hilbert: É o número K de ciclos limites de (*)
limitado da forma K≤ dq, onde d é o máximo dos graus de P e Q, e q é uma constante
universal?
P versus NP: P = NP?
As equações de Navier-Stokes: As equações de Navier-Stokes, para um conjunto
Ω⊂ R³, têm uma única solução regular para todo o tempo t?
E a Conjectura de Carathéodory: Sobre todo ovalóide existem pelo menos dois
pontos umbílicos?

Conclusão.
Podemos concluir que lógica computável é toda tarefa que pode ser realizada
por um ser incapaz de aprender e com um mínimo de capacidade, como os
computadores e lógica razoável é todo evento que é passível de uma explicação, na
forma argumentativa, ou seja, todo o tipo de lógica que faça sentido.
As mesmas são interligadas ao ponto que a lógica computável esta contida
dentro da lógica razoável (figura 1.) e a diferença básica entre os dois conjuntos é se há
possibilidade da função ser ou não executada por meio de uma maquina.
Figura 1. Relação entre lógica razoável e lógica computável.

Bibliografia.

Silva, Roberto Claudino da (2007) “Algoritmos e Complexidade Computacional”,


http://www.claudino.unifei.edu.br/CCO610/CCO61010.pdf, Outubro.
Haeusler, Edward Hermann (2005) “Lógica e Computação: Uma leitura dos Teoremas
de Gödel”, www-di.inf.puc-rio.br/~hermann/Historia.pps , Outubro.
Andrade, Marco Túlio Carvalho De (2006) “Computação Fuzzy”
http://www.pcs.usp.br/~pcs5711/transp/5711-cap1-discussoes-preliminares-
definicoes-2002ciclo1.pdf Outubro.
Mello, Luis Fernando de Osório (2002) “Problemas Matemáticos para o século XXI”,
http://www.ici.unifei.edu.br/luisfernando/arq_pdf/monografia/problemas_matematic
os.pdf Outubro.

Mello, Luis Fernando de Osório (2002) “Problemas Matemáticos para o século XXI” ,
http://www.ici.unifei.edu.br/luisfernando/arq_pdf/monografia/problemas_matematic
os.pdf Outubro.