Lógica 1ª Ordem (referencial teórico)

Propaganda
UNIVERSIDADE ESTADUAL DE SANTA CRUZ
DEPARTAMENTO DE CIÊNCIAS EXATAS E TECNOLÓGICAS
LÓGICA DE PRIMEIRA ORDEM
Trabalho apresentado pelos alunos do 3º
semestre de Ciência da Computação,
Vívian Maria, Jhone Sesto , Juciele Freitas
e
Márcio
André,
Fundamentos
Computação,
na
disciplina
Matemáticos
entregue
ao
Rogério Vargas.
Ilhéus/2012
1
de
para
professor
LÓGICA DE PRIMEIRA ORDEM
Lógica de primeira ordem é um sistema filosófico de raciocínio usando
expressões como “se” e “então” como quantificadores ou predicados, ambas são
funções finarias verdadeiras onde uma centena é logicamente equivalente a uma
negativa.
A lógica de primeira ordem (LPO), conhecida também como cálculo de
predicados de primeira ordem (CPPO), é um sistema lógico que estende a lógica
proposicional (lógica sentencial) e que é estendida pela lógica de segunda ordem.
As sentenças atômicas da lógica de primeira ordem têm o formato P (t1,…, tn)
(um predicado com um ou mais "argumentos") ao invés de serem símbolos sentenciais
sem estruturas.
O ingrediente novo da lógica de primeira ordem não encontrado na lógica
proposicional é a quantificação: dada uma sentença φ qualquer, as novas
construções
e
são introduzidas.
- leia "para todo x, φ" e "para algum x, φ", respectivamente,
significa que φ é verdadeiro para todo valor de x e
significa que há pelo menos um x tal que φ é verdadeiro. Os valores das variáveis são
tirados de um universo de discurso pré-determinado.Um refinamento da lógica de
primeira ordem permite variáveis de diferentes tipos, para tratar de diferentes classes de
objetos.
A lógica de primeira ordem tem poder expressivo suficiente para formalizar
praticamente toda a matemática. Uma teoria de primeira ordem consiste em um
conjunto de axiomas (geralmente finitos ou recursivamente enumerável) e de sentenças
dedutíveis a partir deles. A teoria dos conjuntos de Zermelo-Fraenkel é um exemplo de
uma teoria de primeira ordem, e aceita-se geralmente que toda a matemática
clássica possa ser formalizada nela.
Um cálculo de predicados consiste em:

regras de formação (definições recursivas para dar origem a fórmulas
bem formadas ou FBFs).
2

regras de transformação (regras de inferência para derivar teoremas).

axiomas.
Os axiomas considerados aqui são os axiomas lógicos que fazem parte do
cálculo de predicados. Além disso, os axiomas não lógicos são adicionados em teorias
de primeira ordem específicas: estes não são considerados como verdades da lógica,
mas como verdades da teoria particular sob consideração.
Quando o conjunto dos axiomas é infinito, requer-se que haja um algoritmo que
possa decidir para uma fórmula bem formada dada, se ela é um axioma ou não. Deve
também haver um algoritmo que possa decidir se uma aplicação dada de uma regra de
inferência está correta ou não.
É importante notar que o cálculo de predicados pode ser formalizado de muitas
maneiras equivalentes; não há nada canônico sobre os axiomas e as regras de inferência
propostos aqui, mas toda a formalização dará origem aos mesmos teoremas da lógica (e
deduzirá os mesmos teoremas a partir de um conjunto qualquer de axiomas nãológicos).
O cálculo de predicado é uma extensão da lógica proposicional que define quais
sentenças da lógica de primeira ordem são demonstráveis. É um sistema formal usado
para descrever as teorias matemáticas. Se o cálculo proposicional for definido por um
conjunto adequado de axiomas e a única regra de inferência modus ponens (isto pode
ser feito de muitas maneiras diferentes, uma delas já ilustrada na seção anterior), então o
cálculo de predicados pode ser definido adicionando-se alguns axiomas e uma regra de
inferência "generalização universal". Mais precisamente, como axiomas para o cálculo
de predicado, teremos:

Os axiomas circunstanciais do cálculo proposicional (A1, A2 e A3 na
seção anterior);

Os axiomas dos quantificadores (A4 e A5);

Os axiomas para a igualdade propostos em seção anterior, se a igualdade
for considerada como um conceito lógico.
Uma sentença será definida como demonstrável na lógica de primeira ordem se
puder ser obtida começando com os axiomas do cálculo de predicados e aplicando-se
repetidamente as regras de inferência "modus ponens" e "generalização universal". Se
3
nós tivermos uma teoria T (um conjunto de sentenças, às vezes chamadas axiomas)
então uma sentença φ se define como demonstrável na teoria T se a ∧ b ∧ … → φ é
demonstrável na lógica de primeira ordem (relação de consequência formal), para algum
conjunto finito de axiomas a, b,… da teoria T. Um problema aparente com esta
definição de "demonstrabilidade" é que ela parece um tanto ad hoc: nós tomamos uma
coleção aparentemente aleatória de axiomas e de regras de inferência, e não é óbvio que
não tenhamos acidentalmente deixado de fora algum axioma ou regra fundamental. O
teorema da completude de Gödel nos assegura de que este não é realmente um
problema: o teorema diz que toda sentença verdadeira em todos os modelos é
demonstrável na lógica de primeira ordem. Em particular, toda definição razoável de
"demonstrável" na lógica de primeira ordem deve ser equivalente à definição acima
(embora seja possível que os comprimentos das derivações difira bastante para
diferentes definições de demonstrabilidade). Há muitas maneiras diferentes (mas
equivalentes) de definir probabilidade. A definição acima é um exemplo típico do
cálculo no estilo de Hilbert, que tem muitos axiomas diferentes, mas poucas regras de
inferência. As definições de demonstrabilidade para a lógica de primeira ordem nos
estilos de Gentzen (dedução natural e cálculo de sequentes) são baseadas em poucos ou
nenhum axiomas, mas muitas regras de inferência.
A linguagem da lógica proposicional não é adequada para representar relações
entre objetos. Por exemplo, se fôssemos usar uma linguagem proposicional para
representar "João é pai de Maria e José é pai de João" usaríamos duas letras sentenciais
diferentes para expressar ideias semelhantes (por exemplo, P para simbolizar "João é pai
de Maria "e Q para simbolizar "José é pai de João" ) e não estaríamos captando com
esta representação o fato de que as duas frases falam sobre
a mesma relação de
parentesco entre João e Maria e entre José e João. Outro exemplo do limite do poder de
expressão da linguagem proposicional, é sua incapacidade de representar instâncias de
um propriedade geral. Por exemplo, se quiséssemos representar em linguagem
proposicional "Qualquer objeto é igual a si mesmo " e "3 é igual a 3", usaríamos letras
sentenciais distintas para representar cada uma das frases, sem captar que a segunda
frase é uma instância particular da primeira. Da mesma forma, se por algum processo de
dedução chegássemos à conclusão que um indivíduo arbitrário de um universo tem uma
certa propriedade, seria razoável querermos concluir que esta propriedade vale para
qualquer indivíduo do universo. Porém, usando uma linguagem proposicional para
4
expressar "um indivíduo arbitrário de um universo tem uma certa propriedade " e "esta
propriedade vale para qualquer indivíduo do universo" usaríamos dois símbolos
proposicionais distintos e não teríamos como concluir o segundo do primeiro.
A linguagem de primeira ordem vai captar relações entre indivíduos de um
mesmo universo de discurso e a lógica de primeira ordem vai permitir concluir
particularizações de uma propriedade geral dos indivíduos de um universo de discurso,
assim como derivar generalizações a partir de fatos que valem para um indivíduo
arbitrário do universo de discurso. Para ter tal poder de expressão, a linguagem de
primeira ordem vai usar um arsenal de símbolos mais sofisticado do que o da linguagem
proposicional.
Considere a sentença "Todo objeto é igual a si mesmo ".
Esta sentença fala de uma propriedade (a de ser igual a si mesmo) que vale para
todos os indivíduos de um universo de discurso, sem identificar os objetos deste
universo.
Considere agora a sentença "Existem números naturais que são pares".
Esta sentença fala de um propriedade (a de ser par) que vale para alguns (pelo
menos um dos) indivíduos do universo dos números naturais, sem, no entanto, falar no
número" 0" ou "2" ou "4",etc em particular.
Para expressar propriedades gerais (que valem para todos os indivíduos) ou
existenciais (que valem para alguns indivíduos) de um universo são utilizados os
quantificadores  (universal) e  (existencial), respectivamente. Estes quantificadores
virão sempre seguidos de um símbolo de variável, captando, desta forma, a ideia de
estarem simbolizando as palavras "para qualquer" e "para algum".
Considere as sentenças:
- "Sócrates é homem"
- "Todo aluno do departamento de Ciência da Computação estuda lógica"
A primeira frase fala de uma propriedade (ser homem) de um indivíduo
distinguido ("Sócrates") de um domínio de discurso. A segunda frase fala sobre objetos
distinguidos "departamento de Ciência da Computação" e "lógica".
Tais objetos
poderão ser representados usando os símbolos , soc para "Sócrates",
cc para
"departamento de Ciência da Computação", lg para "lógica".Tais símbolos são
chamados de símbolos de constantes.
5
As propriedades "ser aluno de ", "estuda" relacionam objetos do universo de
discurso considerado, isto é, "ser aluno de " relaciona os indivíduos de uma
universidade com os seus departamentos, "estuda" relaciona os indivíduos de uma
universidade com as matérias. Para representar tais relações serão usados símbolos de
predicados (ou relações). Nos exemplos citados podemos usar Estuda e Aluno que são
símbolos de relação binária. As relações unárias expressam propriedades dos indivíduos
do universo ( por exemplo "ser par","ser homem"). A relação "ser igual a" é tratada de
forma especial, sendo representada pelo símbolo de igualdade .
Desta forma podemos simbolizar as sentenças consideradas nos exemplos da
seguinte forma:
- "Todo mundo é igual a si mesmo " por x xx;
- "Existem números naturais que são pares" por xPar(x);
- "Sócrates é homem" por Homem(soc);
- "Todo aluno do departamento de Ciência da Computação estuda lógica"
porx(Aluno(x,cc) Estuda (x,lg)).
Já foi abordado como representar objetos do domínio através de constantes.Uma
outra maneira de representá-los é através do uso de símbolos de função.
Por exemplo podemos representar os números naturais "1", "2", "3", etc através
do uso de símbolo de função, digamos, suc, que vai gerar nomes para os números
naturais "1", "2", "3", etc. a partir da constante 0, e. g., "1" vai ser denotado por suc(0),
"3" vai ser denotado por suc(suc(suc(0))), etc. Seqüências de símbolos tais como suc(0)
e suc(suc(suc(0))) são chamadas termos.
Assim, a frase "Todo número natural diferente de zero é sucessor de um número
natural" pode ser simbolizada por x(x0 ysuc(y)x).
6
Download