176
ogica para Computa¸c˜ ao Jos´ e de Oliveira Guimar˜ aes [email protected] Campus de Sorocaba da UFSCar Sorocaba - SP 9 de mar¸ co de 2012

L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

  • Upload
    lamliem

  • View
    236

  • Download
    0

Embed Size (px)

Citation preview

Page 1: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Logica para Computacao

Jose de Oliveira [email protected] de Sorocaba da UFSCar

Sorocaba - SP

9 de marco de 2012

Page 2: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Sumario

1 Introducao e Historia 3

1.1 Primeiras palavras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 Historia, Paradoxos e Princıpios Basicos . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3 Consideracoes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.4 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 Sistemas Formais 8

2.1 Primeiras palavras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2 Problematizando o Tema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.3 Alfabetos, Axiomas e Regras de Sistemas Formais . . . . . . . . . . . . . . . . . . . 8

2.4 Visao Alternativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.5 Conexoes com a Computacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.5.1 Regras Como Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.5.2 Programas Como Sistemas Formais . . . . . . . . . . . . . . . . . . . . . . . 16

2.5.3 Automato Celular e Jogo da Vida . . . . . . . . . . . . . . . . . . . . . . . . 17

2.5.4 Gramaticas Como Sistemas Formais . . . . . . . . . . . . . . . . . . . . . . . 19

2.5.5 Suposicoes Implıcitas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.6 Consideracoes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.7 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3 Introducao ao Calculo Proposicional 24

3.1 Primeiras palavras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.2 A Linguagem do Calculo Proposicional . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.3 Consideracoes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.4 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4 Semantica do Calculo Proposicional 28

i

Page 3: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

4.1 Primeiras palavras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.2 Problematizando o Tema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.3 Mapeamento de Frases para o Calculo Proposicional . . . . . . . . . . . . . . . . . . 28

4.4 Verdade e Falsidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.5 Tabelas Verdade dos Conectivos Basicos . . . . . . . . . . . . . . . . . . . . . . . . 30

4.6 Conectivos Derivados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4.7 Consideracoes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4.8 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

5 Tabelas Verdade e Tautologias 34

5.1 Primeiras palavras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

5.2 Problematizando o Tema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

5.3 Tabelas Verdade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

5.4 Tautologias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

5.5 Consideracoes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

5.6 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

6 Proposicoes sobre Tautologias e Equivalencias Logicas 42

6.1 Primeiras palavras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

6.2 Proposicoes sobre Tautologias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

6.3 Equivalencia Logica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

6.4 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

7 Minimizacao de Formulas Logicas 51

7.1 Primeiras palavras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

7.2 Problematizando o Tema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

7.3 Minimizacao de Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

7.4 Consideracoes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

7.5 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

8 Conjunto Adequado de Conectivos e Formas Normais 56

8.1 Primeiras palavras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

8.2 Problematizando o Tema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

8.3 Conjunto Adequado de Conectivos e Formas Normais . . . . . . . . . . . . . . . . . 57

8.4 Consideracoes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

ii

Page 4: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

8.5 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

9 Sintaxe do Calculo Proposicional 70

9.1 Primeiras palavras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

9.2 Problematizando o Tema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

9.3 Sintaxe do Calculo Proposicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

9.4 Consideracoes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

9.5 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

10 Relacao Sintaxe/Semantica 79

10.1 Primeiras palavras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

10.2 Relacao entre Sintaxe e Semantica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

10.3 Consideracoes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

10.4 Conexoes com a Computacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

10.4.1 Analise Sintatica e Gramatica da Linguagem do Calculo Proposicional . . . 86

10.4.2 Enumeracao das Formulas do Calculo Proposicional . . . . . . . . . . . . . . 87

10.4.3 Axiomatizacao do Calculo Proposicional . . . . . . . . . . . . . . . . . . . . 87

10.5 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

11 Resolucao e Formulas de Horn 89

11.1 Primeiras palavras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

11.2 Problematizando o Tema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

11.3 Transformacao de formulas para a FNC . . . . . . . . . . . . . . . . . . . . . . . . . 89

11.4 Algoritmo de Horn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

11.5 O Algoritmo da Resolucao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

11.6 Conexoes com a Computacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

11.7 Consideracoes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

11.8 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

12 Logica de Primeira Ordem 103

12.1 Primeiras palavras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

12.2 Problematizando o Tema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

12.3 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

12.4 A Linguagem da Logica de Primeira Ordem . . . . . . . . . . . . . . . . . . . . . . 107

12.5 Consideracoes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

iii

Page 5: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

12.6 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

13 Semantica da Logica de Primeira Ordem 116

13.1 Primeiras palavras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

13.2 Problematizando o Tema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

13.3 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

13.4 Definicao Formal de Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

13.5 Consideracoes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

13.6 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

14 Sintaxe da Logica de Primeira Ordem 147

14.1 Axiomas e Regras de Deducao da Logica de Primeira Ordem . . . . . . . . . . . . . 148

14.2 Meta-teoremas e Definicoes sobre as Teorias de Primeira Ordem . . . . . . . . . . . 150

14.3 Formas Normais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

14.4 Relacao entre Sintaxe e Semantica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

14.5 Alguns Exemplos de Modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

14.6 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

A Quadrinhos 165

B Nocoes Basicas de Matematica 167

B.1 Inducao finita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

B.2 Prova por Contradicao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

1

Page 6: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Prefacio

Imagine que alguem queira comunicar como e uma certa pintura para uma outra pessoa. Umapossibilidade seria converter a pintura para o formato digital, um retangulo compostos por pontos(cada um com uma cor), e depois escrever a cor de cada ponto, comecando do canto superior es-querdo e procedendo para baixo, linha por linha, ate o canto inferior direito. Esta nao e uma formamuito inteligente de comunicacao. Contudo, e mais ou menos isso que fazemos quando escrevemosum livro de Matematica, Fısica ou Logica. Nestes livros, uma sequencia de definicoes, teoremase provas e descrita linearmente tentando descrever conceitos que nao podem ser compreendidosdesta forma. O leitor fica com a inteira responsabilidade de agrupar todos os conceitos e montara “figura” em sua mente, com pouco ou nenhum auxılio por parte do texto.

Neste livro tentamos fazer diferente na medida de nossas possibilidades. Para ajudar o leitora montar a imagem da logica, recorremos a dois artifıcios: a) comentarios sobre os teoremase provas e b) meta-informacoes no texto. Sendo este um livro de logica, as informacoes sobrelogica constituem a maior parte do texto. Contudo, ha informacoes tambem sobre o propriotexto: referencias a paginas (“veja os axiomas da pagina 23”) e figuras que descrevem a propriaestrutura das definicoes, teoremas e provas. Estes dados adicionais sao meta-informacoes. Com elesprocuramos mostrar como a logica e estruturada, quais as relacoes entre os conceitos estudados.Os comentarios no texto ajudam visualizar o quadro geral. Eles procuram apresentar uma outravisao do texto, podemos dizer “do alto”, fugindo da descricao linear de definicoes/teoremas dolivro.

Ao final de cada Capıtulo deste livro pode haver tres subsecoes: a) Visao Alternativa; b)Conexoes com a Computacao e c) Suposicoes Implıcitas. A subsecao “Visao Alternativa” procuraapresentar os conceitos do Capıtulo ou parte dele de maneira diferente do que foi apresentado,facilitando a compreensao do texto. Alias, isto ja e feito em muitos comentarios por todo o livro enao apenas nesta subsecao. Qualquer texto se torna difıcil de entender se apenas uma unica visao eapresentada. O leitor nao consegue formar uma ideia clara dos conceitos apresentados assim comoquando enxergamos com um unico olho nao temos a ideia de profundidade da cena observada.

A subsecao “Conexoes com a Computacao” apresenta os possıveis relacionamentos entre oCapıtulo e a Computacao. Nao se pretende fazer uma apresentacao profunda de topicos da com-putacao nesta secao. A subsecao “Suposicoes Implıcitas” apresenta as suposicoes implıcitas paraque o Capıtulo seja valido. Frequentemente se assume que algumas coisas sejam validas ou abso-lutamente necessarias quando isto nem sempre e o caso. Esta secao apresenta o que normalmentesupomos ao estudar o Capıtulo. Note que esta subsecao de certa forma se sobrepoe com a secao“Visao Alternativa”. Contudo, o objetivo de ambas e diferente. O objetivo da subsecao “Visao Al-ternativa” e fazer o leitor compreender melhor o texto. O objetivo da secao “Suposicoes Implıcitas”e abrir a mente, despertar a criatividade, mostrar que qualquer texto supoe um certo raciocıniodo leitor implicitamente e que isto poderia ser diferente. O objetivo e despertar o leitor para apesquisa em Logica, embora saibamos que este e apenas um texto introdutorio de logica.

2

Page 7: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Unidade 1

Introducao e Historia

1.1 Primeiras palavras

Logica e a disciplina que estuda o raciocınio dedutivo, o que se pode deduzir a partir de premissasconsideradas verdadeiras. Como exemplo inicial, a partir das frases “todo numero par e divisıvelpor 2” e “6 e par”, pode-se concluir que “6 e divisıvel por 2”. Nao interessa a logica se as duasprimeiras frases sao verdadeiras no mundo real — o que interessa e que, se sao verdadeiras, pode-sededuzir a terceira frase a partir delas. Mortari [9] da a seguinte definicao de logica:

Logica e ciencia que estuda princıpios de inferencia, tendo o objetivo principal de determinar emque condicoes certas coisas se seguem (sao consequencia), ou nao, de outras.

A logica e atualmente um enorme corpo de conhecimento que engloba quatro diferentes areas:teoria da prova, teoria dos modelos, teoria axiomatica dos conjuntos e computabilidade. Nestecurso veremos uma introducao a teoria da prova e a teoria dos modelos. Computabilidade e umaarea vista em disciplinas de Teoria da Computacao ou Linguagens Formais e Automatos.

1.2 Historia, Paradoxos e Princıpios Basicos

A logica foi a criacao de um unico homem, Aristoteles (384 a.C.-322 a.C.). A logica de Aristotelesera inteiramente verbal, sem o emprego de sımbolos. Como exemplo, de “Todos os homens saomortais” e “Socrates e um homem”, pode-se deduzir que “Socrates e mortal”. Este e um dos tiposde raciocınio catalogados pelo sabio grego. Havia outros vinte e quatro (dos quais cinco estaoimplıcitos em outros), todos empregando apenas palavras. Ja na Antiguidade surgiu o primeiro‘paradoxo’ logico quando o cretense Epimenides disse “Todos os cretenses sao mentirosos”. Naverdade, esta frase nao e paradoxal, pois ela pode ser tanto verdadeira quanto falsa sem que ocorrauma contradicao.1 Uma frase e paradoxal quando ela nao pode ser nem verdadeira nem falsa,

1Se um mentiroso e alguem que mente ocasionalmente e toda mentira e exatamente o oposto da verdade, entaoesta frase pode ser falsa: Epimenides estava mentindo ocasionalmente ao pronuncia-la. Se tomarmos ‘mentiroso’como alguem que mente sempre, entao esta frase e falsa. Se fosse verdadeira, como foi dita por um cretense, elaestaria dizendo que ela mesmo e falsa. Contradicao. Como esta frase e falsa, Epimenides queria dizer exatamente

3

Page 8: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

como “esta frase e falsa”. Outro falso paradoxo e a frase “toda regra tem excecao”.

Paradoxos em geral sao frases que referenciam a si mesmas. Mas nem todas as frases destetipo sao paradoxais. Por exemplo, a frase “esta frase e verdadeira” nao e paradoxal. Ela podeperfeitamente ser verdadeira. Grande parte dos paradoxos contem uma auto referencia e umanegacao, como “esta frase e falsa”.

A logica era uma das disciplinas estudadas tanto na Idade Antiga quanto na Idade Media,chegando aos tempos modernos. Contudo, aparentemente nada faltava ao estudo da logica e estadisciplina nao foi um topico serio de pesquisa ate meados do seculo XIX quando recomecou ointeresse no assunto, comecando com Boole, Peano, Fregue e Bertrand Russel. O interesse destesmatematicos era prover uma base solida para a Matematica.

Ha inumeraveis tipos de logica como logica classica, modal, paraconsistente, multivalorada,intuicionista, fuzzy, temporal, quantica, ... A logica que mais interessa a Computacao e a LogicaMatematica, que abstrai os raciocınios utilizados em Matematica. Esta logica utiliza tres princıpioscolocados por Aristoteles:

1. princıpio da nao contradicao: nao e verdade que uma proposicao A e a sua negacao sejamverdadeiras ao mesmo tempo. Em sımbolos (que estudaremos mais tarde), escrevemos

¬(A ∧ ¬A)

2. princıpio do terceiro excluıdo: ou a proposicao A ou a sua negacao sao verdadeiras. Emsımbolos:

A ∨ ¬A

3. reflexividade da identidade: qualquer coisa e igual a si mesma. Em sımbolos:∀x(x = x)

As logicas chamadas classicas, entre as quais se incluem a logica Matematica, seguem os tresprincıpios acima. As logicas nao classicas (paraconsistente, multivalorada, fuzzy, quantica, etc)nao seguem um, dois ou tres destes princıpios.

No final do seculo XIX e inıcio do seculo XX surgiram diversos paradoxos logicos, classificadoscomo sintaticos (ou logicos) e semanticos. O paradoxo sintatico mais conhecido foi descoberto porRussel em 1902 enquanto estudava teoria dos conjuntos de Cantor. Os paradoxos aparecem quandoconjuntos podem ser definidos a partir de uma lei ou formula qualquer. Vejamos o paradoxo.

Considere o conjunto C de todos os conjuntos que nao pertencem a si mesmos:C = {x : x 6∈ x}

A formula “x 6∈ x” que aparece depois dos “:” e a condicao para um elemento pertencer aoconjunto C. Chamaremos esta formula de A. Entao,

• se um dado y obedece a esta formula/condicao, entao y pertence a C. Em outras palavras,se y 6∈ y, entao y ∈ C. Por outro lado, se y nao obedece a esta formula (y ∈ y), y 6∈ C. Istoe, se y ∈ y entao y 6∈ y;

o contrario do que disse, que alguns cretenses nao sao mentirosos ! Naturalmente, neste caso Epimenides e ummentiroso.

4

Page 9: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

• qualquer y que pertence a C obedece a esta formula/condicao; isto e, se y ∈ C, entao y 6∈ y.Se y nao pertence a C entao y nao obedece a formula A. Isto e, se y 6∈ C, entao y ∈ y.

Pergunta-se: C pertence a C? Vejamos as duas possibilidades:

• sim, C ∈ C. Entao C deve obedecer a condicao/formula A (x 6∈ x com x = C) do conjuntoC. Entao C 6∈ C. Contradicao, pois assumimos que C ∈ C;

• nao, C 6∈ C. Entao C obedece a condicao/formula A necessaria para pertencer a C (x 6∈ xcom x = C) e, portanto, C ∈ C. Contradicao.

De qualquer forma, C pertencendo ou nao a si mesmo, chegamos a uma contradicao.

Os matematicos e logicos eliminaram este tipo de contradicao da teoria dos conjuntos criandouma teoria de conjuntos chamada de Zermelo-Fraenkel. Nesta teoria, a condicao x 6∈ x na definicaodo conjunto C nao e considerada valida. E entao C nao e considerado um conjunto.

Este paradoxo e chamado de sintatico porque ele pode ser descrito utilizando a linguagemformal da Logica de Primeira Ordem (que ainda sera visto). Ja os paradoxos semanticos naopodem ser descritos utilizando uma linguagem formal.

Ha diversos paradoxos semanticos descritos na literatura. Veremos alguns:

1. se a frase “esta frase e falsa” for verdadeira, entao ela diz que e falsa. Contradicao. Se elafor falsa, entao o contrario e verdadeiro, ou seja, ela e verdadeira;

2. paradoxo de Berry (1906). Ha um numero finito de palavras em Portugues e portanto umnumero finito de frases com menos do que vinte palavras. Considere o conjunto de todos osnumeros naturais (N) que podem ser definidos com frases com menos do que vinte palavras.Este conjunto sera chamado de M e contem os seguintes inteiros, pelo menos: 1 (“um”), 323(“trezentos e vinte e tres”, frase com menos do que vinte palavras), 5 (“o terceiro numeroprimo”), 1024 (“a primeira potencia de dois maior do que mil”), 21000000000!! (“o fatorial dofatorial de dois elevado a um bilhao”). Ha um numero finito de numeros naturais no conjuntoM . Mas quantos? Vamos calcular quantas frases de 20 palavras existem, no maximo. Cadapalavra tem menos do que 100 letras (exagerando!). Entao temos 100 ∗ 20 = 2000 caracterespara as palavras. Supondo que temos 26 letras (agora o Portugues usa 26 letras), temos nomaximo 262000 frases diferentes com 20 palavras. Calcular o numero maximo de frases commenos do que vinte palavras fica como exercıcio (e uma progressao geometrica). De qualquerforma, este numero e finito, isto e, o tamanho do conjunto M e finito.

Estariam em M o 0 (“zero”), o 125 (“primeiro quadrado perfeito depois de 100”) e999999999999999999999999999999(“um numero composto por trinta noves”). Claramente existe um inteiro n que e o maiorelemento de M mais 1. Claramente n nao esta em M — ele e maior do que o maiorelemento de M , embora seja apenas uma unidade maior. Como n e apenas o maior elementode M mais 1 (e apenas +1), entao n e o menor inteiro maior do que o maior elementode M , o conjunto dos inteiros que podem ser definidos com menos do que vinte palavras.Entao “n e o menor inteiro que nao pode ser definido com menos do que vinte palavras”.Mas esta frase contem menos do que vinte palavras. Logo n pertence a M . Contradicao,pois assumimos que ele nao pertencia a este conjunto. Nao e possıvel definir o conjunto Msem cair em uma contradicao;

5

Page 10: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

3. paradoxo de Grelling (1908). Um adjetivo e chamado de autologico se a propriedade que eledenota se aplica a si mesmo, e de heterologico em caso contrario. Por exemplo, “vermelho”e heterologico, pois este adjetivo nao e vermelho (adjetivos nao tem cor). Ja “polissilabico”e autologico, pois esta palavra possui seis sılabas. “Monossilabico” e heterologico pois pos-sui mais de uma sılaba. Pergunta-se: e “heterologico” um adjetivo heterologico? Se sim,a propriedade heterologica nao se aplica a palavra “heterologica” e entao esta palavra eautologica. Contradicao, pois assumimos que a palavra e heterologica. Se “heterologico”e autologico, a propriedade heterologica se aplica a palavra “heterologico” e portanto estapalavra e heterologica. Contradicao novamente.

Os paradoxos semanticos nao interessam a logica que estudaremos, a logica Matematica. Elesenvolvem nocoes da linguagem natural (Portugues) que nao ocorrem em Matematica.

Comecaremos o estudo da logica apresentando os sistemas formais, que sao sistemas capazesde produzir “sentencas”, chamadas de teoremas, a partir de axiomas e regras. Esta introducaoe necessaria porque toda logica e um sistema formal. Na Secao 3.2, sera estudado o calculoproposicional, que e uma logica bem simples e que faz parte da logica que nos interessa, que e aLogica de Primeira Ordem, que sera estudada na Unidade 12. A Logica de Primeira Ordem utilizaos chamados quantificadores universais (para todo x vale a proposicao P(x)) e existenciais (existex tal que P(x)).

1.3 Consideracoes Finais

Uma frase e paradoxal quando ela nao pode ser nem verdadeira nem falsa, como “esta frase efalsa”. Ha paradoxos sintaticos e semanticos, sendo que para a logica matematica o que interessasao os paradoxos sintaticos, como o paradoxo de Russel.

Ha inumeros tipos de logica: classica, modal, paraconsistente, fuzzy, quantica, etc, sendo quea logica que veremos e a logica matematica, uma das logicas classicas. O calculo proposicional,que faz parte da logica matematica, e a base para a construcao de computadores.

1.4 Exercıcios

Atividades Individuais

1.1. Cite tres logicas. Qual estudamos neste curso? Por que?

1.2. Faca uma sentenca que nao e verdadeira nem falsa diferente das que foram apresentadas notexto.

1.3. Por que a frase “toda regra tem excecao” nao e paradoxal?

1.4. Explique com suas palavras o paradoxo de Berry.

1.5. Explique o paradoxo de Russel.

6

Page 11: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

1.6. Procure na Internet algo mais sobre a historia da logica. Alguns topicos e personagensinteressantes sao:

1. logica na idade media

2. Leibniz

3. Fregue

4. Godel

5. Tarski

7

Page 12: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Unidade 2

Sistemas Formais

2.1 Primeiras palavras

Esta Unidade introduz sistemas formais de maneira informal. Um sistema formal e uma maneirade gerar sequencias de sımbolos de maneira sistematica e precisa. Como exemplo, podemos ter umsistema formal capaz de gerar todas as expressoes aritmeticas com numeros inteiros e operadores+, − e ∗ (multiplicacao). Como exemplos de sequencias deste sistema formal temos 1 + 2, 1 ∗ 2 +2 ∗ 3 + 3 ∗ 4 e 1 ∗ 2 ∗ 3 ∗ 4 ∗ 5 − 1. Sendo preciso, este sistema formal nunca geraria expressoesincorretas como 1 + ∗2 ou 24∗. A logica matematica que estudaremos e composta por um sistemaformal mais uma interpretacao deste sistema — e por este motivo que estudaremos este topico.

2.2 Problematizando o Tema

Frequentemente temos um conjunto de elementos de qualquer coisa (numeros, palavras, sımbolos,blocos de plastico, formulas, etc) que podem ser construıdos a partir de algumas regras basicas.Isto e, dadas as regras e um certo conjunto de pecas iniciais, pode-se construir o conjunto todo.O conjunto pode mesmo ser infinito. Por exemplo, a partir do numero 1 e da soma repetidado numero 2, podemos construir somas que, quando avaliadas, resultam no conjunto de todos osnumeros ımpares: 1, 1+2, 1+2+2), . . .. Esta unidade trata justamente deste tipo de “construcao”de conjuntos. A questao e como definir esta construcao de maneira formal, precisa. E este o topicodesta unidade.

2.3 Alfabetos, Axiomas e Regras de Sistemas Formais

O que e um sistema formal? E um sistema que consiste de

1. um alfabeto de sımbolos composto por quaisquer sımbolos que podem ser colocados nopapel;

8

Page 13: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

2. sequencias1 bem definidas de sımbolos deste alfabeto chamadas de formulas. Deve serpossıvel definir precisamente o que e formula;

3. axiomas (um subconjunto das formulas) e

4. regras para produzir novas formulas a partir de outras.

Antes de mais nada, saiba que as palavras formula, axioma e teorema empregadas nestaunidade sao definidas de maneira bem diferente do que voce conhece na Matematica. Utilize asdefinicoes dadas neste texto e nao as relacione com as definicoes que voce conhece. Em particular,nao considere que um axioma e uma proposicao verdadeira ou que um teorema e algo sobre algumaentidade matematica.

Exemplo 2.1. Como exemplo, vamos definir um sistema formal que chamaremos de S. O alfabetopoderia ser qualquer coisa, mas utilizaremos apenas os dıgitos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Entao osistema S so utilizara estes sımbolos e nada mais. Note que e voce, o criador do sistema formal,que decide que sımbolos utilizar. O alfabeto pode ser qualquer conjunto de sımbolos, ate mesmosımbolos que nao estejam no teclado e que so possam ser desenhados a mao ou em alguma ferra-menta de desenho. So que aı ficaria muito difıcil fazer as coisas. Em resumo, para facilitar, utilizeapenas os sımbolos que estao no teclado ou disponıveis no Moodle (para facilitar, utilize apenas osdo teclado). Entao temos que o alfabeto do sistema S e o conjunto Σ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}.Note tambem que nao estamos nos referindo a estes dıgitos como numeros inteiros. Sao apenassımbolos que nao serao utilizados como numeros, pelo menos por enquanto.

O conjunto de todas as sequencias de sımbolos do alfabeto formam um conjunto infinito.Chamaremos este conjunto de Σ?, que contem 0, 1, 2, . . . e qualquer concatenacao de sımbolos doalfabeto. Por exemplo, podemos concatenar 0 e 1 para obter 01 e entao 01 ∈ Σ?. Ou podemosconcatenar varios sımbolos de uma so vez, em qualquer ordem, para obter uma sequencia qualquer,que pertencera a Σ?. Entao os seguintes sımbolos pertencem a Σ?: 01, 787, 754732104823, 5, 6666,... Em resumo, qualquer numero inteiro, quando considerado apenas como uma sequencia desımbolos do conjunto Σ = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, pertence a Σ?.

Um sistema formal nao utiliza todas as sequencias de sımbolos do alfabeto, o conjunto Σ?. Emgeral, ele utiliza um conjunto menor de sımbolos que chamaremos de conjunto de formulas.Algumas sequencias de Σ? serao consideradas formulas e outras nao. Quem projeta o sistemaformal decide o que sera considerado formula. Podemos, por exemplo, considerar como formulastodas as sequencias que terminam com 1, 3, 5, 7 e 9. Assim, seriam formulas:

1, 3, 5, 7 9 (um unico sımbolo termina com ele mesmo)871, 41, 44445, 382578057, 89, 2323, 98973555

Mas nao seriam formulas as sequencias8, 4, 44, 444, 382578058, 86, 232, 9897356

Naturalmente, neste caso ha infinitas sequencias que sao formulas e infinitas que nao sao.

Para facilitar a definicao do nosso sistema S, consideraremos como formulas todas as sequenciasde sımbolos do alfabeto. Assim, o conjunto de formulas e igual a Σ?.

1strings em Ingles

9

Page 14: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

O terceiro item a ser definido para um sistema formal e o conjunto de axiomas. Um axiomadeve ser um dos elementos do conjunto de formulas. Voce escolhe quantos e quais elementos desteconjunto serao axiomas. Escolheremos dois, 0 e 5.

Resta agora definir um conjunto de regras. Uma regra ensina como produzir um teorema.Pode-se dizer que uma regra toma um ou mais teoremas e produz um outro teorema. Mas o quee um teorema? Em primeiro lugar, por definicao todo axioma e um teorema. Em segundo lugar,um teorema e uma formula produzida por uma regra. Note que um teorema tem que ser umaformula. Foi por isso que foi dada a definicao de formula!

Como deve ser uma regra? Pode ser praticamente qualquer sequencia de instrucoes que vocepossa imaginar que tome um ou mais teoremas como entrada e produza um teorema como saıda.Um exemplo poderia ser:

[R1 - Regra 1] Se x e y sao teoremas, entao xy e um teorema.

Sempre utilizaremos um sımbolo ao lado do outro, como “xy”, para representar a concatenacaodos sımbolos de x e y. Por exemplo, se x e 005 e y e 050, entao xy e 005050.

A regra pega teoremas e produz teoremas, sendo que a definicao de “teorema” envolve adefinicao de “regra”. Isto parece uma definicao circular. Mas nao e, porque a definicao de teoremadiz que todo axioma e um teorema. Entao para produzir os teoremas do sistema S, comecamoscom os axiomas, 0 e 5 e podemos ir aplicando a regra R1 para produzir novos teoremas.

Vejamos alguns:

• 0, pois 0 e axioma e todo axioma e teorema;

• 5, pois 5 e axioma e todo axioma e teorema;

• 00, pois podemos usar R1 com x = 0 e y = 0;

• 55, pois podemos usar R1 com x = 5 e y = 5;

• 05, pois podemos usar R1 com x = 0 e y = 5;

• 5505, pois podemos usar R1 com x = 55 e y = 05. Sabemos que 55 e 05 sao teoremas pelositens anteriores;

• ...

Em resumo, partimos dos axiomas e, aplicando a regra R1, podemos ir produzindo umasequencia infinita de teoremas. Note novamente que todos os axiomas sao teoremas e que to-dos os teoremas sao formulas.

Voce pode definir quantas regras quiser, de que modo for necessario. Digamos que o seuobjetivo seja produzir como teoremas todas as formulas que terminam em 0 ou 5. Entao deveriamser teoremas:

0, 5, 10, 15, 20, 25, 30, 35, . . ., 1000, 1005, 2967305, . . ., 98973555, . . .

Para isto, podemos adicionar uma outra regra ao sistema S:

10

Page 15: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Figura 2.1: Relacoes entre os conjuntos de um sistema formal

[R2 - Regra 2] Se x for um teorema, dx sera tambem um teorema, no qual d pode serqualquer sımbolo do alfabeto (mas um unico sımbolo).

Utilizando a regra R2, temos alguns novos teoremas:

• 10, com d = 1 e x = 0, pois 0 e axioma e todo axioma e teorema;

• 15, com d = 1 e x = 5, pois 5 e axioma e todo axioma e teorema;

• 20, com d = 2 e x = 0. Como sabemos, 0 e um teorema;

• 25, com d = 2 e x = 5. Como sabemos, 5 e um teorema;

• 325, com d = 3 e x = 25. Pelo item anterior, 25 e um teorema;

• 8325, com d = 8 e x = 325. Pelo item anterior, 325 e um teorema.

As regras podem ser aplicadas em qualquer ordem e qualquer numero de vezes.

Voce e agora estimulado a fazer o seu proprio sistema formal. Defina o alfabeto, o que e formula,os axiomas e o conjunto de regras. Lembre-se de que, se Σ e o alfabeto,Σ? o conjunto de todas assequencias possıveis de sımbolos do alfabeto, ∆ o conjunto de formulas, Γ o conjunto de axiomase Φ o conjunto de teoremas, as seguintes relacoes devem ser verdadeiras: Γ ⊂ Φ ⊂ ∆ ⊂ Σ?. Vejaa Figura 2.1.

Ha dois outros topicos importantes sobre sistemas formais. O primeiro e o conceito de meta-teorema. Um meta-teorema e um teorema sobre o proprio sistema formal. Nesta ultima fraseutilizamos a palavra “teorema” no sentido usual da Matematica, nao no sentido definido nestaunidade para sistemas formais. Em resumo, um meta-teorema e uma proposicao sobre o propriosistema formal. Por exemplo, estude este meta-teorema sobre o sistema formal S dado acima:

[Meta-teorema] Se x e um teorema do sistema formal S, entao x termina com 0 ou 5.

Os axiomas sao 0 e 5 e as regras R1 e R2 preservam estes dıgitos na ultima posicao. Confira.

11

Page 16: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Depois que voce define o alfabeto, formulas, axiomas e regras de um certo sistema formal, estesobviamente ficam fixados. Se quiser, pode fazer outro sistema com outras regras. Mas as de umcerto sistema formal, como S, ficam fixas.

Veremos agora um outro conceito, que e o de “esquema de axioma”. Estudaremos um outroexemplo de sistema formal para apresentar este conceito.

Exemplo 2.2. Faremos um sistema formal que produza como teoremas todas as combinacoespossıveis de consoante/vogal utilizando o alfabeto minusculo latino, qualquer numero de vezes.Mas precisamente, os teoremas devem ser do tipo c1v1c2v2...cnvn no qual ci e uma consoante, vi euma vogal e n ∈ N. Isto e, o sistema formal devera produzir todos os seguintes teoremas:ba, be, bi, bo, bu, da, de, di, do, du, ... za, ze, zi, ze, zu, bada, bade, badi, ... badaca, badace, ...tadefu, caravela, metalizado, ...

Chamaremos este sistema formal de T. Fica claro que o alfabeto de T deve ser { a, b, c, d, e, f,g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z }. Agora temos que definir o que e formula. Temosmuitas opcoes e utilizaremos a mais facil delas: uma formula e qualquer sequencia de sımbolos doalfabeto de T. Entao asfas, fdiemn, jnvcb, y, ym, iq, ... sao formulas.

O problema esta agora. O que deve ser axioma? E o que deve ser regra? Temos que definir asduas coisas juntas para que, combinadas, possam produzir os teoremas esperados. Uma forma edefinir todas as combinacoes de consoante e vogal como axiomas. Assim, o conjunto de axiomasseria

ba, be, bi, bo, bu, ca, ce, ci, co, cu, da, de, ..., za, ze, zi, zo, zu

Como isto e um sistema formal, nao poderıamos utilizar “...” na definicao do conjunto. Terıamosque escrever todas as 21 ∗ 5 = 105 combinacoes de consoantes e vogais. E muita coisa. Mas feliz-mente ha uma maneira mais facil de fazer isto: utilizando um esquema de axioma:

[Esquema de axioma] Se C e uma consoante e V uma vogal do alfabeto de T, entao CV e umaxioma.

Este esquema de axioma representa todas as 105 combinacoes possıveis de axiomas. Qualquerformula que se encaixe na definicao do esquema de axioma e considerado um axioma, o que eexatamente o que queremos. Entao ca e um axioma, pois “c” e uma consoante e “a” e uma vogal.

Falta fazer a regra de T. Simples:

[R1 - regra 1] Se x e y sao teoremas, xy e teorema.

Entao sao teoremas

• ca, pois ca e axioma e todo axioma e teorema;

• ra, pois ra e axioma e todo axioma e teorema;

• cara, pois podemos usar R1 com x = ca e y = ra;

• ve, pois ve e axioma e todo axioma e teorema;

• carave, pois podemos usar R1 com x = cara e y = ve;

• la, pois la e axioma e todo axioma e teorema;

12

Page 17: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

• caravela, pois podemos usar R1 com x = carave e y = la;

• ...

Podemos ter varios meta-teoremas para o sistema R. Vejamos alguns:

[Meta-teorema 1] todo teorema tem um numero par de letras.

[Meta-teorema 2] todo teorema comeca com uma consoante.

[Meta-teorema 3] todo teorema termina com uma vogal.

O sistema T como definimos satisfaz todas as especificacoes iniciais. Mas esta nao e a unicaforma de satisfazer aquelas especificacoes. O que queremos e que o sistema produza como teoremastodas as sequencias c1v1c2v2...cnvn no qual ci e uma consoante, vi e uma vogal e n ∈ N. Entaopodemos definir um outro sistema U que produz estes teoremas.

Exemplo 2.3. O alfabeto de U e o mesmo de T, { a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r,s, t, u, v, w, x, y, z }. A definicao de formula pode ser: uma sequencia de sımbolos s e formula secomecar por uma consoante e terminar por uma vogal. Claramente, todos os teoremas sao destaforma, entao esta definicao nao vai “atrapalhar” a producao de teoremas.

Definiremos um unico esquema de axioma:

[Esquema de axioma] Ca, Ce, Ci, Co, e Cu sao axiomas se C for uma consoante do alfabeto de U.

Entao sao axiomas as formulas ba, be, bi, bo, bu (usando C = b), ca, ce, ci, co, cu (usando C= c), da, de, ..., za, ze, zi, zo, zu, como esperado.

E definiremos duas regras:

[R1 - regra 1] Se x for um teorema, Cax e Cex serao teoremas, no qual C e uma consoante doalfabeto de U.

[R2 - regra 2] Se x for um teorema, xCi, xCo e xCu serao teoremas, no qual C e uma consoantedo alfabeto de U.

Por R1, cara e teorema. Vejamos porque: tomando C = c e x = ra, temos que Cax e cara. rae teorema por ser axioma. Este sistema formal e mais difıcil de trabalhar do que o sistema T masdefine exatamente o mesmo conjunto de teoremas.

Um esquema de axioma pode representar infinitos axiomas. Por exemplo, em um sistemaformal que utiliza o alfabeto {0, 1, 2, 3, 4, 5, 6, 7, 8, 9,+, ?}, um esquema de axioma poderia ser:

[Esquema de axioma] x+ y e um axioma se x e y forem sequencias de sımbolos compostos apenaspor dıgitos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

Como existem infinitas sequencias de sımbolos usando os dıgitos, existem infinitos axiomasneste sistema formal. Por exemplo, seriam axiomas 0 + 1, 28 + 344, 7879 + 45453899, etc.

Exemplo 2.4. Estudaremos apenas mais um exemplo de um sistema formal, que chamaremos deV. Este sistema utiliza o alfabeto { 0, 1, a, b }. Em V, sao formulas apenas as sequencias que

13

Page 18: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

comecam com “a” ou com “0”, como “a0”, “0bb1a0a” e “a0aabbb111000”. Nao sao formulas nestesistema formal as seguintes sequencias: “b00” e “1bab”.

No sistema V, apenas 01 e ab sao axiomas. As regras do sistema V sao dadas abaixo, nas quaisy e uma sequencia de sımbolos qualquer do alfabeto de V, podendo inclusive ser vazia.

1. se 0y for um teorema, 0ay sera um teorema;

2. se ay for um teorema, ayy sera um teorema.

Quais sao entao os teoremas de V? Comecando pelos axiomas, os teoremas sao:

1. 01 (axioma)

2. ab (axioma)

3. 0a1 (01 com regra 1)

4. 0aa1 (0a1 com regra 1)

5. ...

6. abb (ab com regra 2)

7. abbbb (abb com regra 2)

8. ...

Lembre-se das recomendacoes iniciais desta unidade: um axioma, como definido aqui, nao estadiretamente relacionado a definicao de “axioma” da Matematica. Em particular, nao faz sentidodizer que um axioma e verdadeiro. No sistema S, por exemplo, nao faz sentido dizer que 0 e 5 saoverdadeiros ou falsos. O conceito simplesmente nao se aplica aqui.

Uma regra sempre toma um ou mais teoremas como entrada e produz um unico teorema comosaıda. Mas ainda resta uma ultima questao: o que pode ser uma regra? Praticamente qualquercoisa que tome um ou mais teoremas e produza um teorema. Vamos dar alguns exemplos. Assumaque os sımbolos que aparecem nos itens pertencam ao alfabeto do sistema formal.

1. se x e y sao teoremas, entao xy e teorema (concatenacao de x com y, como usual).

2. se x−→y e x sao teoremas, entao y e teorema.

3. se ¬A ∨B e A ∨ C sao teoremas, entao B ∨ C sao teoremas;

4. se x e teorema e possui um numero par de sımbolos, entao 00x11 e teorema.

5. se A e teorema, entao ∀x(A) e teorema.

6. se 0x1 e 000y sao teoremas, entao 1x2y e teorema.

14

Page 19: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

7. ...

E o que nao pode ser uma regra? Vamos dar alguns exemplos:

1. se x e teorema e o numero de estrelas no universo for par, entao 0x1 e teorema. Nao sabemosnem se o universo e finito, quanto mais se o numero de estrelas e par ou nao;

2. se x e y sao teoremas e se for chover em Paris no dia 30 de julho de 2500, entao xy e teorema.Sem comentarios.

Pode-se fazer “regras” nao validas utilizando conhecimentos mais avancados de computacao, oque nao podemos mostrar aqui. Finalizando, a definicao de regra valida e: se voce pode fazer umprograma de computador que implemente a regra, entao a regra e valida.

2.4 Visao Alternativa

Um sistema formal pode ser comparado a um conjunto de pecas de plastico com regras de comocombina-las (brinquedos do tipo Lego). As pecas possuem saliencias e depressoes para se en-caixarem umas nas outras. Duas pecas quaisquer nao necessariamente podem ser agrupadas, poiselas podem nao se encaixar. As regras do sistema formal estariam subentendidas nas salienciase depressoes nas pecas. O alfabeto seriam as proprias pecas, cada peca seria um axioma e umteorema e qualquer agrupamento de pecas.

Um sistema formal nada mais e do que um jogo de compor pecas segundo regras. E observeque, nestes brinquedos, os sımbolos do alfabeto (pecas) e os teoremas possuem tres dimensoes.

2.5 Conexoes com a Computacao

2.5.1 Regras Como Algoritmos

Uma conexao com a computacao foi dada na definicao de uma “regra” de um sistema formal. Umaregra deve poder ser transformada em um algoritmo. E o que e exatamente um algoritmo? E umasequencia de instrucoes que pode ser colocada em um programa escrito em qualquer linguagem deprogramacao.2

Como um exemplo, a regra que conecta dois teoremas x e y para criar o teorema xy pode sercodificada em linguagem Java como

String regra(String f1, String f2) {

return f1 + f2; // + aqui e a concatenac~ao de strings

}

2Rigorosamente, admite-se que o programa possa alocar uma quantidade potencialmente infinita de memoria, oque nao e o caso real, ja que todos os computadores possuem uma memoria finita.

15

Page 20: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

2.5.2 Programas Como Sistemas Formais

Podemos encontrar um sistema formal que faz a mesma coisa que um programa qualquer? Apare-mentemente sim, pois afinal um programa e composto de algoritmos e as regras so sistema formaltambem. Veremos que a resposta e “sim”. Um programa toma uma entrada, altera-a atraves desucessivas instrucoes e no final de sua execucao produz uma saıda.3 Entao um programa qualquertoma uma sequencia de bits como entrada e produz uma sequencia de bits como saıda feita atravesde sucessivas modificacoes da entrada. Veremos entao com converter um programa P qualquer emum sistema formal.

A entrada do programa P corresponde ao unico axioma do sistema formal. Entao para cadacombinacao P/entrada temos um sistema formal diferente. As regras correspondem as alteracoesfeitas na entrada, pelo programa, atraves de suas instrucoes, ate se obter uma saıda. A saıda seriaum teorema do sistema formal. Pode-se assumir que um teorema e uma saıda quando tiver umsımbolo especial como ultimo carater. Em um caso extremo, terıamos uma unica regra que seriaaplicada uma unica vez. A regra toma o axioma, que corresponde a entrada, e produz um teorema,que corresponde a saıda. E fim.

Contudo, e mais didatico imaginarmos que a cada instrucao do programa, seja ele feito emuma linguagem de alto nıvel ou em assembler, corresponde a uma regra do sistema formal. Comoexemplo, estudaremos um sistema formal (incompleto !) equivalente a um programa que somauma sequencia de numeros. O axioma poderia ser a sequencia

100111− 10101− 11111− 1− 10indicando que queremos calcular 100111 + 10101 + 11111 + 1 + 10.

As regras manipulam os bits de tal forma que o teorema final seja1011110#

que e a soma dos numeros presentes no axioma. O # indicaria que nenhuma regra deveria seraplicada deste ponto em diante.

O que aconteceu foi que colocamos os numeros de entrada, 100111, 10101, 11111, 1 e 10 noaxioma em um formato apropriado, separados por −. Note que o alfabeto deste sistema formale {0, 1,−,#}. Depois de aplicar as regras do sistema varias vezes, obtemos um teorema (quee sempre terminado por # por nossa convencao). As regras produzem uma sequencia de bitsque e exatamente a somatoria dos numeros iniciais. Observe que temos que passar a entradapara o formato esperado pelo sistema formal e interpretar a saıda de acordo com a convencaoque utilizamos. Note que as regras nada sabem sobre esta nossa convencao — regras fazemmanipulacoes mecanicas de sımbolos sem conhecer a semantica deles. Naturalmente, as regras naoviolam o significado da nossa convencao, elas de alguma forma sao coerentes com o que queremosdo programa.

E quanto as regras deste sistema formal, com seriam elas? Tudo o que podemos dizer e queseriam um tanto complexas para serem colocadas aqui, mas que existem. Para compreender isto,basta dizer que elas seriam equivalente as instrucoes do assembler de um computador como mov,add, xor, etc.4

3Nao precisamos considerar os programas interativos que tomam entradas e produzem saıdas durante a suaexecucao — simplesmente podemos considerar que estes programas comecam uma nova execucao apos uma novaentrada e terminam a sua execucao apos uma saıda.

4A primeira regra seria aplicada se a sequencia nao comecasse com #. A partir daı as regras iriam numerandoas sequencias ate que se chegue ao teorema final, que termina com #. Para exemplificar, se o axioma e 101 − 11,

16

Page 21: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Figura 2.2: Tres geracoes de um automato celular

2.5.3 Automato Celular e Jogo da Vida

Existe uma aplicacao direta, simples e interessante de sistemas formais em computacao ? Sim,existe, e se chama Jogo da Vida. O jogo da vida e um automato celular que pode (deve !) serimplementado por um programa e que mostra o nascimento e morte de celulas (quadradinhos) acada vez que suas regras sao aplicadas. O jogo da vida, apesar do nome, nao e um jogo, e umsistema formal cuja observacao nos e muito util para a compreensao dos sistemas formais.

Um automato celular [11] consiste de um conjunto quadriculado de celulas infinito, cada umadas quais podendo estar em um conjunto finito de estados, representados por cores. O quadriculadopode ter qualquer numero finito de dimensoes, embora utilizaremos duas dimensoes nesta Unidade.Entao o automato pode ser representado no plano. A Figura 2.2 mostra tres automatos celularesde duas dimensoes onde cada celula pode estar em um de dois estados: branco ou preto. Umautomato celular se modifica em intervalos discretos de tempo. A cada passo, intervalo discreto,novos valores de estado sao calculados para cada celula baseado em um numero finito de celulasvizinhas. A celula assume este novo estado no proximo passo, tambem chamado de proximageracao. Por exemplo, o valor de uma celula pode ser calculado considerando-se os estados dasduas celulas verticais e duas celulas horizontais adjacentes a ela. Se o automato tem n estados,haveria n4 diferentes possibilidades de calculo para cada celula. Cada celula utiliza a mesma funcaode calculo, independentemente de onde ela estiver. Esta funcao de calculo sera chamada de “regra”para calculo do estado da celula.

A Figura 2.2 mostra um automato onde a funcao que calcula o proximo estado de uma celulaconsidera todos os vizinhos imediatos da celula: duas celulas horizontais, duas verticais e quatrodiagonais. A funcao retorna o estado preto se o numero de celulas vizinhas pretas (sem contarcom a propria celula) for ımpar. Caso contrario retorna o estado branco. A Figura mostra tresgeracoes de um automato. O leitor e convidado a conferir a mudanca de cores das celulas destaFigura.

O jogo da vida [4] e um automato celular inventado por John Conway na decada de 60. Oautomato utiliza dois estados, branco e preto. O jogo da vida pode utilizar regras quaisquer parapassar de uma geracao para outra. Citamos abaixo as regras originais de Conway. Estas regrasensinam como calcular a cor de uma celula baseada nas cores das celulas adjacentes da geracaoanterior. Cada celula possui oito vizinhos: dois horizontais, dois verticais e quatro diagonais.

a sequencia de teoremas poderia ser #0#101 − 11, #1#..., #2#..., ..., 1000#. O numero no inıcio da sequenciafunciona com o contador de programa (PC) ou estado de uma maquina de estados finitos. Note que as regras podemutilizar a sequencia sendo transformada para armazenar numeros intermediarios — seria a memoria do computador.

17

Page 22: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Figura 2.3: Quatro geracoes de um jogo da vida

Regras:

• uma celula preta com dois ou tres vizinhos pretos sobrevive para a proxima geracao; isto e,continua preta;

• uma celula preta com um vizinho preto ou nenhum e substituıda por uma celula branca(vazia). E como se a celula morresse por solidao;

• uma celula preta com quatro ou mais vizinhos pretos e substituıda por uma celula branca.E como se a celula morresse por superpopulacao;

• uma celula branca que possui exatamente tres celulas vizinhas pretas e substituıda por umacelula preta na proxima geracao.

A Figura 2.3 representa quatro geracoes de um jogo, indicadas por g1, g2, g3 e g4. O leitor econvidado a aplicar as regras acima em uma geracao para conseguir chegar a proxima. Cada regradeve ser aplicada baseada na geracao anterior, nao na geracao que voce esta montando atualmente.Veremos como a geracao 2 foi construıda a partir da 1. Por conveniencia, numeramos as celulas.As celulas 10 e 12 de g1, brancas, sao adjacentes a tres celulas pretas. Estas celulas ficam pretas nageracao 2 — confira em g2. Em g1, a celula preta 18 e adjacente a cinco celulas pretas. Esta celulatorna-se branca na geracao 2. As regras nao se aplicam a nenhuma outra celula e terminamos asua aplicacao, obtendo g2.

Para obter g3, note que as unicas celulas que serao modificadas sao 4, 11, 16 e 20. A 4 se tornapreta, pois tem tres vizinhas pretas em g2. A celula 11 tem quatro vizinhos pretos em g2 e entaofica branca em g4. Tanto 16 quanto 20 sao brancas e tem tres vizinhos pretos em g2 e, portanto,ficam pretas em g3.

O jogo da vida e um jogo fascinante, interessante, embora extremamente simples. Chamando aconfiguracao de celulas brancas e pretas de “padrao”, ha padroes que, depois de um certo numerode geracoes:

• se repetem, entrando entao em um laco infinito. A configuracao pode ficar enorme e depoisdiminuir ate conter apenas poucas celulas pretas;

• atingem um estado estavel, nao mais se modificando. Como um exemplo, um quadradoformado por quatro celulas pretas, isoladas de quaisquer outras celulas, nunca se modifica;

18

Page 23: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

• se tornam simetricos, apesar do padrao iniciar nao o ser.

Ha ainda padroes que “se movem” atraves do quadriculado, que criam e disparam padroes quese movem (como um canhao que atira um projetil) e outros que crescem sem parar. O leitor econvidado a pesquisar na Internet e experimentar com as dezenas de implementacoes do jogo davida disponıveis na world wide web.

2.5.4 Gramaticas Como Sistemas Formais

Uma gramatica G e uma quadrupla (N, Σ, P, S) onde

• N e o conjunto de sımbolos nao-terminais;

• Σ e o conjunto de sımbolos terminais;

• P e um conjunto de producoes;

• S e o sımbolo nao-terminal inicial da gramatica.

Como um exemplo, considere uma gramatica G que expressa algumas expressoes aritmeticasvalidas. O conjunto N = { E, T, N }, Σ = { 0, 1, 2, . . . 9 }, S e o sımbolo E e o conjunto P ecomposto pelas “regras de producao” dadas a seguir:

1. E ::= E + T2. E ::= T3. T ::= T ∗ N4. T ::= N5. N ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 7 | 8 | 9

O sımbolo | nao faz parte da gramatica, sendo utilizado apenas para significar “ou”. Assim,na regra 5 acima, N e 0 ou 1 ou ... 9. Pode-se eliminar o sımbolo | escrevendo-se dez regras paraN:

N ::= 0N ::= 1

. . .N ::= 9

A gramatica G e utilizada para produzir sequencias de sımbolos partindo-se do sımbolo inicialE e substituindo-se E por E + T ou T de acordo com a primeira “regra de producao” dada acima.A partir daı, pode-se substituir qualquer dos sımbolos nao terminais, do conjunto N, pelo ladodireito de “::=” de qualquer regra de producao. Por exemplo, pode-se substituir T por T ∗ N ouN. Uma sequencia de substituicoes e chamada de derivacao. Como exemplo, apresentamos umaderivacao de E onde cada passo e seguido do sımbolo =⇒ .

E =⇒ E + T =⇒ T + T =⇒ N + T =⇒ 1 + T =⇒ 1 + N =⇒ 1 + 2

No primeiro passo utilizamos a regra 1, no segundo a regra 2 e no terceiro a regra 4.

19

Page 24: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

A cada gramatica G pode-se associar um sistema formal SFG tal que alguns dos teoremas destesistema correspondem as sentencas que podem ser produzidas pela gramatica. SFG utiliza umalfabeto contendo os sımbolos terminais e nao terminais de G. O unico axioma e o sımbolo inicialda gramatica. As regras de deducao de SFG sao baseados nas regras de producao da gramatica.Uma regra de producao

A ::= αresulta em uma regra

em um teorema qualquer, A pode ser substituıdo por αdo sistema formal.

Na gramatica dada acima, o sistema formal teria como alfabeto o conjunto { E, T , N , +, ∗,0, 1, ... 9 }. O axioma seria o sımbolo E e as regras de deducao seriam:

1. Em um teorema qualquer, E pode ser substituıdo por E + T ou T ;

2. Em um teorema qualquer, T pode ser substituıdo por T ∗N ou N ;

3. Em um teorema qualquer, N pode ser substituıdo por 0 ou 1 ou ... ou 9.

Faremos alguns exemplos de deducao de teoremas neste sistema formal:

(a) 1. E

2. E + T

3. T + T

4. N + T

5. N +N

6. 0 +N

7. 0 + 1

(b) 1. E

2. E + T

3. E + T ∗N4. E + T ∗ 3

5. E +N ∗ 3

6. E + 5 ∗ 3

7. T + 5 ∗ 3

8. N + 5 ∗ 3

9. 7 + 5 ∗ 3

(c) 1. E

2. T

3. N

4. 2

20

Page 25: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Figura 2.4: Numeracao de sımbolos em um sistema formal em duas dimensoes

Um teorema em que nao ocorre nenhum sımbolo nao terminal e chamado de sentenca dagramatica. Assim, sao sentencas desta gramatica os teoremas 0 + 1, 7 + 5 ∗ 3 e 2. Qualquerlinguagem de programacao pode ser descrita por uma gramatica e os programas validos podemser gerados por um sistema formal como descrito acima.5

2.5.5 Suposicoes Implıcitas

Ao apresentar um sistema formal, admitimos que o alfabeto deve ser apresentado em uma unicadimensao, uma linha. Poderıamos ter um sistema formal (SF) que utiliza duas dimensoes? Clara-mente, sim. Mas este SF poderia ser mais poderoso do que qualquer SF convencional, unidimen-sional? Isto e, haveria um SF em duas dimensoes que jamais poderia ser simulado em uma unicadimensao?

Nao, qualquer sistema formal de duas dimensoes poderia ser simulado em uma unica dimensao.Para mostrar como, observe a figura 2.3. Um conjunto de sımbolos colocado neste quadriculado,de duas dimensoes, poderia ser mapeado para uma dimensao seguindo-se os numeros em ordemcrescente. Se um axioma fosse os numeros da figura (a), em duas dimensoes, o axioma correspon-dente seria, em uma dimensao, igual a 1, 2, 3, 4, 5, 6, 7, 8, . . .. As setas da figura (b) indicam comoseriam mapeados os sımbolos. Desta forma, pode-se converter qualquer formula bidimensional emuma formula unidimensional. E mais importante, de maneira biunıvoca: a cada formula bidimen-sional corresponde a uma unica formula unidimensional e vice-versa. Possivelmente terıamos queintroduzir um sımbolo no sistema formal de uma dimensao para representar um quadrado vaziono sistema formal de duas dimensoes. Mas pode ser feito.

E quanto as regras? Podemos converter uma regra que manipula formulas em duas dimensoespara uma regra que manipula formulas em uma dimensao? Claramente, sim. Existe uma funcaoque mapeia cada posicao do quadriculado em uma posicao unidimensional. Utilizando esta funcao,o mapeamento entre a regra bidimensional e a regra unidimensional torna-se trivial. Basta aplicara funcao sempre que a regra bidimensional referir-se a posicao um sımbolo. E que funcao e esta?Se ela se chama f e adotarmos que a posicao 0 do exemplo (a) e (0, 0), entao terıamos f(0, 0) = 0,f(1, 0) = 1, f(1, −1) = 2, f(0, −1) = 3, etc. Fazer esta funcao fica como exercıcio ao leitor.Observe que raciocınio acima pode ser generalizado para tres ou mais dimensoes.

5O sistema formal certamente produzira alguns teoremas que nao correspondem a programas validos, que nestecaso seriam programas sintaticamente corretos mas com erros semanticos (utilizando a terminologia de Compi-ladores).

21

Page 26: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Uma outra suposicao implıcita na apresentacao dos sistemas formais foi a de que existe umaquantidade finita de sımbolos do alfabeto. Esta suposicao e necessaria pois pode-se provar quenenhuma regra consegue manipular uma quantidade infinita de sımbolos. Afinal, as regras podemser implementadas em um computador e nenhum computador consegue manipular uma quantidadeinfinita de informacao. Contudo, poder-se-ia criar um sistema em que o alfabeto contivesse umaquantidade nao enumeravel de sımbolos. Como exemplo, o alfabeto poderia ser os numeros reais.Mas este sistema nao seria um “sistema formal” como o conhecemos.

Nao seria possıvel um sistema formal onde a criacao de teoremas fosse feita de maneira contınua?Como definido neste Capıtulo, um teorema e obtido depois de n passos, n inteiro. E se n pudesseser um numero real? Uma regra deveria tomar nao so as premissas como parametros como tambemn real. Haveria um contınuo entre os axiomas e teoremas. Aparentemente, nada de novo poderiaser ganho com esta ideia.

Um axioma e um conjunto bem definido de sımbolos. Esta e uma suposicao implıcita nadefinicao de sistema formal. Poderia ser diferente. Um axioma X poderia ser definido como todasas formulas B tal que a distancia entre A e B fosse menor do que 1, onde A e uma formula fixada.A distancia entre duas formulas poderia ser definida por um algoritmo. Entao o axioma X seriacomposto por todas as formulas cuja distancia de A e menor do que 1. Um axioma e agora umanuvem de formulas, nao apenas uma.

2.6 Consideracoes Finais

Sistemas formais sao uma forma de produzir novas sequencias de sımbolos a partir de regras esımbolos iniciais. Informalmente, podemos dizer que eles serao usados em logica para, a partir deverdades, produzir outras verdades. Os axiomas da nossa logica serao as “verdades” e as regrasde inferencia serao as regras da logica, como “se A e B sao verdades, entao A e verdade” ou “Setodos os peixes sao vermelhos, entao existe um peixe que e vermelho”. A primeira frase e obvia epor isso pode ser difıcil de entende-la.

2.7 Exercıcios

2.1. Explique o que e um sistema formal, axioma, regra de deducao, teorema e meta-teorema.

2.2. Faca um sistema formal que utilize um alfabeto de pelo menos dez sımbolos, tenha pelo menoscinco axiomas e pelo menos tres regras de deducao.

2.3. Faca um sistema formal produza os mesmos teoremas que o sistema S.

2.4. Explique o funcionamento de um automato celular. As regras podem ser modificadas ouobrigatoriamente devem ser como definidas no texto?

2.5. Faca configuracoes (que celulas sao pretas?) para o jogo da vida de tal forma que as coresdas celulas nunca mudem.

2.6. Faca um sistema formal que utilize os dıgitos como alfabeto e que produza como teoremassequencias de sımbolos s tal que s, quando interpretado como um numero, seja divisıvel por 2.

22

Page 27: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Assim, seriam teoremas {2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, . . .}. Faca um meta-teorema para estesistema formal.

2.7. Faca um sistema formal produza os mesmos teoremas que o sistema S e que utilize umesquema de axioma.

2.8. Seja S o sistema formal que utiliza o alfabeto { E, T , N , +, ∗, 0, 1, ... 9 }. O unico axiomae E e qualquer sequencia de sımbolos e uma formula. As regras de deducao sao:

1. Em um teorema qualquer, E pode ser substituıdo por E + T ou T ;

2. Em um teorema qualquer, T pode ser substituıdo por T ∗N ou N ;

3. Em um teorema qualquer, N pode ser substituıdo por 0 ou 1 ou ... ou 9.

Escreva alguns teoremas deste sistema formal. Alguns teoremas nunca poderao ser utilizadospara a construcao de outros teoremas, pois eles nao possuem as letras E, T ou N . Com o que separecem estes teoremas?

2.9. Faca configuracoes (que celulas sao pretas?) para o jogo da vida de tal forma que as celulaspretas desaparecam:

(a) em uma unica geracao;

(b) em duas geracoes;

(c) em tres geracoes.

23

Page 28: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Unidade 3

Introducao ao Calculo Proposicional

3.1 Primeiras palavras

Considere os seguintes fatos, considerados verdadeiros.

1. Joao gosta de pizza ou gosta de futebol;

2. Se Joao nao gosta de Maria, entao Joao nao gosta de pizza ;

3. Joao nao gosta de futebol e Joao nao mora em Sao Paulo.

Pergunta-se: Joao gosta da Maria? Usamos a palavra “ou” para indicar o “ou” nao exclusivo. Istoe, em “A ou B” podemos ter ambos verdadeiros.

Pode-se resolver esta questao sem utilizar nenhuma tecnica e nenhuma logica formal. Contudo,o objetivo desta disciplina e formalizar este tipo de questao e formalizar tecnicas para resolve-las. Em primeiro lugar, temos que converter estas frases para formulas que sejam mais facilmentemanipulaveis do que frases. Mas antes de fazer isto, temos que definir que linguagem utilizaremos.E esta linguagem que este Capıtulo define.

3.2 A Linguagem do Calculo Proposicional

Uma logica possui uma parte composta por axiomas, teoremas, provas e regras como definido naUnidade 2. Esta parte e chamada de sintaxe, pois se interessa apenas pela forma dos axiomas eteoremas, sem se importar com o que eles significam. Um teorema e apenas uma sequencia desımbolos que nao significam nada para o estudo sintatico da logica. Quando associamos significadoaos sımbolos, os teoremas passam a significar alguma coisa. Esse aspecto de uma logica e chamadade semantica.

O Calculo Proposicional (CP) e uma logica bem simples que sera incorporada a Logica dePrimeira Ordem, a ser vista em Unidades futuras. O CP e um sistema formal (pois e uma logica)cuja linguagem usa o alfabeto composto por: ¬, ∨, (, ) e as letras Vi com inteiros positivos comosubscritos: V1, V2, ... Os sımbolos ¬ e ∨ sao chamados de conectivos primitivos e as letras Vi sao as

24

Page 29: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

variaveis. O sımbolo ¬ le-se “negacao” ou “nao e verdade que”. O sımbolo ∨ e chamado de “ou”.Nao se confunda: estes conectivos possuem estes nomes mas sao tao somente sımbolos no papelsem qualquer significado. Entao “¬A” le-se “nao A” mas no estudo sintatico isto nao significa queestamos afirmando que A seja falsa. Sao apenas dois sımbolos, ¬ e A, lado a lado.

As formulas do calculo proposicional sao definidas como

(a) uma variavel e uma formula;

(b) ¬A e (A ∨B) sao formulas se A e B sao formulas;

(c) formulas sao descritas apenas pelos itens (a) e (b).

Entao sao formulas: V1, V5, ¬V2, (V1 ∨ V5), ¬(V14 ∨ V7), ¬¬(V1 ∨ (V2 ∨ V3)) e(¬(V7 ∨ V1) ∨ (¬V1 ∨ V7)).

Quando um sımbolo e utilizado para significar uma formula qualquer, este sımbolo e chamadode meta-formula. Neste livro utilizaremos as letras A, B, C, ... para meta-formulas a menos demencao em contrario. Entao se tivermos uma formula A ∨B, esta formula na verdade representainfinitas formulas: tanto A como B podem ser substituıdas por qualquer formula valida do CalculoProposicional.

Definiremos agora outros conectivos logicos a partir de ¬ e ∨:

D1 (A ∧B) e ¬(¬A ∨ ¬B);

D2 (A−→B) e (¬A ∨B);

D3 (A←→B) e (A−→B) ∧ (B−→A).

Estes sao chamados de conectivos derivados. Estas definicoes sao tao somente abreviaturas: umaformula V1∧V2, por exemplo, e apenas a abreviatura de ¬(¬A1∨¬A2). Os conectivos ∧, −→ e←→leem-se “e”, “implica” e “se e somente se”. O conectivo←→ tambem e chamado de bicondicional.Em A−→B, chamamos A de antecedente e B de consequente.

Para facilitar a escrita e leitura de formulas, omitiremos os parenteses sempre que nao hou-ver ambiguidade. E convencionaremos que os conectivos logicos seguem a seguinte ordem deprecedencia, do maior para o menor: ¬, ∧, ∨, −→ e ←→. Apesar de ∧ ter maior precedencia doque ∨, usualmente nao escreveremos A∧B∨C e sim o mais legıvel (A∧B)∨C. Os conectivos saoassociados a esquerda: se B estiver entre dois conectivos iguais, B e associado com o conectivo daesquerda. Assim, A−→B−→C e o mesmo que (A−→B)−→C.

Com esta convencao, as formulas podem ser escritas de maneira mais legıvel:

formula original formula resumida(¬A)←→(B ∧ C) ¬A←→B ∧ C

((A−→B)−→C)←→((B ∧ A) ∧D) A−→B−→C←→B ∧ A ∧D

Iremos mostrar como converter o exemplo dado no inıcio do Capıtulo para uma formula do CP.

25

Page 30: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Exemplo 3.1. Associaremos letras a pedacos de frases que podem ser verdadeiros ou falsos (em-bora, por enquanto, nao estamos interessados na verdade ou falsidade de formulas).

1. A e “Joao gosta de pizza”

2. B e “Joao gosta de futebol”;

3. C e “Joao mora em Sao Paulo”;

4. D e “Joao gosta de Maria”.

Convertendo as frases para formulas, temos:

1. (A ∨B) para Joao gosta de pizza ou gosta de futebol;

2. (¬D−→¬A) para Se Joao nao gosta de Maria, entao Joao nao gosta de pizza;

3. (¬B ∧ ¬C) para Joao nao gosta de futebol e Joao nao mora em Sao Paulo.

Queremos saber se estas formulas implicam em D, que significa “Joao gosta de Maria”. A respostasera vista na Unidade 11.1.

3.3 Consideracoes Finais

A logica precisa de uma linguagem formal para se expressar. Se as formulas logicas fossem ex-pressas utilizando a linguagem natural, Portugues no caso, terıamos ambiguidades, dificuldadesde entendimento e outros problemas de comunicacao que sao da lıngua portuguesa, nao da logica.E por isso que, para cada logica, define-se uma linguagem formal e define-se exatamente o que epermitido nela.

3.4 Exercıcios

3.1. Remova o maior numero possıvel de parenteses das seguintes formulas

((A ∧B) −→ (¬(B) −→ (B −→ A)) ∧ C(((A ∧B)−→(¬(B)−→(B−→A))) ∧ C)(¬A−→(B ∨ C))←→(((A ∧B) ∨ C)←→A)(A ∧B) ∧ C(A ∨B)←→(A−→¬B)

3.2. Os conectivos ←→, ∧ e −→ fazem parte da linguagem do CP?

3.3. Joao gosta de Maria?

26

Page 31: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

3.4. Rigorosamente, e A∨B realmente uma formula do CP? Explique o que e uma meta-formula.

3.5. Quais sequencias de sımbolos abaixo sao formulas do CP?

(a) ¬¬¬¬A−→A ∧ ¬A

(b) ∨ ∧ ABA

(c) ((A1−→A2) ∨ A1

27

Page 32: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Unidade 4

Semantica do Calculo Proposicional

4.1 Primeiras palavras

O estudo semantico de uma logica e o estudo do significado que podemos dar as formulas dalinguagem. No calculo proposicional, associaremos o significado esperado as formulas. Isto e, cadaformula podera ser verdadeira ou falsa de acordo com o valor de suas variaveis.

4.2 Problematizando o Tema

Como associar um significado a uma formula como A ∨B ou A ∧B ∧ C? Claramente, a primeiraformula e verdadeira se A ou B e verdadeiro. Sera esta definicao precisa? O que significa o “ou”da frase “a primeira formula e verdadeira se A ou B e verdadeiro”? Sera que este “ou” significaque se ambos A e B forem verdadeiros, a frase e falsa? Isto e, o “ou” e exclusivo? Isto e, A ∨B efalso se A e B forem verdadeiros? Para retirar a ambiguidade da definicao de verdade por meio depalavras, precisamos de uma definicao mais precisa de verdade. E isso que esta Unidade apresenta.

Contudo, antes de estudar este topico, veremos como fazer a ligacao entre o “mundo real” e asformulas do CP.

4.3 Mapeamento de Frases para o Calculo Proposicional

Algumas frases escritas em linguagem natural (exemplo: Portugues) podem ser mapeadas nalinguagem do calculo proposicional. Por exemplo, a frase “Se nao fizer sol hoje, vai chover” resultana formula “A−→B” na qual A e “nao vai fazer sol hoje” e B e “vai chover”. Se preferir, poderiaser ¬A−→B, na qual A e “vai fazer sol hoje”. Estude as frases seguintes e suas formulas do CPcorrespondentes:

1. Nao e verdade que, se nao fizer sol hoje, vai chover. A formula correspondente e ¬(¬A−→B)na qual A e “vai fazer sol hoje” e B e “vai chover”;

28

Page 33: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

2. Ele e o presidente ou o diretor. A formula correspondente e A ∨ B, na qual A e “Ele epresidente” e B e “Ele e diretor”;

3. Se o Joao ou Pedro estivessem aqui, o problema seria resolvido. A formula correspondente eA∨B−→C, A e “Joao esta aqui”, B e “Pedro esta aqui”, C e “O problema esta resolvido”.Note que, quando lemos a formula logica, mudamos os tempos verbais para o condicional;

4. Se i < 0, havera um erro e uma mensagem de erro sera impressa. A formula correspondentee A−→B ∧ C, A e “i < 0”, B e “ha um erro”, C e “uma mensagem de erro e impressa”;

5. Se o supervisor vier hoje e souber do problema, ou seremos demitidos ou transferidos. Aformula correspondente e A ∧ B−→C ∨D, A e “o supervisor vem hoje”, B e “o supervisorsabe do problema”, C e “seremos demitidos”, D e “seremos transferidos”;

6. Ele nasceu em Sao Paulo, Minas ou Bahia, A ∨B ∨C, A e “Ele nasceu em Sao Paulo”, B e“Ele nasceu em Minas”, C e “Ele nasceu na Bahia”;

7. o numero sera ımpar se e somente se o seu quadrado for ımpar. A formula correspondente eA←→B onde A e “o numero e ımpar” e B e “o quadrado do numero e ımpar”;

8. Se o numero for ımpar, o seu quadrado tambem o sera. Se o quadrado do numero for ımpar,entao o numero sera ımpar. A formula correspondente e (A−→B) ∧ (B−→A) na qual A e“o numero e ımpar” e B e “o quadrado do numero e ımpar”;

4.4 Verdade e Falsidade

Cada variavel que aparece em uma formula pode receber um de dois valores: V ou F. Tanto faz onome destes valores, poderia ser 0 e 1, T e F, qualquer coisa. A unica exigencia e que sejam valoresdistintos. Naturalmente, associamos V a verdadeiro e F a falso, o que e apenas uma associacaofeita em nossas mentes e que nao interessa a teoria.

Associando um valor (V ou F) a cada variavel de uma formula C, podemos calcular o valor daformula. Como fazer isto ? Comecemos pelas formulas basicas:

¬A e V se A for F e F se A for V;

A ∨B e V se A ou B for V ou se ambos forem V;

Os conectivos derivados possuem o significado esperado:

A ∧B e V se A e B forem ambos V;

A−→B e F se A for V e B for F, V em todos os outros casos.

A←→B e V se A e B forem ambos V ou se forem ambos F.

29

Page 34: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

4.5 Tabelas Verdade dos Conectivos Basicos

A descricao de como calcular o valor verdade de uma formula que possui apenas um conectivo,dada acima, nao esta boa. Esta descricao ainda utiliza o Portugues e nao pode ser facilmenteaplicada em uma formula qualquer. Nesta secao apresentaremos tabelas verdade, que definemprecisamente o valor de verdade de uma formula. Iniciaremos com as tabelas verdade de formulascom apenas um unico conectivo.

A tabela verdade da negacao e

A ¬AV FF V

Ha duas colunas. Na primeira sao colocados os valores verdade que A pode assumir. Natu-ralmente, A pode ser V ou F. Na segunda coluna, sao colocados os valores verdade da formula¬A.

Pela segunda linha da tabela, quando A assume o valor V, mostra que ¬A assume o valor F.A terceira linha diz que, quando A for F, ¬A sera V. Note que ao inves de colocarmos A comovariavel (V1, V2, ...), nos a colocamos como formula. A e uma meta-formula — representa umaformula qualquer. Como uma variavel e uma formula, tambem representa uma variavel qualquer.

A tabela verdade do “ou” e mostrada abaixo.

A B A ∨BV V VV F VF V VF F F

Ha quatro combinacoes diferentes para os valores verdade de A e B. Logo a tabela possuiquatro linhas.

Em Portugues, quando se diz “vou almocar lazanha ou feijoada”, queremos dizer uma coisaou outra, mas nao as duas ao mesmo tempo (em geral, mas nem sempre!). Em geral, este e osignificado do “ou” em Portugues. Contudo, no CP, ∨ quer dizer um ou outro ou ambos. Entaoo significado de ∨ nao e exatamente o “ou” que conhecemos.

4.6 Conectivos Derivados

O CP utiliza alguns conectivos derivados, que nao pertencem a linguagem, mas que sao empregadospor comodidade. Estes conectivos ja foram definidos, mas repetimos aqui a sua definicao:

D1 (A ∧B) e ¬(¬A ∨ ¬B);

30

Page 35: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

D2 (A−→B) e (¬A ∨B);

D3 (A←→B) e (A−→B) ∧ (B−→A).

As tabelas verdade destes conectivos podem ser obtidas das tabelas do ¬ e −→ e sao dadasabaixo.

A B A ∧BV V VV F FF V FF F F

A B A−→BV V VV F FF V VF F V

A−→B e F apenas quando A e V e B e F. Entao se A e F e B e V, A−→B e V. Mas sera queisto faz sentido em Matematica? Afinal, estamos estudando logica Matematica ! Para responderisto, vamos examinar os raciocınios validos nesta disciplina. Veja a seguinte deducao, criada porSmullyan [1]:

5 = 5(subtraia 1)

4 = 4(substitua por algo equivalente)

22 = 22(substitua por algo equivalente)

22 = (−2)2(extraia a raiz)

2 = −2(subtraia 1)

1 = −3

Naturalmente, esta deducao esta errada, pois se a2 = b2, nao podemos deduzir que a = b. Mase a deducao “Se 1 = −3 entao 5 = 5”? Refaca os passos ao contrario e nao encontrara nenhumerro. A Matematica admite que se A e falso e B e verdadeiro, entao A−→B e verdadeiro.

Um outro exemplo, citado por Mendelson [8], e a frase “se x e um inteiro ımpar, entao x2 eum inteiro ımpar”. Esta frase e verdadeira em Matematica. Se x for par, queremos que a fraseinteira seja considerada falsa? Claramente nao. Considerando A como “x e um inteiro ımpar” eB como “x2 e um inteiro ımpar”, entao se x for par teremos um caso no qual A e F e queremosque A−→B seja V. E por causa de raciocınios como estes, da Matematica, que a tabela verdadede −→ considera A−→B verdadeiro sempre que A e F.

Em lıngua natural, sempre se exige alguma conexao causal entre A e B quando se empregaa sentenca A−→B. Em Logica Matematica, sendo uma disciplina formal, que nada conhece domundo fısico, nao se exige nenhuma conexao entre o antecedente A e o consequente B. Entao, assentencas abaixo sao verdadeiras na logica que estudamos:

31

Page 36: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

1. se 12 e primo, entao o Sol nao existe;

2. se 6 e primo, hoje e quarta-feira.

Note que na ultima sentenca, “hoje e quarta-feira” assume V ou F dependendo do dia em que afrase e lida. Nao interessa se ela e V ou F. A sentenca toda e verdadeira de qualquer forma.

A B A←→BV V VV F FF V FF F V

O operador bicondicional, representado por ←→, indica que duas sentencas sao logicamenteequivalentes: A←→B e V se e somente se A e V quando B e V e A e F quando B e F.

4.7 Consideracoes Finais

As tabelas verdade dos conectivos basicos define precisamente como calcular os valores verdadedas formulas ¬A e A ∨ B dados os valores de A e B. Estas tabelas verdade sao como tabuadas eserao empregadas futuramente para calcular o valor verdade de formulas mais complexas.

No inıcio desta secao, mapeamos frases em Portugues para formulas do CP. Contudo, isto foifeito apenas para introduzir os conceitos, facilitar o aprendizado. O CP nao se aplica ao mundoreal. Esta logica foi feita para a Matematica e aı ela funciona perfeitamente. Em particular, seA−→B e verdade, isto nao quer dizer que A “causa” B. Dizemos A “implica” B, mas a palavraimplica aqui nao tem o significado usual da palavra implica em Portugues.

4.8 Exercıcios

4.1. Faca as tabelas verdade de todos os conectivos basicos e derivados.

4.2. Podemos afirmar que, na Matematica, (7 < 1)−→(0 = 0)? E (7 < 1)−→(0 = 1)? Se sim,faca uma prova informal destes dois “teoremas”.

4.3. Converta as frases seguintes para formulas do calculo proposicional. Escreva o que cadavariavel da formula significa.

(a) Este celular e um computador, camera e um mp3 player ao mesmo tempo.

(b) Se o preco do carro estiver bom, levaremos dois.

(c) Uma de duas coisas acontecera: se ele for bom, resolvera o problema. E se ele nao for bom,contratara alguem para resolve-lo.

(d) Ele e chato mas inteligente.

32

Page 37: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

(e) Ele e engenheiro ou analista de sistemas. E e competente.

(f) O numero e maior do que zero, ımpar, mas nao e primo.

(g) Se o numero e primo, ele nao e divisıvel por quatro mas pode ser divisıvel por 3 e pode serdivisıvel por 2.

(h) Uma figura de quatro lados e um quadrado se todos os lados sao do mesmo tamanho e todosos angulos entre os lados sao iguais.

4.4. A sentenca “Se a terra e quadrada entao o mar e lilas ou o ceu e verde” e verdadeira na logicaque estudamos ? Isto quer dizer que o mar e lilas ? Ou que o ceu e verde ?

33

Page 38: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Unidade 5

Tabelas Verdade e Tautologias

5.1 Primeiras palavras

Esta unidade ensina como montar tabelas verdade para formulas que envolvem qualquer numerode conectivos. Ao final desta unidade voce sera capaz de montar a tabela verdade de formulascomo A ∧B−→(¬C ∨ A ∨ ¬B). Definimos tambem o que sao tautologias e como identifica-las.

5.2 Problematizando o Tema

Na Unidade anterior, aprendemos como fazer tabelas verdade para formulas com um unico conec-tivo basico. Sera possıvel estender este metodo para formulas com dois ou mais conectivos, como(¬A ∧B)−→A? Veremos que sim.

Sera que alguma formula da logica sera sempre verdadeira independente dos valores de suasvariaveis? Isto e, podemos ter uma formula como A ∧ B−→(¬C ∨ A ∨ ¬B) que sera verdadeindependente dos valores verdade que associemos a A, B, C e D? Ou sera isso impossıvel?Claramente isso e possıvel, pois a formula A ∨ ¬A e sempre verdadeira. Tente ver porque: o queacontece se A e verdadeira? E se A e falsa?

5.3 Tabelas Verdade

Cada tabela verdade define uma funcao de verdade que contem um argumento para ¬ e doisargumentos para todos os outros conectivos. O resultado da funcao e V ou F. Assim, a tabelaverdade para ¬,

A ¬AV FF V

define uma funcao

34

Page 39: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

f¬ : {V, F}−→{V, F}e, por exemplo, ∧ define uma funcao

f∧ : {V, F}2−→{V, F}{V, F}2 e {V, F} × {V, F} o que significa que a funcao f∧ toma dois parametros e qualquer delespode ser V ou F .

Cada uma destas funcoes de verdade sera sempre representada por uma tabela verdade. Emf¬ : {V, F}−→{V, F}, o conjunto {V, F} e o domınio e o contradomınio de f¬. Temos quef¬(V) = F pois na tabela verdade do ¬, quando A e V, ¬A e F. Da mesma forma, f¬(F) = V(veja a segunda linha da tabela).

Em f∧ : {V, F}2−→{V, F}, f∧(V,V) = V e f∧(V,F) = f∧(F,V) = f∧(F,F) = F.

A cada formula corresponde uma funcao de verdade f . Como exemplo, para a formulaA−→(¬B ∨ C) temos uma funcao f de tres variaveis tal que f(V, V, F ) = F e f(x, y, z) = Vpara quaisquer outras combinacoes de valores para x, y e z. Mas como sabemos isto? Simples: eso calcular o valor da funcao. Vejamos:

f(V, V, F ) = V−→(¬V ∨ F ) = V−→(F ∨ F )substituindo ¬V por F , uma informacao tomada da tabela verdade de ¬, temos

f(V, V, F ) = V−→(¬V ∨ F ) = V−→(F ∨ F )

Examinando a tabela verdade do ∨,

A B A ∨BV V VV F VF V VF F F

temos que F ∨ F e igual a F (ultima linha). Entaof(V, V, F ) = V−→(¬V ∨ F ) = V−→(F ∨ F ) = V−→F

Pela tabela verdade de −→,

A B A−→BV V VV F FF V VF F V

pela segunda linha, temos V−→V = F . Entao ficamos assim:f(V, V, F ) = V−→(¬V ∨ F ) = V−→(F ∨ F ) = V−→F = F

Podemos ter uma outra combinacao de valores para as variaveis de f :f(V, V, V ) = V−→(¬V ∨ V ) = V−→(F ∨ V ) = V−→V = V

De fato, qualquer combinacao de valores, alem de (V, V, F ), resultara em V . Confira!

Para construir a tabela verdade de uma formula qualquer, precisamos da definicao de sub-

35

Page 40: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

formula.

Definicao 5.1. Sub-formula de uma formula e definida da seguinte forma:

(a) toda formula e sub-formula de si mesma;

(b) toda sub-formula de A e sub-formula de ¬A;

(c) toda sub-formula de A ou de B e sub-formula de A ∨B, A ∧B, A−→B, A←→B.

Veja abaixo algumas formulas e suas sub-formulas.

formula sub-formulasA−→B A, B, A−→B

A ∧B−→A ∨B A, B, A ∧B, A ∨B, A ∧B−→A ∨B(V1 ∨ (V2−→V1))←→(V3−→(V1 ∨ ¬V2)) V1, V2, V3, V2−→V1, V1 ∨ (V2−→V1),

¬V2, V1 ∨ ¬V2, V3−→(V1 ∨ ¬V2),(V1 ∨ (V2−→V1))←→(V3−→(V1 ∨ ¬V2))

Pode-se construir uma tabela verdade para uma formula qualquer, por exemplo, para (¬A ∧B)−→A:

A B ¬A ¬A ∧B (¬A ∧B)−→AV V F F VV F F F VF V V V FF F V F V

Ha uma coluna para cada variavel que aparece na formula, A e B. Depois, uma coluna paracada sub-formula.

Consideramos sempre a precedencia dos operadores logicos. A formula (¬A∧B)−→A e equiv-alente a ¬A∧B−→A pois os parenteses sao desnecessarios (−→ tem maior precedencia do que ∧).Consideramos ¬A∧B−→A como X−→Y com X =def ¬A∧B e Y =def A e nao como X ∧Y comoX =def ¬A e Y =def B−→A. Afinal, temos que avaliar o −→ antes de ∧, a menos que existamparenteses, como em ¬A∧ (B−→A). Mas esta seria uma outra formula, nao equivalente a formulado exemplo.

Para calcular os valores de uma coluna, observamos os valores de colunas anteriores e as tabelasverdades dos conectivos basicos. Por exemplo, considere a quarta coluna da tabela acima, corre-spondente a ¬A∧B. Ja temos ¬A calculado na terceira coluna. Como temos um ∧, em cada linhatemos que tomar o valor da terceira coluna (¬A)e da segunda (B). Para a primeira linha,1 temosF para ¬A e V para B. Consultando a tabela verdade de ∧, temos a resposta: F , que e colocadana primeira linha da quarta coluna.

Na formula completa, (¬A∧B)−→A, terceira linha, consultamos o valor da sub-formula ¬A∧Be de A, que sao V e F , respectivamente. Entao temos que calcular V−→F que, pela tabela verdadede −→, e F , que e colocado na terceira linha, quinta coluna.

1A linha que tem as sub-formulas sera considerada como linha 0.

36

Page 41: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Como um outro exemplo, considere (A∧B)−→((¬A∨B)←→¬B). Temos que A∧B e ((¬A∨B)←→¬B) sao sub-formulas. Desta ultima podemos tirar que ¬A ∨ B e ¬B sao sub-formulas.Continuando, ¬A e ¬B sao sub-formulas. A tabela verdade desta formula seria entao

A B ¬A ¬B A ∧B ¬A ∨B ((¬A ∨B)←→¬B) (A ∧B)−→((¬A ∨B)←→¬B)V V F F V V F FV F F V F F F VF V V F F V F VF F V V F V V V

As linhas da tabela correspondem a todas as variacoes possıveis das entradas da funcao deverdade, que neste caso sao A e B. Se ha n entradas, n variaveis, temos 2n linhas na tabela. Noteque A e B nao sao variaveis da linguagem do CP, mas sim meta-formulas: representam formulasquaisquer.

Pode-se fazer uma tabela verdade de forma abreviada colocando-se o valor verdade de umasub-formula sob o seu conectivo principal. Vejamos um exemplo:

A B (A ∧ B) ∨ (¬ A ∧ ¬ B)V V V V V V F V F F VV F V F F F F V F V FF V F F V F V F F F VF F F F F V V F V V F

Sob o ∧ de A ∧ B esta o valor verdade de A ∧ B. Sob o ¬ de ¬A esta o valor verdade destaformula e assim por diante. O valor verdade da formula (A∧B)∨ (¬A∧¬B) esta sob o conectivo∨, que e o ultimo a ser usado na avaliacao. Sera sempre assim: o valor verdade da formula estarasob o ultimo conectivo a ser utilizado.

Mas como saber qual o ultimo conectivo que deve ser utilizado na avaliacao? Estude a ordemde precedencia dos operadores. Em

A ∧B−→((¬A ∨B)←→¬B)o ultimo deve ser −→ pois este tem menor precedencia do que ∧ e a sub-formula ((¬A∨B)←→¬B)esta entre parenteses e portanto deve ser avaliada antes. Vejamos a tabela verdade desta formula:

A B (A ∧ B) −→ ((¬ A ∨ B) ←→ ¬ B)V V V V V F F V V V F F VV F V F F V F V F F F V FF V F F V V V F V V F F VF F V F F V V F V F V V F

5.4 Tautologias

Uma formula que e sempre verdadeira, independentemente dos valores atribuıdos as suas variaveis,e chamada de tautologia. Por exemplo, V1−→V1 e sempre verdadeira. Utilizando meta-formulas,A−→A e sempre verdadeiro. A tabela verdade de uma tautologia possui apenas V na coluna que

37

Page 42: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

expressa o resultado:

A ¬A A ∨ ¬AV F VV F VF V VF V V

Assim, A ∨ ¬A e uma tautologia.

Se A e uma tautologia, escrevemos � A. Se A nao e tautologia, escrevemos 6� A.

Se uma formula e sempre falsa ela e chamada de contradicao. Se uma formula pode ser V ouF dependendo dos valores das variaveis, ela e uma contingencia.

Definicao 5.2. Se A−→B e uma tautologia, dizemos que A implica logicamente B ou que B euma consequencia logica de A.

Por exemplo, A−→(B−→A) e uma tautologia:

A B B−→A A−→(B−→A)V V V VV F V VF V F VF F V V

Logo A implica logicamente (B−→A). Claramente, A implica logicamente B−→A tambem,pois os parenteses externos nao modificam o valor verdade da formula.

Definicao 5.3. Se A←→B e uma tautologia, dizemos que A e logicamente equivalente a B.

Por exemplo, (A−→(B−→C)) e logicamente equivalente a (A ∧B−→C) pois(A−→(B−→C))←→(A ∧B−→C)

e uma tautologia (um dos exercıcios abaixo).

Agora que ja sabemos o que e uma tautologia, resta a pergunta: como obte-las? Na Unidade 9iremos aprender uma forma sistematica de produzir tautologias atraves de um sistema formal.Enquanto nao chegamos naquela unidade, podemos empregar outras tecnicas:

(a) podemos partir de uma tautologia conhecida e modifica-la para encontrar outra tautologia:

1. A ∨ ¬A e uma tautologia;

2. (A ∨ ¬A) ∨ B tambem e uma tautologia pois alguma coisa verdadeira “ou” qualquercoisa e verdadeira. Isto e, considerando > uma tautologia, >∨X e tautologia, qualquerque seja X;

3. ¬A ∨ A, pois X ∨ Y possui a mesma tabela verdade que Y ∨X;

4. A−→A, pois partindo de ¬A ∨ A, pela definicao de −→ chegamos a A−→A. Isto e,X−→Y e definido como ¬X ∨ Y . Tomando-se X = Y = A em ¬A ∨ A, chegamos emA−→A;

38

Page 43: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

5. (B∧C)−→(B∧C), substituindo A em A−→A por B∧C, ja que A e uma meta-formulapode ser substituıda por qualquer coisa);

6. ¬(B ∧ C) ∨ (B ∧ C) pela definicao de −→.

(b) utilize a tabela verdade dos conectivos logicos. A−→B por exemplo, e sempre verdadeiro(tautologia) se A for sempre falso (contradicao) ou B for sempre verdadeiro (tautologia).Entao sao tautologias

1. ¬(A ∨ ¬A)−→(B ∧ C)

2. (A ∧ ¬A)−→(B ∧ C−→B−→A)

3. (A ∨ C ∨ ¬B)−→¬A ∨ A4. (A ∨B)−→(¬(A ∨ ¬A)−→(B ∧ C))

(c) utilize os seus conhecimentos de logica usuais:

• A∧B−→A∨B, se A e B forem verdadeiros, entao “A ou B” tambem sera verdadeiro;

• A ∧B−→A, sempre que A e B forem verdadeiros, A tambem o sera;

• A−→A ∨B, sempre que A for verdadeiro, entao “A ou B ” sera verdadeiro.

5.5 Consideracoes Finais

Nesta unidade voce aprendeu como fazer tabelas verdade para formulas de qualquer tamanho.Sabendo-se as tabelas basicas (dos conectivos basicos e derivados), isso nao e difıcil: basta irconstruindo a tabela verdade da formula passo a passo, no qual cada passo envolve apenas umconectivo. Se houver apenas V’s na coluna de resultados, temos uma tautologia.

5.6 Exercıcios

5.1. Usando tabelas verdade, prove que as formulas seguintes sao tautologias.

(a) ¬¬A←→A

(b) (A−→B)←→(¬A ∨B)

(c) ¬(A ∧ ¬A)

(d) (((A ∨B) ∧ (¬B))−→A)

(e) A ∧B−→A

(f) A−→(A ∧ A)

(g) ¬C ∨ (A−→(B−→C))

(h) (A−→(B−→C))←→(A ∧B−→C)

39

Page 44: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

5.2. Explique: a tabela verdade dada abaixo na verdade representa infinitas tabelas verdade.

A ¬AV FF V

5.3. Escreva a tabela verdade do “ou” exclusivo, cujo sımbolo e ⊕. Considere que A ⊕ B everdadeiro se apenas A ou apenas B e verdadeiro.

5.4. Defina tautologia e contradicao.

5.5. Pode-se representar A ∧B, A ∨B e ¬ utilizando-se apenas −→ e ←→?

5.6. Defina explicitamente a funcao de verdade correspondente a seguinte tabela verdade:

A B C RV V V VV V F FV F V VV F F FF V V FF V F VF F V FF F F V

5.7. Encontre uma formula logica correspondente a seguinte funcao de verdade:

f(A,B,C) =

{V se A = B = CF caso contrario

5.8. Encontre formulas correspondentes as seguintes tabelas verdade:

(a) (b)A B C ?V V V VV V F VV F V VV F F VF V V FF V F VF F V VF F F V

A B C ?V V V VV V F FV F V VV F F VF V V VF V F FF F V FF F F V

40

Page 45: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

5.9. Construa a tabela verdade para as formulas seguintes.

(a) (A−→B) ∧ (A←→B)

(b) (A−→(B−→C))−→((A−→B)−→(A−→B))

(c) ¬(A−→B ∨ ¬C)

(d) (A−→B)←→¬(A ∧ ¬B)

(d) (A←→B)−→¬A

(e) (A−→B−→A)−→B

5.10. Represente A−→B e A←→B utilizando apenas os conectivos ¬, ∧ e ∨.

41

Page 46: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Unidade 6

Proposicoes sobre Tautologias eEquivalencias Logicas

6.1 Primeiras palavras

Esta unidade apresenta algumas proposicoes muito importantes sobre tautologias. Elas o auxiliaraoa fabricar tautologias e formulas equivalentes a uma formula dada. Isto e, dada uma formula, vocesera capaz de fabricar outra formula cuja tabela verdade e igual a da primeira formula. E seracapaz de fabricar tautologias a partir de outras tautologias.

Outro topico desta unidade sao as equivalencias logicas. Duas formulas sao logicamente equiv-alentes se possuem a mesma tabela verdade. Ha uma tabela de formulas logicamente equivalentesque pode ser utilizada para produzir formulas menores mas equivalentes a outras. Isto e, dadauma formula, utiliza-se a tabela de formulas logicamente equivalentes para conseguir uma formulaequivalente mas de menor tamanho. Isto sera feito na proxima unidade.

6.2 Proposicoes sobre Tautologias

Suponha que tenhamos uma formula A que utiliza as variaveis V1, V2, ... Vn. Nao necessariamenteuma formula utiliza as primeiras n variaveis, mas assumiremos sem perda de generalidade quesim.1

Utilizaremos =def para associar uma meta-formula a uma formula. Por exemplo, A=def V1∨V2

associa a formula V1 ∨ V2 a meta-formula A.

Definicao 6.1. Dizemos que uma sequencia s = (s1, s2, ...sn), na qual cada si e V ou F, satisfazA se, quando Vi tem o valor si, o valor de A e V. Assuma que A utilize no maximo as variaveisV1, V2, . . ., Vn — pode utilizar menos.

Explicaremos melhor esta definicao com um exemplo. Uma sequencia pode ser s = (V, F ) e,neste caso, s1 = V e s2 = F . Esta sequencia associa, implicitamente, o valor V a variavel V1 e Fa variavel V2 do calculo proposicional.

1Uma formula poderia ser V5 ∧ V3−→V40, em que as tres primeiras variaveis nao seriam utilizadas.

42

Page 47: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Considere agora a formula A=def V1∨V2 e a sequencia s como definida acima; isto e, s = (V, F ).Assumindo que o valor de V1 e V e o de V2 e F, temos que V1 ∨ V2 e V. Assim, s = (V, F ) satisfazV1 ∨ V2. Mas s = (F, F ) nao satisfaz A, pois F ∨F = F . Neste caso, s1 = s2 = F e V1 e associadoa F e V2 a F .

Mais um exemplo: a sequencia s = (F, V, V ) satisfaz a formula V1∨((V2∧V3)−→V1)? Vejamos:F ∨ ((V ∧ V )−→F ) = F ∨ (V−→F ) = F ∨ F = F

Entao s = (F, V, V ) nao satisfaz V1 ∨ ((V2 ∧ V3)−→V1). E quanto a V1−→(V2 ∨ V1) e a sequencias = (V, F )? Vejamos:

V−→(F ∨ V ) = V−→V = VVejamos outra sequencia, s = (F, F ):

F−→(F ∨ F ) = F−→F = VDe fato, qualquer das quatro sequencias possıveis, s = (V, V ), s = (V, F ), s = (F, V ) e s = (F, F )satisfaz a formula V1−→(V2 ∨ V1). Isto deveria acontecer mesmo, pois esta formula e tautologia!Ela e verdadeira independente dos valores das variaveis. Vamos examinar a tabela verdade destaformula:

V1 V2 V2 ∨ V1 V1−→(V2 ∨ V1)V V V VV F V VF V V VF F F V

Claramente, cada sequencia corresponde a uma linha da tabela verdade. Por exemplo, s =(V, V ) corresponde a primeira linha e s = (F, V ) a terceira linha.

Concluimos que uma sequencia de tamanho n corresponde a uma linha de uma tabela verdadede uma formula com n variaveis. Como a tabela verdade de uma formula com n variaveis tem 2n

linhas, uma formula com n variaveis pode ser testada contra 2n sequencias diferentes (uma paracada linha da tabela verdade). Claramente, uma formula e tautologia se qualquer sequencia s asatisfaz. Uma formula e contradicao se nenhuma sequencia s a satisfaz.

A tabela verdade para uma formula A define uma funcao de verdade fA que toma comoparametros valores para as variaveis envolvidas.2 Por exemplo, a formula A=def V1 ∨ V2 defineuma funcao fA tal que fA(V, V ) = V , fA(V, F ) = V , fA(F, V ) = V e fA(F, F ) = F . Os parametrospara esta funcao sao precisamente as sequencias de que falamos acima. Assim, podemos escreverque, se s = (V, F ), entao fA(s) = V .

Como um outro exemplo, suponha que A=def ¬V1 ∧ V2−→V3 e fA seja a funcao de verdade deA. Entao, se s = (V, F, F ), entao fA(s) = V . Como a sequencia pode ter mais elementos do queos que aparecem na formula, se s = (F, V, F, V, F ), entao fA(s) = F tambem.

Proposicao 6.1. Se A e A−→B sao tautologias, entao B e uma tautologia.

Prova. Provaremos por contradicao. Assuma que A e A−→B sao tautologias mas B assuma o

2Nao se confunda: nas tabelas verdade apresentadas utilizamos A, B, etc que sao meta-formulas. Estamosaqui falando de uma tabela que emprega formulas da linguagem e que, portanto, nao pode ter meta-formulas.Obrigatoriamente a formula deve empregar variaveis V1, V2, ...

43

Page 48: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

valor F para alguma atribuicao de valores as variaveis de A e B. Isto e, existe uma sequencia stal que a funcao de verdade de B, fB, assume F com s: fB(s) = F . Nesta atribuicao de valores,A possui o valor V, fA(s) = V , pois e uma tautologia. Entao temos que A−→B e F pela tabelaverdade de −→. Contradicao, pois assumimos que A−→B e uma tautologia.

Em resumo, se fizermos as tabelas verdade de A e A−→B e ambas forem tautologias, entao Btambem e tautologia. A prova acima pode ser feita imaginando-se uma tabela verdade onde saocolocados A, A−→B e B. A prova supoe que em alguma linha da tabela B tenha o valor F . Nestalinha o valor de A e V, pois A e tautologia. Entao A−→B e F pela tabela verdade de −→. Masisto e impossıvel, pois A−→B e tautologia.

Como exemplo, considere as formulas C ∨¬C e (C ∨¬C)−→¬(D∧¬D). Sabemos que C ∨¬Ce tautologia. Fazendo a tabela verdade de (C ∨ ¬C)−→¬(D ∧ ¬D), verificamos que e tautolo-gia tambem. Entao podemos concluir que ¬(D ∧ ¬D) e tautologia. Utilizando os nomes daProposicao 6.1, A e (C ∨ ¬C) e B e ¬(D ∧ ¬D).

Um outro exemplo considera A como C ∧D−→C ∨D e B como C−→C ∨D. Ou seja, comoC ∧D−→C ∨D e tautologia,

C D C ∧D C ∨D C ∧D −→ C ∨DV V V V VV F F V VF V F V VF F F F V

e (C ∧D−→C ∨D)−→(C−→C ∨D) tambem e tautologia,

C D (C ∧ D −→ C ∨ D) −→ (C −→ C ∨ D)V V V V V V V VV F F V V V V VF V F V V V V VF F F V F V V F

entao C−→C ∨D e tautologia:

C D C −→ C ∨ DV V V VV F V VF V V VF F V F

Definicao 6.2. Dizemos que uma sequencia s satisfaz um conjunto de formulas Γ se s satisfazcada uma das formulas de Γ.

Por exemplo, s = (F, V ) satisfaz o conjunto Γ = {V1−→V2, V2 ∨ V2, V1 ∨ V2, (V1 ∧ V2) ∨(V2−→¬V1)}. A sequencias s satisfaz cada uma das formulas de s (confira!).

44

Page 49: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Definicao 6.3. Dizemos que uma formula B e consequencia logica de um conjunto de formulas Γse cada sequencia s que satisfaz Γ tambem satisfaz B. Escrevemos Γ � B.

Por exemplo, V1 ∨ V2 e uma consequencia logica do conjunto Γ = {V1 ∧ V2, (V1←→V2)∧ V1}. Aunica sequencia s que satisfaz Γ e s = (V, V ). Claramente s satisfaz V1 ∨ V2.

Proposicao 6.2. Se Γ = {A1, A2, . . . An} e B e consequencia logica de Γ, entao

A1 ∧ A2 ∧ . . . An−→B

e tautologia.

Γ definido nesta ultima definicao e um conjunto finito. Note que, se Γ � B, entao Ai � B paratodo 1 6 i 6 n. Entao se Γ � B, temos que

A1 ∧ A2 ∧ . . . An � B

Proposicao 6.3. Se A e uma tautologia contendo as variaveis V1, V2, ... Vn e B e criada a partirde A pela substituicao de Vi por formulas quaisquer (Bi), entao B e uma tautologia. Cada variavelVi e substituıda por (Bi) em todos os lugares onde ela aparece nas formulas A.

Antes de apresentar a prova do teorema, faremos algumas observacoes.

Usamos (Bi) ao inves de Bi para que o significado da formula nao seja afetado. Por exemplo,em V1 ∧ V2, se substituirmos V1 por V3−→V4, ficamos com V3−→V4 ∧ V2, que e o mesmo queV3−→(V4∧V2). Mas isto nao e o que querıamos, que e (V3−→V4)∧V2. Entao usaremos parentesespara prevenir qualquer problema deste tipo.

Note que Bi e uma formula qualquer. Por exemplo, V1−→V1 e uma tautologia e entao oteorema nos diz que (V2∧V2)−→(V2∧V2) e uma tautologia, pois substituımos V1 por uma formulaqualquer (no caso, V2 ∧ V2). Da mesma forma, (A←→B ∨ C)−→(A←→B ∨ C) e uma tautologia.Note que uma meta-formula pode substituir uma variavel de A. Contudo, ao provar teoremas,sempre assumimos que temos uma formula da linguagem do CP no lugar de B ou de qualquermeta-formula.

Como um outro exemplo, considere a tautologia C−→C ∨ D. Podemos substituir C porV1−→(E−→V2 ∨ E) e D por V4 ∧ E ∧ V5−→V6 obtendo

(V1−→(E−→V2 ∨ E))−→(V1−→(E−→V2 ∨ E)) ∨ (V4 ∧ E ∧ V5−→V6)

que e uma tautologia.

A equacao 2 + 5 = 7 continua valida se substituirmos 7 por algo equivalente, como 3 + 4,resultando em 2 + 5 = 3 + 4. Com formulas logicas, acontece o mesmo. Se substituirmos umasub-formula por outra que produz a mesma tabela verdade (na coluna de resultados), a tabelaverdade da formula completa nao se altera. E isto o que diz a Proposicao abaixo.

45

Page 50: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Prova. Suponha que A e tautologia. Entao qualquer atribuicao de valores as variaveis de A, estaformula tera o valor V. Considere uma atribuicao de valores, dada por uma sequencia s, paraas variaveis de B. Se preferir, imagine uma linha da tabela verdade de B, com valores V ou Fatribuıdos as variaveis de B (que nao necessariamente sao iguais as de A — B pode ter mais oumenos variaveis e possivelmente as variaveis sao diferentes das de A). Queremos saber o valorverdade de B para esta atribuicao. As formulas B1, B2, ... Bn terao os valores verdade w1, w2,... wn (cada um deles e V ou F). O valor de verdade de B e exatamente o valor de verdade deA com as variaveis de A assumindo os valores w1, w2, ... wn. Mas este valor e V, pois A e umatautologia. Entao o valor de verdade de B e V. Como consideramos uma atribuicao de valoresqualquer para B (generica), B e sempre V, uma tautologia. Isto e, podemos pegar qualquer linhada tabela verdade de B que o raciocınio acima se aplica.

Proposicao 6.4. Considere A uma formula dentro da qual ha uma ou mais ocorrencias de umasub-formula B. Seja A′ a formula obtida a partir de A pela troca de uma ou mais ocorrencias deB por B′. Entao

(B←→B′)−→(A←→A′)e uma tautologia.

Em outras palavras: Considere A uma formula dentro da qual ha uma sub-formula B, quepode aparecer mais de uma vez em A. Se trocarmos todas as ocorrencias de B em A por umoutra formula B′ logicamente equivalente a B, temos que a formula A′ resultante e logicamenteequivalente a A. Em sımbolos,

se B ≡ B′ entao A ≡ A′

Observacao: por exemplo, a formula V1−→(V2 ∧ V3) utiliza a sub-formula (V2 ∧ V3), que seria Bno teorema. B pode aparecer uma ou mais vezes em A, como em (V1 ∨ (V2 ∧ V3))−→(V2 ∧ V3).O teorema diz que, se (V2 ∧ V3) for substituıdo por uma outra formula com a mesma tabelaverdade, que utilize apenas V2 e V3, as tabelas verdade das duas formulas sao iguais. Por exemplo,¬(¬V2 ∨ ¬V3) possui a mesma tabela verdade que V2 ∧ V3 — confira. Entao V1−→(V2 ∧ V3)possui a mesma tabela verdade que V1−→¬(¬V2∨¬V3). Veja as tabelas abaixo. Da mesma forma,

46

Page 51: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

(V1∨(V2∧V3))−→(V2∧V3) possui a mesma tabela verdade que (V1∨¬(¬V2∨¬V3))−→¬(¬V2∨¬V3).

V1 V2 V3 V1 −→ V2 ∧ V3)V V V V VV V F F FV F V F FV F F F FF V V V VF V F V FF F V V FF F F V F

V1 V2 V3 V1 −→ ¬ (¬ V2 ∨ ¬ V3)V V V V V F F FV V F F F F V VV F V F F V V FV F F F F V V VF V V V V F F FF V F V F F V VF F V V F V V FF F F V F V V V

6.3 Equivalencia Logica

Algumas equivalencias logicas do CP, dadas abaixo, sao largamente utilizadas. Como um bomexercıcio, prove algumas delas utilizando tabelas verdade. Lembre-se que A e logicamente equiv-alente a B se e somente se A←→B e uma tautologia. Neste caso, as colunas de resultado dastabelas verdade de A e B sao iguais.

Lema 6.1. Sao logicamente equivalentes:

47

Page 52: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

(a) A−→(B−→C) e (A ∧B)−→C(b) A ∧ (B ∨ C) e (A ∧B) ∨ (A ∧ C) (Lei distributiva)(c) A ∨ (B ∧ C) e (A ∨B) ∧ (A ∨ C) (Lei distributiva)(d) (A ∧B) ∨ ¬B e A ∨ ¬B(e) (A ∨B) ∧ ¬B e A ∧ ¬B(f) A−→B e ¬B−→¬A(g) A←→B e B←→A(h) (A←→B)←→C e A←→(B←→C)(i) A←→B e (A ∧B) ∨ (¬A ∧ ¬B)(j) ¬(A ∨B) e ¬A ∧ ¬B (De Morgan)(k) ¬(A ∧B) e ¬A ∨ ¬B (De Morgan)(l) A ∨ (A ∧B) e A(m) A ∧ (A ∨B) e A(n) A ∧B e B ∧ A(o) A ∨B e B ∨ A(p) (A ∧B) ∧ C e A ∧ (B ∧ C) (Associatividade do ∧)(q) (A ∨B) ∨ C e A ∨ (B ∨ C) (Associatividade do ∨)(r) ¬(A←→B) e A←→¬B

Como exemplo, provaremos (i) utilizando uma tabela verdade.

A B A ←→ B (A ∧ B) ∨ (¬ A ∧ ¬ B)V V V V V V V V V F V F F VV F V F F V F F F F V F V FF V F F V F F V F V F F F VF F F V F F F F V V F V V F

Os resultados sao identicos: de cima para baixo, VFFV.

Lema 6.2. Assumindo que > e uma tautologia e ⊥ e uma contradicao, os seguintes pares deformulas sao equivalentes:

(1) > ∧ A e A(2) > ∨ A e >(3) ⊥ ∧ A e ⊥(4) ⊥ ∨ A e A

A veracidade destas afirmacoes podem ser facilmente conferidas utilizando a tabela verdade do∧ e ∨.

> A > ∧ AV V VV F F

Na coluna de >, aparece apenas V, pois > so pode assumir o valor V (e uma tautologia). Acoluna de resultados possui os valores VF, de cima para baixo, que sao exatamente os valores que

48

Page 53: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

A assume. Isto e, quando A for V, > ∧ A sera V. E quando A for F, > ∧ A sera F. Em resumo,> ∧ A e logicamente equivalente a A, em sımbolos, > ∧ A←→A

> A > ∨ AV V VV F V

Em um ∨, sempre que um dos valores for V, o resultado sera V. Como > e sempre V, o resultadode > ∨ A sera sempre V.

⊥ A ⊥ ∧AF V FF F F

Um ∧ so resulta em V se ambos os valores sao V. Como ⊥ e sempre F, ⊥ ∧A sera sempre F.

⊥ A ⊥ ∨AF V VF F F

Note que a coluna de resultados, ⊥ ∨A, possui exatamente os mesmos valores que a coluna doA. Logo, A e ⊥ ∨A sao logicamente equivalentes.

6.4 Exercıcios

6.1. Considerando que (A−→B) e logicamente equivalente a (¬A ∨B), entao a formula

C ∧ ((A−→B)←→C)

e logicamente equivalente a formula

C ∧ ((¬A ∨B)←→C)?

Qual proposicao garante isto?

6.2. Prove que as seguintes formulas sao logicamente equivalentes.

(a) A−→((B ∧ ¬D)−→C) e (A ∧ (¬D ∧B))−→C

(b) A ∨ (¬B ∧ ¬C) e (A ∨ ¬B) ∧ (¬C ∨ A)

(c) (B ∨ ¬C) ∧ ((B ∨ ¬C) ∨B) e (B ∨ ¬C)

6.3. E V1∧V2 uma consequencia logica do conjunto {V1−→(V2∨V1), V1←→¬V2, (V1∧¬V2)−→(V2−→¬V1)}?

6.4. Prove: se A ∧B e tautologia, entao A e B sao tautologias.

6.5. Dada a formula A−→B podemos dizer que A implica logicamente B? Dada a formula A←→Bpodemos dizer que A e logicamente equivalente a B?

6.6. Prove que as seguintes formulas sao logicamente equivalentes.

49

Page 54: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

(a) ((C1 ∧D2) ∨ (A1−→A2)) ∧ ¬(A1−→A2) e (C1 ∧D2) ∧ (A1 ∧ ¬A2)

(b) ((¬D−→D ∧ ¬B) ∧D) ∨D e D

6.7. Prove que ¬(A1 ∨A2 ∨ . . .∨An) e logicamente equivalente a ¬A1 ∧¬A2 ∧ ...∧¬An utilizandoinducao finita em n.

6.8. Prove que A1−→(A2−→(A3−→ . . . (−→An−1−→(An−→B)) . . .) e logicamente equivalente aA1 ∧ A2 ∧ . . . ∧ An−→B.

50

Page 55: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Unidade 7

Minimizacao de Formulas Logicas

7.1 Primeiras palavras

Esta unidade ensina como minimizar formulas logicas. Isto e, dada uma formula A, ela ensina comoconstruir uma formula logicamente equivalente a esta formula, mas menor em numero de conectivose, algumas vezes, ate no numero de variaveis. Por exemplo, a formula (¬A∧¬B)∨ (B ∨ (C ∧B))pode ser minimizada para A−→B. As tabelas verdades sao iguais na coluna de resultados ea formula reduzida possui apenas um conectivo, alem de nao utilizar a variavel C da formulaoriginal.

7.2 Problematizando o Tema

O numero de linhas da tabela verdade de uma formula com n variaveis e 2n. Para cada conectivoda formula, uma coluna da tabela deve ser preenchida. Claramente, uma tabela com um numerosignificativo de variaveis e conectivos e grande demais para ser util na pratica. Mais: como vere-mos nas unidades posteriores, formulas logicas sao utilizadas para a construcao de computadores.Formulas muito grandes significam muitos componentes, o que significa alto custo e maior consumode energia. Por este motivo e necessario trabalhar com as menores formulas que pudermos.

O objetivo desta unidade e ensinar como minimizar formulas. Isto e, dada uma formula A,produzir uma formula logicamente equivalente a A, mas com um numero menor de conectivos e/ouvariaveis.

7.3 Minimizacao de Formulas

Utilizando as tabelas de equivalencias logicas, podemos partir de uma formula complexa e chegar aoutra mais simples e logicamente equivalente a primeira. Este processo e o equivalente a minimizarformulas da Matematica. Por exemplo, considere a formula 1 + 3x + 2 + 7x. Vamos reduzi-la auma formula menor mas equivalente:

51

Page 56: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

1 + 3x+ 2 + 7x =1 + 2 + 3x+ 7x = (pois a+ b = b+ a, associatividade da adicao)3 + 3x+ 7x = (pois 1 + 2 = 3)3 + (3 + 7)x = (pois ay + by = (a+ b)y, distributividade)3 + 10x (pois 3 + 7 = 10)

A formula 3 + 10x nao pode mais ser reduzida, apesar de poder ser escrita de outras formascomo 10x+ 3, 10(x+ 3

10), 3(1 + x10

3), etc.

O que fizemos para converter 1 + 3x+ 2 + 7x em 3 + 10x? Simplesmente tomamos pedacos daformula inicial e substituimos por algo equivalente. Por exemplo, 1 + 2 e um pedaco, sub-formulade 1 + 2 + 3x + 7x. Como 1 + 2 = 3, sempre podemos substituir 1 + 2 por 3. Fazendo isto,obtemos 3 + 3x + 7x, uma formula menor do que a original. Os outros passos sao semelhantes aeste. Sempre tomamos uma sub-formula e a substituimos por outra equivalente.

Para minimizar formulas logicas faremos exatamente o mesmo que fazemos com formulas daMatematica. Dada uma formula A podemos obter uma formula menor A′ substituindo uma sub-formula B de A por outra sub-formula B′. Se B for logicamente equivalente a B′, entao A′ seralogicamente equivalente a A. E isto o que diz a Proposicao 6.4.

E se B′ for menor do que B em numero de conectivos e variaveis, entao obrigatoriamente A′

sera menor do que A. Claro: se substituimos um pedaco de uma formula por algo menor, a formulatoda ficara menor.

Veremos dois exemplos bem simples. Utilizaremos ≡ para “logicamente equivalente a”. Istoe, X ≡ Y significa “X e logicamente equivalente a Y ”. Este sımbolo nao faz parte da linguagemdo calculo proposicional. Note que so podemos substituir uma sub-formula por outra logicamenteequivalente a ela.

Lembre-se de que “logicamente equivalente” e definido em termos de tautologias. Lembrando,X e logicamente equivalente a Y se X←→Y e tautologia. Entao podemos utilizar todas as tau-tologias do tipo X←→Y nas minimizacoes; qualquer sub-formula X pode ser substituıda por Y ouvice-versa. Utilizaremos as equivalencias logicas dos Lemas 6.1 e 6.2. Contudo, tome cuidado: nemsempre as meta-formulas utilizadas nestes lemas serao as mesmas das formulas. Por exemplo, noLema 6.1 (n), temos A∧B ≡ B ∧A. Mas em uma formula qualquer, podemos ter ¬C ∧ (B ∨¬A).Esta formula e equivalente a (B ∨ ¬A) ∧ ¬C.

(a) A−→(¬¬B−→A)

Sabemos que X ≡ ¬¬X, pois X←→¬¬X e tautologia. EntaoA−→(¬¬B−→A) ≡ A−→(B−→A)

Podemos continuar a minimizacao notando que X−→Y ≡ ¬X ∨Y , pois X−→Y←→¬X ∨Ye tautologia. EntaoA−→(B−→A) ≡ ¬A ∨ (B−→A) ≡ ¬A ∨ (¬B ∨ A) ≡¬A ∨ A ∨ ¬B ≡ (pelo Lema 6.1 (q))¬A ∨ A (pelo Lema 6.2 (2), pois ¬A ∨ A e tautologia)

(b) ¬A ∨ ¬B−→¬CPelo Lema 6.1 (k), ¬A ∨ ¬B ≡ ¬(A ∧B). Entao¬A ∨ ¬B−→¬C ≡ ¬(A ∧B)−→¬C

52

Page 57: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Pelo Lema 6.1 (f), A−→B ≡ ¬B−→¬A ou, equivalentemente, X−→Y ≡ ¬Y−→¬X. Noteque reescrevemos a equivalencia com X e Y porque as meta-formulas A e B estao sendoutilizadas de forma diferente na equivalencia logica A−→B ≡ ¬B−→¬A e na formula queestamos querendo minimizar, ¬A ∨ ¬B−→¬C ≡ ¬(A ∧B)−→¬C.

Tomando, na formula ¬(A ∧B)−→¬C, X como A ∧B e Y como C, temos que¬(A ∧B)−→¬C ≡ C−→A ∧BColocando todos os passos juntos, ficamos com¬A ∨ ¬B−→¬C ≡¬(A ∧B)−→¬C ≡ (pelo Lema 6.1 (k), ¬A ∨ ¬B ≡ ¬(A ∧B))C−→A ∧B (pelo Lema 6.1 (f), A−→B ≡ ¬B−→¬A )

Veremos agora alguns exemplos mais complexos de minimizacoes de formulas.

(a) ¬(A ∧ ((A−→B)←→(¬B−→¬A))) ∨ (A ∧ (B ∨ A))

Utilizaremos > para tautologia.

¬(A ∧ ((A−→B)←→(¬B−→¬A))) ∨ (A ∧ (B ∨ A)) ≡¬(A ∧ (¬A ∨ A)) ∨ (A ∧ (B ∨ A)) ≡ (pelo Lema 6.1 (f), (A−→B) ≡ (¬B−→¬A)) e entao(A−→B)←→(¬B−→¬A)) e tautologia)¬((¬A ∨ A) ∧ A) ∨ (A ∧ (B ∨ A)) ≡ (pelo Lema 6.1 (n), A ∧ > ≡ > ∧ A)¬A ∨ (A ∧ (B ∨ A)) ≡ (pelo Lema 6.2 (1), > ∧ A ≡ A)¬A ∨ (A ∧ (A ∨B)) ≡ (pelo Lema 6.1 (o), B ∨ A ≡ A ∨B)¬A ∨ A (pelo Lema 6.1 (m), A ∧ (A ∨B) ≡ A)

(b) (¬A ∨B) ∧ (¬C ∨ ¬A)

(¬A ∨B) ∧ (¬C ∨ ¬A) ≡(¬A ∨B) ∧ (¬A ∨ ¬C) ≡ (pelo Lema 6.1 (o))¬A ∨ (B ∧ ¬C) ≡ (pelo Lema 6.1 (c))A−→(B ∧ ¬C) (pela tautologia X−→Y ≡ ¬X ∨ Y )

(c) ¬(A←→(B−→¬C)) ∧ (¬B ∨B)

¬(A←→(B−→¬C)) ∧ (¬B ∨B) ≡¬(A←→(B−→¬C)) ≡ (pelo Lema 6.2 (1), pois ¬B ∨B e tautologia)A←→¬(B−→¬C) ≡ (pelo Lema 6.1 (r))A←→¬(¬B ∨ ¬C) ≡ (pois X−→Y ≡ ¬X ∨ Y )A←→(¬¬B ∧ ¬¬C) ≡ (pelo Lema 6.1 (j) )A←→(B ∧ C) (pois ¬¬X ≡ X)

7.4 Consideracoes Finais

Minimizacao de formulas e um topico altamente importante. Um uso dela, comum, e simplificarexpressoes booleanas de comandos if´s e while´s de linguagens de programacao. Assim, ao inves

53

Page 58: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

de escreverif not (i = 0 and not achou ) then ...

pode-se escreverif i <> 0 or achou then ...

no qual <> e o sımbolo para “diferente de”.

Um uso mais importante de minimizacao de formulas e simplificar circuitos com portas logicasde um computador, um topico a ser abordado em unidades futuras. Com a minimizacao deformulas economiza-se componentes eletronicos para a construcao do computador, alem de tornara maquina mais rapida e com menor consumo de energia.

7.5 Exercıcios

7.1. Simplifique as seguintes formulas

(a) (A ∨B) ∧ ¬B−→A

(b) ¬¬A←→((A ∧B) ∨ ¬A)

(c) ¬(A ∧ ¬B) ∨ (A−→B)

(d) ¬((A−→¬B) ∧ ¬(A ∧ C))

7.2. Simplifique os seguintes comandos:

(a) while not (f(n) = 0) and not found and isSet = false do

begin

comandos

end

(b) if search(p) = -1 or found

then

if not found

then

writeln(’tudo bem’);

(c) if ok or not found

then

if not ok

then

P

else if ok and found

then

Q;

else

R;

7.3. Simplifique as seguintes formulas

54

Page 59: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

(a) A ∨B−→B

(b) (A ∨ A) ∧ (B−→B)

(c) (A−→A−→A)−→A

(d) (A−→(B−→C))−→A ∧B

7.4. Partindo da formula A−→B, produza uma formula logicamente equivalente com pelo menosseis conectivos e uma variavel C a mais.

55

Page 60: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Unidade 8

Conjunto Adequado de Conectivos eFormas Normais

8.1 Primeiras palavras

Esta Unidade apresenta algumas definicoes muito importantes. Definimos Forma Normal Conjun-tiva (FNC) e Forma Normal Disjuntiva (FND), que sao formas padroes para a representacao deformulas logicas. Ao inves de apresentar uma formula em uma das suas inumeras representacoes, emelhor coloca-la na FNC ou FND pois ha metodos e algoritmos feitos especialmente para formulasnestas representacoes.

Esta Unidade tambem apresenta algumas proposicoes importantes, como a que diz quais conec-tivos sao basicos. Isto e, nao e necessario utilizar todos os conectivos logicos ∧, ∨, ¬, −→ e ←→para representar uma formula qualquer. Basta dois destes conectivos, mas nao dois quaisquer.Veremos quais.

8.2 Problematizando o Tema

A linguagem do calculo proposicional deste manual utiliza apenas os conectivos, ¬ e ∨, chamados deconectivos basicos. Todos os outros sao derivados a partir deles (∧, ∨ e←→). Uma pergunta entaosurge naturalmente: poderıamos utilizar outros conectivos como basicos? Poderıamos utilizar ∧ e∨, por exemplo? Ou ∧ e ¬? Deixemos de lado esta questao e estudemos outra: as formulas queutilizam os conectivos ¬ e −→ conseguem gerar todas as tabelas verdade possıveis? Refinando apergunta, as formulas de duas variaveis, usando ¬ e −→, conseguem gerar todas as tabelas verdadeque utilizam duas variaveis? As formulas de tres variaveis, usando ¬ e −→, conseguem gerar todasas tabelas verdade de tres variaveis? Poderia acontecer que, por exemplo, uma formula de duasvariaveis, utilizando somente ¬ e −→ nunca poderia dar origem a seguinte tabela verdade:

A B ?V V FV F FF V VF F F

56

Page 61: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Isto nao seria bom, pois significaria que o CP nao consegue dar conta de todos os raciocıniospossıveis — ela nao conseguiria expressar a realidade. Entao perguntamos: formulas que utilizamapenas os conectivos ¬ e −→ conseguem gerar todas as 22n

tabelas possıveis para formulas de nvariaveis? Para n variaveis, temos 2n linhas na tabela verdade. Cada uma destas linhas na colunaresultados pode ser V ou F. Logo, existem 22n

tabelas verdade definidas para n variaveis.

A resposta a esta pergunta e sim. Mas o raciocınio para tanto nao e obvio. Veremos o porquedesta resposta em partes.

8.3 Conjunto Adequado de Conectivos e Formas Normais

Veremos como representar qualquer funcao de verdade utilizando um conjunto mınimo de conec-tivos. Veremos tambem como encontrar uma formula correspondente ao resultado de uma tabelaverdade. Para apresentar estes resultados, precisamos de algumas definicoes e proposicoes.

Definicao 8.1. Uma disjuncao e uma sequencia de formulas separadas por ∨. Por exemplo,A ∨B ∨ C.

Definicao 8.2. Uma conjuncao e uma sequencia de formulas separadas por ∧.

Como exemplo de conjuncao, temos V1 ∧ V2. Naturalmente, uma unica variavel corresponde aambas: uma disjuncao e uma conjuncao.

Definicao 8.3. Um literal e uma variavel ou negacao desta variavel.

Por exemplo, V1, ¬V1, V27, ¬V7 e ¬V3 sao literais. Mas nao sao literais: ¬¬V1 (pois ha duasnegacoes) e V1 ∧ V2 (ha um ∧).

Definicao 8.4. Uma formula estara na forma normal disjuntiva (FND) se ela for uma disjuncaoconsistindo de uma ou mais sub-formulas, cada uma das quais sendo uma conjuncao de um oumais literais.

As formulas

(V1 ∧ V2 ∧ ¬V3) ∨ (¬V2 ∧ V3) ∨ V1

V1 ∧ V2

V1

¬V2

V1 ∨ ¬V2 ∨ V7

estao na forma normal disjuntiva. E claro que a primeira formula esta. A segunda, V1 ∧ V2, naopossui ∨ — mas nao tem importancia, pois a definicao nao exige que exista pelo menos um. Aterceira formula e apenas uma variavel, que tambem esta na FND, pois a definicao tambem naoexige que exista pelo menos um ∧.

Considere Rj = R1j ∧ R2

j ∧ . . . Rnj

j no qual Rij e um literal de uma variavel qualquer (nao

necessariamente da variavel Vi). Em Rij usamos dois ındices, j e i sendo que na definicao de Rj

57

Page 62: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

apenas o ındice i varia (de i = 1 a i = nj). Note tambem que Rj e Rij sao variaveis diferentes,

apesar de usarem o mesmo nome R. Entao Rij nao e Rj elevado ao expoente i e sim uma variavel

com dois ındices. A formula Rj pode ser escrita como

Rj =

nj∧i=1

Rij

Entao uma formula na FND e da forma

R =m∨

j=1

Rj

Note que∨

e um sımbolo utilizado para fazer um ∨ entre um conjunto de formulas da mesmaforma que Σ e utilizado para fazer a soma de um conjunto de numeros (como em Σ10

n=1n = 55). Amesma observacao vale para

∧.

Definicao 8.5. Uma formula estara na forma normal conjuntiva (FNC) se ela for uma con-juncao consistindo de uma ou mais sub-formulas, cada uma das quais sendo uma disjuncao de umaou mais variaveis ou negacao de variaveis.

Por exemplo, as formulas

(V1 ∨ V2 ∨ ¬V3) ∧ (¬V2 ∨ V3) ∧ V1

V7 ∧ V2 ∧ V5

V1

¬V2

V1 ∨ V2

estao na forma normal conjuntiva. Observe que as tres ultimas formulas, V1, ¬V2 e V1 ∨ V2, estaona forma normal disjuntiva e tambem na forma normal conjuntiva.

Considere Rj = R1j ∨ R2

j ∨ . . . Lnj

j no qual Rij e um literal de uma variavel qualquer (nao

necessariamente da variavel Vi). A formula Rj pode ser escrita como

Rj =

nj∨i=1

Rij

Entao uma formula na FNC e da forma

R =m∧

j=1

Rj

Observacao: cada funcao de verdade corresponde a uma tabela verdade. A primeira linha destatabela verdade contem uma variavel para cada argumento da funcao e uma formula que corresponde

58

Page 63: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

ao resultado da funcao. Por exemplo, para a funcao verdade f∧ na qual f∧(V, V ) = V e f∧(V, F ) =f∧(F, V ) = f∧(F, F ) = F , temos a tabela verdade

A B A ∧BV V VV F FF V FF F F

onde, a cada linha, o primeiro e o segundo valores correspondem ao primeiro e segundo argumentosda funcao. A formula que corresponde a coluna de resultados da tabela verdade e a funcao e A∧B.Isto e, f∧(A, B) = A ∧B.

Dada uma tabela verdade, mostraremos como obter uma formula que a gera. Utilizaremos umexemplo. Considere a funcao f dada pela seguinte tabela verdade:

V1 V2 AV V VV F FF V VF F V

A formula correspondente ao resultado e A, que tentaremos encontrar. Para isto utilizaremosapenas as linhas nas quais o resultado, terceira coluna, e igual a V. Entao utilizaremos apenas aslinhas 1, 3 e 4 (observe que consideramos a linha com V1, V2 e A como a linha 0). Para cada linha,encontraremos uma sub-formula que assume o valor V quando o valor de V1 e V2 forem os valoresV ou F daquela linha. Isto e, a sub-formula obtida na linha 3, por exemplo, assume V quandoos valores de V1 e V2 forem F e V (confira na linha 3 da tabela acima). Vejamos a sub-formulacorrespondente a cada linha da tabela:

1. V1 ∧ V2 para a linha 1. Esta sub-formula assume o valor V se os valores de V1 e V2 forem osda primeira linha da tabela (V ∧ V e V);

2. ¬V1 ∧ V2 para a linha 3. Esta sub-formula assume V se os valores das variaveis forem os daterceira linha, pois ¬ F ∧ V = V ∧ V = V;

3. ¬V1∧¬V2 para a linha 4. Esta sub-formula assume V se os valores forem os da quarta linha,pois ¬ F ∧¬ F = V ∧ V = V

Nao utilizamos a segunda linha pois a coluna de resultados contem F.

Considerando que A assume V se as variaveis assumirem os valores da primeira, terceira ouquarta linhas da tabela (observe o “ou”), podemos deduzir que A e

(V1 ∧ V2) ∨ (¬V1 ∧ V2) ∨ (¬V1 ∧ ¬V2)

Quando os valores assumidos forem os da primeira linha, a formula (V1 ∧ V2) sera verdadeira e,

59

Page 64: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

como temos um “ou” de expressoes, o valor da formula toda sera V. O mesmo se aplica a linhas trese quatro. Mas e se os valores forem os da segunda linha? Entao o valor de A e F. Vejamos o porque.A formula A e uma disjuncao das sub-formulas (V1 ∧ V2), (¬V1 ∧ V2) e (¬V1 ∧ ¬V2). Se qualqueruma delas assumir o valor V para uma certa linha da tabela verdade; isto e, para certos valoresV ou F de V1 ou V2, entao a formula A assumira V. Mas qualquer destas sub-formulas assume Fpara os valores das variaveis da segunda linha. Nesta linha, V1 assume V e V2, F. Vejamos:

1. para (V1 ∧ V2) temos V ∧ F = F;

2. para (¬V1 ∧ V2) temos ¬ V ∧ F = F ∧ F = F;

3. para (¬V1 ∧ ¬V2) temos ¬ V ∧ ¬ F = F ∧ V = F

Na verdade, qualquer uma destas sub-formulas so e verdadeira na linha utilizada para construi-la. Isto sempre ocorrera porque cada sub-formula, sendo um ∧, e falsa se algum dos valores fordiferente dos valores daquela linha. Lembre-se que duas linhas quaisquer da tabela sao diferentesem pelo menos um dos valores atribuıdos as variaveis. Por exemplo, as linhas 1 e 3 sao diferentesno valor da variavel V1, que e V na linha 1 e F na linha 3. Entao como V1 ∧ V2 e V para os valoresda linha 1, obrigatoriamente e F para os valores da linha 3, pois temos um ∧.

O que conseguimos? A formula A=def (V1 ∧ V2) ∨ (¬V1 ∧ V2) ∨ (¬V1 ∧ ¬V2) e composta pordiversas formulas separadas por “ou” e todas elas assumem o valor F se a valoracao e aquela dasegunda linha. E para cada uma das linhas 1, 3 e 4 uma das sub-formulas assume V, o que resultaque A tambem assume V. Entao obtemos o resultado esperado; isto e, esta tabela verdade e a daformula A.

Observe que foi fundamental para a construcao de A o fato de que, se tivermos varias meta-formulas (ou variaveis) separadas por ∧, entao o resultado sera F se uma das meta-formulas for Fe o resultado e V somente se todas as meta-formulas (ou variaveis) forem V. E se tivermos variasformulas separadas por ∨, o resultado so sera F se todas as formulas (ou variaveis) forem F, sendoV se pelo menos uma das meta-formulas ou variaveis for V.

Por esta tecnica, a formula resultante estara sempre na Forma Normal Disjuntiva (FND).

Proposicao 8.1. Cada funcao de verdade e gerada por uma formula envolvendo apenas os conec-tivos ¬, ∧ e ∨.

Prova. Assumiremos que as variaveis sao V1, V2, ... Vn. Para cada linha da tabela verdade, cadauma destas variaveis assume o valor V ou F. Na linha i, seja Ci a formula U i

1 ∧ U i2 ∧ ... ∧ U i

n ondeU i

j e Vj se a variavel Vj assume o valor V e U ij e ¬Vj se Vj assume F. Seja A a formula que e a

disjuncao de todos os Ci’s onde o resultado da funcao e V (a ultima coluna e V). Ou seja, A eCi1 ∨ Ci2 ∨ ... ∨ Cik onde Ci1 , Ci2 , ... Cik correspondem a todas as colunas onde o resultado e V.Claramente, ha k linhas onde o resultado e V. Se nao ha nenhuma linha onde o resultado e V,entao A e V1 ∧ ¬V1, uma contradicao.

Afirmamos que A corresponde a esta tabela verdade. Suponha que as variaveis V1, V2, ... Vn

assumam os valores da linha i da tabela. Se o resultado, que esta na ultima coluna desta linha, forV, entao Ci sera V e todos os outros Ck serao falsos, resultando em A verdadeiro. Se as variaveisassumem os valores de uma linha cujo resultado e F, entao todos os Ci serao falsos, pois, paracada Ci, pelo menos um dos valores U i

j assumira F, ja que duas linhas da tabela diferem em pelo

60

Page 65: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

menos um valor verdade para as variaveis. Como A e um “ou” de Ci´s, A assume F. Conclui-seque a formula A tal como construıda representa a tabela verdade.

Proposicao 8.2. Toda formula e logicamente equivalente a uma formula na forma normal dis-juntiva.

Prova. A cada formula esta associada uma funcao de verdade dada pela sua tabela verdade. Peloteorema 8.1, existe uma formula logicamente equivalente a A na FND.

Vejamos dois exemplos. Encontraremos uma formula para a tabela verdade

A B RV V FV F VF V FF F V

na qual A e B sao as variaveis e R e o resultado, a formula que queremos encontrar. Na verdade,A e B sao meta-variaveis e poderiam ser substituıdas por qualquer variavel V1, V2, V3, . . .. Noteque nesta unidade frequentemente utilizaremos A, B, C para meta-variaveis, nao meta-formulas.

Utilizaremos apenas as linhas 2 e 4. Para a linha 2, a sub-formula e A ∧ ¬B. Para a linha 4,¬A ∧ ¬B. Entao a formula resultando R e (A ∧ ¬B) ∨ (¬A ∧ ¬B). Que pode ser simplificadapara ¬B — mas como sabemos disso? Basta ver que R assume exatamente o contrario do valorverdade de B. Se B e V, R e F. E se B e F, R e V — confira na tabela.

Encontraremos a formula para

A B C RV V V FV V F FV F V VV F F FF V V VF V F FF F V VF F F F

na qual A, B e C sao meta-variaveis e R e a formula que queremos encontrar. As sub-formulassao:

1. A ∧ ¬B ∧ C para a linha 3;

2. ¬A ∧B ∧ C para a linha 5;

3. ¬A ∧ ¬B ∧ C para a linha 7.

61

Page 66: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

A formula R pode ser (A ∧ ¬B ∧ C) ∨ (¬A ∧B ∧ C) ∨ (¬A ∧ ¬B ∧ C).

E se nao houver, na coluna de resultados, nenhum valor V? Como exemplo, o que pode ser Rna tabela abaixo?

A B RV V FV F FF V FF F F

Muito simples. R e uma contradicao e entao faca uma contradicao com as variaveis A e B.Qualquer uma serve. Pode ser (A ∧ ¬A) ∨ (B ∧ ¬B).

Agora podemos sistematizar o algoritmo de encontrar a formula na FND que gera uma dadatabela verdade. Suponha que tenhamos uma tabela verdade que utiliza as variaveis V1, V2, . . . Vn

e queremos encontrar uma formula R que a gere. Nao ha perda de generalidade em supor que asvariaveis sao exatamente V1, V2, . . . Vn. Se a sua tabela tiver outras variaveis, basta renomea-las.

Se nao ha nenhum valor V na coluna de resultados da tabela, entao R e uma contradicaoqualquer envolvendo as variaveis. Entao R pode ser

(V1 ∧ ¬V1) ∨ (V2 ∧ ¬V2) ∨ . . . (Vn ∧ ¬Vn)Podemos escrever esta formula como

n∨i=1

(Vi ∧ ¬Vi)

Suponha que ha m linhas da tabela cujo resultado da coluna do R seja igual a V. Isto e, emcada uma destas linhas, a avaliacao de R com os valores das variaveis dados por aquela linha eigual a V. Suponha que estas linhas sejam L1, L2, ... Lm. Para cada linha Lj e para 1 ≤ i ≤ n,defina Ri

j como Vi se Vi assume o valor V nesta linha e como ¬Vi se Vi assume o valor F. Definaagora

Rj =n∧

i=1

Rij

e

R =m∨

j=1

Rj

Note que, para R assumir o valor V, basta que apenas um Rj assuma V. Para R assumir ovalor F, entao todos os Rj tem que assumir F. Como ja vimos, se um Rj assumir V, todos osoutros Rk, k 6= j, assumirao F.

Proposicao 8.3. Cada tabela verdade corresponde a uma formula contendo apenas ¬ e −→.

Prova. Pelo teorema acima, pode-se representar uma tabela verdade por uma formula contendoapenas ¬, ∨ e ∧. Mas formulas que utilizam ∨ e ∧ podem ser substituıdas por formulas logicamente

62

Page 67: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

equivalentes com ¬ e −→. Confira as equivalencias logicas dadas abaixo.

(A ∧B) ≡ (¬(A−→¬B))(A ∨B) ≡ (¬A−→B)

Concluımos que qualquer tabela verdade corresponde a uma formula contendo apenas ¬ e −→.

Vejamos um exemplo. A formula ϕ=def ¬C ∧ (¬D ∨ E) utiliza ∧ e ∨ e vamos converte-lapara uma formula que utiliza apenas ¬ e −→. Podemos eliminar o ∨, pois sabemos que A ∨ B elogicamente equivalente a ¬A−→B. Na formula ϕ, A e ¬D e B e E. Logo, ¬D∨E e logicamenteequivalente a ¬¬D−→E que e logicamente equivalente a D−→E. Portanto,¬C ∧ (¬D ∨ E) ≡ ¬C ∧ (D−→E). Como A ∧ B ≡ ¬(A−→¬B), tomando A como ¬C e B comoD−→E, temos ¬C ∧ (D−→E) ≡ ¬(¬C−→¬(D−→E))

Entao a formula original, ¬C ∧ (¬D ∨ E), e logicamente equivalente a ¬(¬C−→¬(D−→E)),que contem apenas os conectivos ¬ e −→.

Proposicao 8.4. Cada tabela verdade corresponde a uma formula contendo apenas ¬ e ∧ ouapenas ¬ e ∨.

Prova. De acordo com a Proposicao 8.1, cada tabela verdade pode ser gerada utilizando-se apenas¬, ∧ e ∨. Mas o “ou” logico pode ser obtido a partir do “e” e vice-versa. As formulas abaixo saotautologias.

(A ∧B)←→¬(¬A ∨ ¬B)(A ∨B)←→¬(¬A ∧ ¬B)

Isto e,(A ∧B) ≡ ¬(¬A ∨ ¬B)(A ∨B) ≡ ¬(¬A ∧ ¬B)

Como um exemplo, considere a formula ϕ=def ¬C ∧ (¬D ∨ E) novamente. Vamos construiruma formula logicamente equivalente a ela que utilize apenas ¬ e ∧. Como (A∨B) ≡ ¬(¬A∧¬B),vamos tomar A como ¬D e B como E. Entao

¬C ∧ (¬D ∨ E) ≡ ¬C ∧ ¬(¬¬D ∧ ¬E) ≡¬C ∧ ¬(D ∧ ¬E)

Agora vamos construir uma formula logicamente equivalente a ϕ sem ∧. Considere A como¬C e B como (¬D ∨ E) em (A ∧B) ≡ ¬(¬A ∨ ¬B). Entao

¬C ∧ (¬D ∨ E) ≡ ¬(¬¬C ∨ ¬(¬D ∨ E)) ≡

63

Page 68: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

¬(C ∨ ¬(¬D ∨ E))

Mas sera que conseguimos, para cada tabela verdade, uma formula que utilize apenas ∨ e ∧?A resposta e nao.

Proposicao 8.5. Uma formula com o conectivo ¬ nao pode ser transformada em uma formulalogicamente equivalente que utilize apenas ∧ e ∨.

Prova. Considere a mais simples de todas as tabelas verdade, a tabela do ¬:

V1 ¬V1

V FF V

Suponha que seja possıvel representar esta tabela por uma formula B que utilize apenas ∨ e∧. Como a unica variavel e V1, B deve ser utilizar apenas conjuncoes e disjuncoes utilizando V1,algo como

V1 ∧ (((V1 ∨ V1) ∧ (V1 ∧ V1)) ∨ V1)

Mas nao e difıcil de ver que esta formula e logicamente equivalente a formula “V1”, pois asformulas V1 ∧ V1 e V1 ∨ V1 sao logicamente equivalente a V1.

Quantos conectivos de uma variavel podemos construir? Dois, pois existem duas tabelas ver-dade com uma variavel:

A f1

V FF V

A f2

V VF V

Ha 222= 24 = 16 conectivos diferentes que tomam duas variaveis como parametros, como ∧,

∨, −→ e ←→.

Proposicao 8.6. Dada uma formula qualquer A, existe uma formula logicamente equivalente aela que utiliza apenas um conectivo binario.

64

Page 69: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Prova. Considere o conectivo ↓, negacao conjunta (joint denial), cuja tabela verdade e

A B A ↓ BV V FV F FF V FF F V

Como pode ser facilmente conferido, ¬A←→(A ↓ A) e (A ∧ B)←→((A ↓ A) ↓ (B ↓ B)) saotautologias. Como qualquer tabela verdade pode ser construıda utilizando-se apenas ¬ e ∧, pode-se construir qualquer uma utilizando apenas ↓.

Este conectivo e conhecido na computacao por nor. Claramente, (A ↓ B) e logicamenteequivalente a ¬(A ∨B), daı o nome, “negacao do ’ou’”, “not or”.

De fato, existe apenas um outro conectivo binario que sozinho pode construir todas as tabelasverdade. E o conectivo “negacao alternativa” (alternative denial) dado pela tabela verdade

A B A|BV V FV F VF V VF F V

Este e o conectivo nand, “not and”. Temos que (A|B) e logicamente equivalente a ¬(A ∧ B).Algumas vezes utiliza-se ↑ para a negacao alternativa.

Proposicao 8.7. Toda formula A e logicamente equivalente a uma formula na forma normalconjuntiva.

Prova. Faca a formula na FND correspondente a ¬A. Ela existe pela Proposicao 8.2. Aplicandoa negacao a esta formula, obtemos uma formula na FND. Isto e,

FNC︷ ︸︸ ︷¬

FND︷︸︸︷¬A

esta na FNC.

Dada uma formula A, mostraremos como encontrar uma formula na FNC logicamente equiva-lente a A. Em primeiro lugar, construa a tabela verdade de A. Depois, utilize a tecnica mostradaa seguir para obter a formula na FNC logicamente equivalente a A.

65

Page 70: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Considere novamente a tabela verdade

V1 V2 AV V VV F FF V VF F V

Utilizaremos apenas as colunas cujo resultado e F. Neste caso, utilizaremos apenas a segundacoluna, na qual V1 assume o valor V e V2 assume F. Negue as variaveis que assumem V e faca um∨ entre todas elas. Entao ficamos com ¬V1 ∨ V2 para esta linha. Como so ha esta linha com valorF, a formula logicamente equivalente a A na FNC e ¬V1 ∨V2. Note que esta formula tambem estana FND.

Encontraremos uma formula para a tabela verdade

A B RV V FV F VF V FF F V

na qual A e B sao meta-variaveis e R e o resultado, a formula que queremos encontrar. Uti-lizaremos apenas as linhas 1 e 3. Para a linha 1, a sub-formula e ¬A ∨ ¬B, pois tanto A quantoB assumem o valor V e ambos precisam ser negados. Para a linha 3, A ∨ ¬B. A formula R eobtida fazendo-se um ∧ das sub-formulas de cada linha com resultado F. Neste caso, as linhas 1 e3. Assim, R e (¬A ∨ ¬B) ∧ (A ∨ ¬B).

Faremos mais dois exemplos. Encontraremos a formula na FNC para a seguinte tabela verdade.

A B C RV V V FV V F FV F V VV F F FF V V VF V F FF F V VF F F F

na qual A, B e C sao meta-variaveis e R e a formula que queremos encontrar. As sub-formulascorrespondentes a cada linha onde o resultado e F sao:

1. ¬A∨¬B∨¬C para a linha 1, pois todas as variaveis assumem V e, portanto, todas precisamser negadas;

66

Page 71: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

2. ¬A ∨ ¬B ∨ C para a linha 2;

3. ¬A ∨B ∨ C para a linha 4;

4. A ∨ ¬B ∨ C para a linha 6;

5. A ∨B ∨ C para a linha 8.

A formula R e (¬A ∨ ¬B ∨ ¬C) ∧ (¬A ∨ ¬B ∨ C) ∧ (¬A ∨B ∨ C) ∧ (A ∨ ¬BC) ∧ (A ∨B ∨ C).

E se nao houver, na coluna de resultados nenhum valor F? Como exemplo, o que pode ser Rna tabela abaixo?

A B RV V VV F VF V VF F V

Muito simples. R e uma tautologia e entao faca uma tautologia com as variaveis A e B, comopor exemplo (A ∨ ¬A) ∧ (B ∨ ¬B).

Agora podemos sistematizar o algoritmo de encontrar a formula na FNC que gera uma dadatabela verdade. Suponha que tenhamos uma tabela verdade que utiliza as variaveis V1, V2, . . . Vn

e queremos encontrar uma formula R na FNC que a gere. Nao ha perda de generalidade emsupor que as variaveis sao exatamente V1, V2, . . . Vn. Se a sua tabela tiver outras variaveis, bastarenomea-las.

Se nao ha nenhum valor F na coluna de resultados da tabela, entao R e uma tautologia qualquerenvolvendo as variaveis. Entao R pode ser

(V1 ∨ ¬V1) ∧ (V2 ∨ ¬V2) ∧ . . . (Vn ∨ ¬Vn)Podemos escrever esta formula como

n∧i=1

(Vi ∨ ¬Vi)

Suponha que ha m linhas da tabela cujo resultado da coluna do R seja igual a F. Isto e, emcada uma destas linhas, a avaliacao de R com os valores das variaveis dados por aquela linha eigual a F. Suponha que estas linhas sejam L1, L2, ... Lm. Para cada linha Lj e para 1 ≤ i ≤ n,defina Ri

j como Vi se Vi assume o valor F nesta linha e como ¬Vi se Vi assume o valor V. Definaagora

Rj =n∧

i=1

Rij

e

R =m∨

j=1

Rj

67

Page 72: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Note que, para R assumir o valor V, basta que apenas um Rj assuma V. Para R assumir ovalor F, entao todos os Rj tem que assumir F. Se um Rj assumir V, todos os outros Rk, k 6= j,assumirao F.

8.4 Consideracoes Finais

Computadores sao construıdos utilizando-se portas logicas que correspondem aos conectivos logicos.Como qualquer funcao de verdade pode ser gerada a partir dos conectivos ¬ e ∧ ou ¬ e ∨ ou ¬ e−→, entao podemos construir um computador utilizando-se apenas um destes conjuntos de portaslogicas. Ou utilizando-se apenas as portas nand or nor, uma das duas.

Vimos como produzir uma formula correspondente ao resultado de uma tabela verdade. Ao pro-jetar um computador, esta tecnica e muito importante. Simplificando enormemente o raciocınio,primeiro construımos as tabelas verdades que precisamos e depois encontramos as formulas queas geram. A partir das formulas construımos os circuitos. Veremos mais sobre isto em uma dasproximas unidades.

8.5 Exercıcios

8.1. Quais das formulas abaixo estao na FNC? E na FND?

(a) V1

(b) V5 ∨ (V1 ∧ ¬V3 ∧ ¬V5) ∨ ¬V2

(c) A ∨ ¬B, sendo A e B meta-variaveis. Esta e uma formula?

8.2. Explique como se encontra uma formula na FNC que corresponde a uma certa tabela verdade.

8.3. Encontre uma formula na FNC que seja logicamente equivalente a formula (A−→B)∧ (¬B ∨C), sendo A, B e C meta-variaveis.

8.4. Encontre uma formula na FND correspondente a seguinte tabela verdade, sendo A, B e Cmeta-variaveis.:

A B C ?V V V VV V F FV F V FV F F FF V V VF V F VF F V VF F F F

68

Page 73: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

8.5. Encontre uma formula na FNC e outra na FND correspondente a seguinte tabela verdade,sendo A e B meta-variaveis.:

A B ?V V VV F FF V FF F V

8.6. Dadas as seguintes formulas na FND (FNC), encontre as formulas na FNC (FND) logicamenteequivalentes sem construir nenhuma tabela verdade.

(a) A ∨ (¬B ∧ A ∧ ¬C) ∨ ¬C

(b) (V1 ∨ ¬V2) ∧ (¬V1 ∨ V2 ∨ V3) ∧ V3

(c) A ∨ (¬A ∧B ∧ C)

(d) (V3 ∧ ¬V2) ∨ ¬V1 ∨ (V1 ∧ V2)

8.7. Quais das formulas abaixo estao na FNC? E na FND?

(a) (¬V1 ∧ V2) ∨ V5 ∧ V1

(b) V1 ∧B, B uma meta-variavel. Esta e uma formula?

(c) (¬¬V1 ∧ V2) ∨ (¬V2 ∧ V3)

8.8. Explique como se encontra uma formula na FND que corresponde a uma certa tabela verdade.

8.9. Suponha que uma tabela verdade tenha, na coluna de resultados, muito mais valores verdadeF do que V. E mais facil encontrar a formula correspondente a esta tabela verdade na FNC ou naFND ? Explique o porque.

8.10. Encontre uma formula na FND que gere a seguinte tabela verdade.

V1 V2 V3 ?V V V VV V F VV F V VV F F VF V V FF V F VF F V VF F F V

8.11. Quantas tabelas verdade com n variaveis existem? Justifique.

69

Page 74: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Unidade 9

Sintaxe do Calculo Proposicional

9.1 Primeiras palavras

O leitor e convidado a recordar a Unidade 2 sobre sistemas formais. O que vimos foi que a partirde alguns axiomas podemos obter teoremas utilizando as regras de deducao. Tudo e apenas umjogo em que alguns sımbolos sao substituıdos por outros pelas regras. Veremos nesta unidade queo calculo proposicional e descrito tambem por axiomas e regras de deducao, a partir dos quaispodemos obter infinitos teoremas. Surpreendentemente, ao construir a tabela verdade de cada umdestes teoremas, descobrimos que sao tautologias ! De fato, isto nao e surpresa: os axiomas e asregras foram feitos justamente para produzirem teoremas que sao tautologias. Veremos mais sobreisso na proxima unidade. Agora, leia novamente a Unidade 2.

9.2 Problematizando o Tema

Tautologias sao as formulas que sempre sao verdadeiras independente do valor de suas variaveis.Tautologias sao o que podemos chamar de “verdades”. Contudo, a unica maneira de encontra-las,ate agora, e construir formulas e fazer a tabela verdade delas. Trabalho difıcil, pois as tabelas ver-dade crescem exponencialmente com o numero de variaveis: uma formula com n variaveis possuiuma tabela verdade de 2n linhas. Felizmente ha uma forma mais facil de encontrar tautologias queutiliza os Sistemas Formais vistos na Unidade 2. Com um sistema formal apropriado, podemosgerar teoremas que sempre sao tautologias. Entao temos uma forma automatica de gerar tautolo-gias, atraves de axiomas e regras. Podemos gerar todas elas em sequencia, uma a uma, em umasequencia infinita.

Ate agora, a unica maneira de saber se uma certa formula B e consequencia logica de umaoutra formula A e construir a tabela verdade de A−→B. Como dissemos, isto e impraticavel paraformulas com muitas variaveis.

E mais do que isso, ha muitas proposicoes interessantes sobre os teoremas do sistema formalque estudaremos nesta unidade. Infelizmente, por uma limitacao de espaco, estudaremos poucosdeles.

70

Page 75: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

9.3 Sintaxe do Calculo Proposicional

A sintaxe do calculo proposicional consiste de sua versao em Sistemas Formais. Como vimos, umsistema formal consiste de:

1. um alfabeto de sımbolos;

2. sequencias bem definidas de sımbolos deste alfabeto chamadas de formulas;

3. axiomas (um subconjunto das formulas) e

4. regras para produzir novas formulas a partir de outras.

Definiremos agora o CP como sistema formal. O alfabeto e a definicao de formula do CP jaforam dados na secao 3.2 mas serao repetidos aqui. O alfabeto e {¬, ∨, (, ), V1, V2, V3 . . .} sendoque Vi e uma variavel. As formulas do calculo proposicional sao definidas como

(a) uma variavel e uma formula;

(b) ¬A e (A ∨B) sao formulas se A e B sao formulas;

(c) formulas sao descritas apenas pelos itens (a) e (b).

O sistema formal para o CP [2] definido nesta unidade utiliza apenas um esquema de axioma:¬A ∨ A. Note que a partir deste esquema podemos construir infinitos axiomas. Por exemplo,¬V1 ∨ V1, ¬V5 ∨ V5, ¬(A−→B) ∨ (A−→B), ¬(¬A) ∨ (¬A), etc.

Ha quatro regras de inferencia:

expansao se A e um teorema, entao A ∨B e um teorema, onde B e uma formula qualquer;

eliminacao se A ∨ A e um teorema, entao A e um teorema;

associatividade se A ∨ (B ∨ C) e um teorema, (A ∨B) ∨ C e um teorema;

corte se A ∨B e ¬A ∨ C sao teoremas, B ∨ C e teoremas.

Antes de mostrar algums teoremas neste sistema formal, definiremos alguns conceitos e sımbolos.

Definicao 9.1. Um sistema formal, como o CP, e chamado de teoria formal ou simplesmenteteoria.

Definicao 9.2. Uma teoria e axiomatizavel se existe um algoritmo que diz se uma formula e umaxioma ou nao.

Pode ser provado que o calculo proposicional, com os axiomas dados acima, e axiomatizavel.O algoritmo que reconhece se uma formula e axioma ou nao e um analisador sintatico, uma daspartes de um compilador. Leia a secao 10.4.1.

71

Page 76: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Definicao 9.3. Uma prova e uma sequencia A1, A2, ... An de formulas tal que, para cada i, Ai

e um axioma ou e deduzido a partir de uma das regras de inferencia utilizando Aj e/ou Ak, j < ie k < i.

Uma prova envolve apenas elementos da linguagem, nenhum meta-elemento pode estar pre-sente, como A e B, que sao meta-formulas (representam formulas e estao fora da linguagem doCP). Contudo, como um abuso de linguagem, chamamos de “prova” sequencias que empregammeta-formulas.

Definicao 9.4. A formula B sera um teorema do CP se B aparecer como ultimo elemento deuma prova em CP: existe uma prova A1, A2, ... An e An = B.

Note que, em uma prova A1, A2, ... An, qualquer Ai e um teorema.

Como um abuso de linguagem, chamamos de “teorema” formulas que empregam meta-formulas,como (¬A ∨ A) ∨ B. Rigorosamente falando, (¬A ∨ A) ∨ B e um “esquema de teorema” a partirdo qual podem ser produzidos teoremas substituindo-se A por qualquer formula.

Escrevemos` A

para dizer que A e um teorema do calculo proposicional. Se houver duvidas quanto ao sistemaformal que estamos utilizando, podemos indica-lo explicitamente:

`cp A.

Utiliza-se 6` A para “A nao pode ser deduzido no calculo proposicional”.

Definicao 9.5. Se existe um algoritmo para decidir se B e um teorema de um sistema formal,entao dizemos que este sistema e decidıvel. Caso contrario, o sistema e indecidıvel. O calculoproposicional e decidıvel.

Observe que, se as regras de inferencia permitem que as formulas apenas crescam de tamanho,entao o sistema formal e claramente decidıvel. Se quisermos saber se uma certa sequencia Te teorema, basta, a partir dos axiomas, ir deduzindo todos os teoremas possıveis. A cada passoaplicam-se as regras a todos os teoremas ja deduzidos, sempre que for possıvel. Quando o tamanhode todos os teoremas obtidos em um certo passo for maior do que o tamanho de T, podemos pararcom as deducoes. Se T nao tiver sido deduzido ate este ponto, nunca mais o sera, pois deste passoem diante apenas se obterao teoremas maiores do que T.

Para compreender melhor este ponto, suponha que tenhamos uma sequencia de numeros inteiroscomecando por 5 e 7. A partir destes numeros iniciais, temos duas regras para produzir maisnumeros:

1. soma-se dois numeros que ja estejam na sequencia;

2. toma-se um numero primo na sequencia e some 6 a ele.

Por estas regras, produzirıamos 5, 7, 11, 12, 13, 17, 19, 21, ... Para saber se certo numero kaparece na sequencia, basta fazer um algoritmo que produza a sequencia em ordem crescente. Seencontrarmos um numero maior do que k antes de encontrar k certamente este numero nao estana sequencia, ja que daı em diante apenas numeros maiores serao obtidos.

72

Page 77: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

As coisas nao ficam tao simples se colocarmos uma regra que diminua o numero. Considere asequencia que comeca em um numero n dado e onde cada numero e obtido a partir do anteriorpelas seguintes regras:

1. se n for par, divida-o por 2;

2. se for ımpar, calcule 3n+ 1.

Por exemplo, para n = 3 temos: 3, 10, 5, 16, 8, 4, 2, 1. Aqui o numero n inicial faz o papel doaxioma. Pergunta-se: para n = 1001, o numero 345 aparece na sequencia?

Definicao 9.6. Uma formula A e uma consequencia de um conjunto Γ de formulas se e somentese (sse) ha uma sequencia A1, A2, ... An de formulas tal que A = An e, para cada i, Ai e umaxioma ou Ai ∈ Γ ou Ai e deduzido por uma das regras a partir de formulas anteriores (Aj e Ak

tal que j < i e k < i).

Em resumo, e como se qualquer formula do conjunto Γ fosse considerado um axioma.

A sequencia A1, A2, . . . An com An = A e uma prova de A a partir de Γ. As formulas de Γsao as hipoteses ou premissas de A. Escrevemos Γ ` A. Se Γ contiver um numero pequeno deformulas, podemos escreve-las sem o { e } que delimitam o conjunto. Por exemplo,

B,C ` Aos inves de

{B,C} ` AUtilizaremos Γ, A ` B para indicar que B e uma consequencia do conjunto Γ ∪ {A}.

Exemplo 9.1. Agora faremos uma prova de que {A,¬A ∨B} ` B:

1. A, hipotese, pois A esta no conjunto {A,¬A ∨B};

2. A ∨B, regra da expansao utilizando 1 e B;

3. ¬A ∨B, hipotese;

4. B ∨B, regra do corte com 2 e 3;

5. B, regra da eliminacao com 4.

Mas ¬A ∨B e, por definicao, A−→B. Entao temos{A,A−→B} ` B

Sempre que A e A−→B forem hipoteses, podemos deduzir B. Podemos utilizar o teorema acimacomo uma regra adicional que e chamada de Modus ponens (MP) : a partir de A e A−→Bdeduzimos B. E porque podemos utilizar esta regra? Porque sempre que tivermos A e A−→Bcomo teoremas em uma prova (estas duas formulas forem Ai e Aj, por exemplo), podemos utilizara prova acima para deduzir B. Ao inves de colocar a prova novamente, simplesmente citamos aregra MP. A mesma observacao vale para os teoremas dados abaixo. Estudemos outras provas.1

1A maioria das provas foram tomadas de [2].

73

Page 78: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Exemplo 9.2. A ∨B ` B ∨ A:

1. A ∨B, hipotese;

2. ¬A ∨ A, axioma;

3. B ∨ A, regra do corte com 1 e 2.

Entao podemos utilizar a comutatividade do ∨ como regra tambem. Outras provas interessantessao as que dizem que ¬¬A e A sao deduzıveis entre si.

Exemplo 9.3. A ` ¬¬A:

1. A, hipotese;

2. ¬¬A ∨ ¬A, axioma;

3. ¬A ∨ ¬¬A, usando a comutatividade;

4. ¬¬A, Modus ponens (MP) de 1 e 3.

Exemplo 9.4. ¬¬A ` A:

1. ¬¬A, hipotese;

2. ¬¬A ∨ A, expansao;

3. ¬A ∨ A, axioma;

4. A ∨ A, corte em 3, 2 (nao e 2, 3, e corte em 3, 2);

5. A, eliminacao com 4.

Exemplo 9.5. Se Γ = {A−→A ∨B, A}, temos Γ ` A ∨B:

1. A−→A ∨B, hipotese, esta formula pertence a Γ;

2. A, pois esta formula pertence a Γ;

3. A ∨B, MP 1, 2.

Exemplo 9.6. {A−→B, A} ` B. Ou Γ ` B, sendo que Γ = {A−→B,A}.

1. A−→B por hipotese. Podemos colocar esta formula na sequencia de formulas da prova poisela pertence ao conjunto que aparece antes de `. Ou seja, A−→B pertence a {A−→B,A};

74

Page 79: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

2. A por hipotese, pois A ∈ {A−→B,A};

3. B, MP com 1 e 2. Temos A−→B e A e, portanto, MP pode ser aplicado resultando em B.

Como a ultima formula obtida e B, podemos afirmar que A−→B, A ` B.

Exemplo 9.7. A−→B, B−→C, A ` C

1. A−→B por hipotese;

2. B−→C por hipotese;

3. A por hipotese;

4. B, MP com 1 e 3;

5. C, MP com 2 e 4.

Exemplo 9.8. A−→(B−→C), B, A ` C

1. A−→(B−→C) por hipotese;

2. A por hipotese;

3. B−→C, MP 1 e 2;

4. B por hipotese;

5. C, MP 3 e 4.

Teorema 9.1. (Teorema da Deducao) Considere as formulas A e B e um conjunto de formulasΓ. Se

Γ, A ` Bentao

Γ ` A−→BTomando Γ = ∅, temos que, se A ` B, entao ` A−→B.

Pode-se facilmente provar que o contrario tambem e verdadeiro: seΓ ` A−→B

entaoΓ, A ` B

Logo temos Γ ` A−→B sse Γ, A ` B.

75

Page 80: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Exemplo 9.9. Provaremos que {A−→B,B−→C} ` A−→C. Definindo Γ = {A−→B,B−→C},temos que

Γ ` A−→C se e somente se Γ, A ` Cpelo teorema acima (Γ ` A−→B sse Γ, A ` B com C no lugar de B). Provaremos Γ, A ` C eentao teremos provado Γ ` A−→C (pois e um se e somente se):

1. A, hipotese;

2. A−→B, hipotese;

3. B, MP com 1, 2;

4. B−→C, hipotese;

5. C, MP com 3, 4.

Exemplo 9.10. (a) provamos que A ∨B ` B ∨ A. Entao ` (A ∨B)−→(B ∨ A);

(b) provamos que ¬¬A ` A e A ` ¬¬A. Entao ` ¬¬A−→A e ` A−→¬¬A.

Lema 9.1. Para quaisquer formulas A, B e C, as formulas seguintes sao teoremas do CP:

(a) ¬¬A−→A

(b) A−→¬¬A

(c) ¬A−→(A−→B)

(d) (¬B−→¬A)−→(A−→B)

(e) (A−→B)−→(¬B−→¬A)

(f) A−→(¬B−→¬(A−→B))

(g) (A−→B)−→((¬A−→B)−→B)

9.4 Consideracoes Finais

Os teoremas do calculo proposicional podem ser gerados um a um por um programa de computador.Este programa nao e difıcil de se fazer nem muito grande. Entao todas as “verdades” do CP podemser geradas, uma a uma. E mais ainda, a sintaxe nos permite fazer deducoes de novos teoremasutilizando-se outros teoremas e as regras de deducao. A sintaxe entao e uma ferramenta importantena criacao de “novos” conhecimentos a respeito do CP.

76

Page 81: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Ha outros esquemas de axiomas e regras para o CP. Alguns deles utilizam muito mais esquemasde axiomas. Alguns nao utilizam nenhum axioma mas usam muitas regras.2 Daremos exemplosde outros sistemas formais para o CP:

(a) este sistema formal utiliza os esquemas de axioma A ∨ A−→A, A−→A ∨B, A ∨B−→B ∨ Ae (B−→C)−→(A ∨B−→A ∨ C). A unica regra e MP;

(b) este emprega os esquemas de axiomas A−→(A ∧ A), A ∧ B−→A e (A−→B)−→(¬(B ∧C)−→¬(C ∧ A)) e a regra MP.

9.5 Exercıcios

9.1. Prove que A−→B, B−→C, C−→D, A ` D.

9.2. O que e um teorema?

9.3. Faca uma prova formal dos seguintes teoremas:

(a) ¬¬A−→A

(b) A−→B, B−→C ` A−→C. Utilize o fato “Γ ` A−→B sse Γ, A ` B”.

9.4. O que e uma teoria (sistema formal) decidıvel?

9.5. Se as regras de um sistema formal sempre produzem teoremas de tamanho crescente, o sistemae decidıvel? Explique.

9.6. Diga se os sistemas formais seguintes sao decidıveis ou nao.

(a) os axiomas sao {2, 11}. As regras sao: a) a soma de dois teoremas e teorema; b) a subtracaode dois teoremas e teorema;

(b) os axiomas sao {5, 8}. As regras sao: a) se n e teorema, 2n e teorema; b) se n e m sao teoremas,n+m e teorema;

9.7. Explique o que e uma prova.

9.8. Explique o que e um esquema de axioma. E ¬A ∨ A um axioma?

9.9. Explique o que querem dizer as notacoes seguintes, sendo que A e B sao formulas quaisquere Γ e um conjunto de formulas:

(a) A,B ` A

(b) Γ ` A2Note que isto nao e possıvel com a definicao de sistema formal dada nesta apostila. Mas e possıvel com outra

definicao de sistema formal.

77

Page 82: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

(c) A ` B

(d) A 6` ¬A

(e) `cp A−→A

(f) `T A ∧ ¬A, onde T e uma teoria (sistema formal).

9.10. Prove que se Γ ` A−→B entao Γ, A ` B.

9.11. Quais sequencias de sımbolos abaixo sao formulas do CP?

(a) ¬¬¬¬A−→A ∧ ¬A

(b) ∨ ∧ ABA

(c) ((A1−→A2) ∨ A1

9.12. Considerando que Γ e ∆ sao conjuntos de formulas e A e B sao formulas, prove:

(a) Se ∆ ⊆ Γ e ∆ ` A, entao Γ ` A.

(b) Γ ` A sse3 ha um subconjunto finito ∆ de Γ tal que ∆ ` A.

(c) Se ∆ ` A e, para cada B em ∆ tivermos Γ ` B, entao Γ ` A.

(d) A ` A

(e) Se ` A, entao Γ ` A

(f) Se A ∈ Γ, entao Γ ` A

3se e somente se

78

Page 83: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Unidade 10

Relacao Sintaxe/Semantica

10.1 Primeiras palavras

A sintaxe do calculo proposicional consiste de axiomas e regras que sao utilizados para produzirteoremas. A sintaxe nao considera os teoremas verdadeiros ou falsos. Eles sao apenas sequenciasde sımbolos sem significado algum. A semantica do CP consiste de funcoes de verdade, tabelasverdade e qualquer outro mecanismo para descobrir em que condicoes uma formula e verdadeira.Em particular, estamos interessados em tautologias, que sao formulas que sao sempre verdadeirasindependente do valor das variaveis. Veremos nesta unidade a relacao entre sintaxe e semantica,a relacao entre teoremas e tautologias. Veremos que os axiomas e regras de deducao do calculoproposicional foram feitos para representar a semantica que desejamos. Geralmente escolhemosprimeiro a semantica e depois projetamos o sistema formal que a represente.

10.2 Relacao entre Sintaxe e Semantica

Na Unidade 9 vimos o que e a linguagem do calculo proposicional, o seu axioma e as regras dededucao deste sistema formal. A isto chamamos de sintaxe. A partir do esquema de axioma edas regras conseguimos produzir teoremas. Considerando que o esquema de axioma e as regrasestao muito bem definidos, temos uma definicao precisa do que e um teorema e do que nao e. Porexemplo, ¬¬V1−→V1 e um teorema, como ja foi provado. Por um abuso de linguagem, dizemosque ¬¬A−→A e um teorema, sendo que A e uma meta-formula que pode ser substituıda porqualquer formula do CP. Na verdade, o que queremos dizer e que ¬¬A−→A e um esquema deteorema: substituindo A por qualquer formula do CP, obtemos um teorema. Assim, sao teoremas:¬¬V1−→V1, ¬¬(V1 ∧ V1)−→(V1 ∧ V1) e ¬¬((V1 ∧ V2)−→V1)−→((V1 ∧ V2)−→V1). Um teorema euma formula da linguagem do CP e, de acordo com a definicao dada no inıcio da Unidade 9, podeconter apenas as variaveis V1, V2, ..., alem de ser formada de acordo com regras bem definidas.Apesar dos conectivos logicos basicos terem nomes bem significativos (“negacao” e “ou”), paraa sintaxe estes conectivos nao significam absolutamente nada. Teoremas e mais teoremassao deduzidos sem nunca se utilizar o significado das palavras “negacao” e “ou” em Portugues.Uma formula e teorema porque ela e o resultado de uma prova feita por regras bem definidas, naoporque seja de alguma forma “verdadeira” ou “falsa”.

79

Page 84: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Na Secao 5.3 vimos funcoes de verdade e suas correspondentes tabelas verdade. Para cadaformula do CP pode-se produzir a sua tabela verdade. A semantica do calculo proposicionalassocia a cada formula A um valor que pode ser V para verdadeiro ou F para falso conforme osvalores que se associam as variaveis que aparecem na formula A. Por exemplo, se A=def V1 ∧ V2

e associamos F a V1 e V a V2, entao associamos o valor verdade F a A. Uma formula que assumesempre o valor V, qualquer que seja a associacao de valores para as suas variaveis, e chamada detautologia. Por exemplo, V1−→V1 e uma tautologia:

V1 V1−→V1

V VF V

Novamente, por um abuso de linguagem dizemos que A−→A e uma tautologia. Podemos ateconstruir a tabela verdade deste esquema de formula. A associacao de formulas com os valoresverdade V ou F faz parte da semantica do CP. Os axiomas, regra de deducao e teoremas saoparte da sintaxe. Nao ha teoremas na semantica e nem formulas que sao tautologias na sintaxe.

Entao V1−→V1 e um teorema do CP (sintaxe) e tambem uma tautologia (semantica). Surgeentao uma pergunta: qual a relacao entre sintaxe e semantica? Os teoremas do CP sao obtidos apartir de axiomas e regras e nada tem a ver, aparentemente, com tabelas verdade. Mas, estran-hamente, todos os teoremas do CP apresentados na Unidade 9 sao tautologias. Por exemplo, vejao teorema 9.1 (c):

A B ¬ A −→ (A −→ B)V V F V V V V VV F F V V V F FF V V F V F V VF F V F V F V F

Isto nao e coincidencia. Os axiomas e as regras de deducao de uma logica nao sao feitasaleatoriamente: eles sao projetados justamente para espelhar uma semantica previamente definida.Neste caso, os axiomas e a regra foram projetados justamente para fazerem com que todos osteoremas sejam tautologias. E, como veremos, qualquer tautologia e tambem um teorema.

Em breve estudaremos uma logica mais poderosa chamada de Logica de Primeira Ordem.Com esta logica, podemos expressar, por exemplo, os axiomas da Aritmetica considerando apenasa soma e a subtracao. Chamaremos este sistema de AS. Com estes axiomas e as regras da logica,pode-se expressar todas as verdades que conhecemos de AS. Entao o que se fez foi o seguinte, nestaordem:

1. define-se o que e AS, qual e o vocabulario (numeros, os sımbolos +, −, =, etc), a linguagemque ela utiliza (1+4 = 5 e valido, +1+ nao e) e quais as formulas que devem ser consideradasvalidas. Por exemplo, 1 + 1 = 2 e valido mas 1 + 1 = 3 nao e valido. O que e e o que nao evalido e expresso de maneira informal;

2. baseado no item 1, projetam-se axiomas para uma linguagem de primeira ordem de tal formaque os teoremas do sistema sejam as formulas validas definidas acima. Nao e necessario definir

80

Page 85: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Figura 10.1: Como verdades sao axiomatizadas

nenhuma regra nova, alem daquelas da Logica de Primeira Ordem (pode ser provado que istonao e necessario). Entao utiliza-se os axiomas da Logica de Primeira Ordem (que incluemos axiomas do CP) mais os axiomas definidos neste item;

3. prova-se que o sistema construıdo no item 2 so produz verdades como definido no item 1.Se nao, os axiomas devem ser refeitos para espelhar AS como o conhecemos. Isto seriaequivalente a verificar se todos os teoremas sao tautologias no calculo proposicional. No CP,uma formula sera verdadeira se ela for uma tautologia.

Verifica-se tambem se ha alguma verdade como definida no item 1 que nao possa ser produzidacomo teorema. No calculo proposicional, isto equivale a verificar se toda tautologia e tambemum teorema. E facil verificar que uma formula complexa e uma tautologia, basta produzir atabela verdade, mas provar que uma formula e teorema e em geral difıcil.

E agora, temos um fato surpreendente: todas as verdades do sistema AS podem ser produzidasautomaticamente! Utilizando as regras de inferencia, podemos produzir teoremas. Mas provou-seque os teoremas sao as verdades de AS. Entao as verdades podem ser produzidas automaticamente.Veja o esquema na Figura 10.1.

Agora, para produzir as verdades do AS, so precisamos aplicar as regras de inferencia: todosos teoremas possıveis serao produzidos.

Este e o esquema geral seguido ao criar uma teoria: parte-se de um sistema real, como aaritmetica, a geometria euclidiana, os sistemas vetoriais da algebra, etc e constroem-se axiomasque espelham este sistema. Estes axiomas sao bons quando

(a) todos os teoremas que se podem obter sao verdadeiros no sistema real;

(b) todas as verdades do sistema real sao teoremas.

Chegamos entao a duas importantes perguntas no CP:

(a) todos os teoremas do CP sao tautologias?

(b) todas as tautologias sao teoremas?

A resposta para ambas as questoes e sim, no calculo proposicional. Poderia ser diferente: a)poderiam existir tautologias que nao sao teoremas e b) algum teorema poderia nao ser tautologia.

81

Page 86: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Figura 10.2: Relacoes possıveis entre o conjunto das tautologias e o conjunto dos teoremas

Sintaxe Semanticaaxiomas mundo “real”regras verdadeiroprovas falso

teoremas tautologiassistema formal sımbolos com significado

sımbolos sem significado equivalencia logicaconsequencia logica

Figura 10.3: Comparacao entre sintaxe e semantica

Estas duas situacoes sao representadas na Figura 10.2 onde um cırculo e utilizado para representarum conjunto. Os teoremas sao produzidos por axiomas e regras e e facil de assegurar que todosos teoremas sao tautologias (ou verdadeiros em um certo sentido). Contudo, verificar que todasas tautologias sao teoremas e uma tarefa mais difıcil.

Um quadro comparativo entre sintaxe e semantica e mostrado na Figura 10.3.

A logica e uma forma de produzirmos conhecimento do mundo real de forma automatica.Cuidado deve ser tomado com a palavra automatica: normalmente nos mesmos somos os “com-putadores” e aplicamos as regras da logica para produzir teoremas. Mas esta tarefa poderia serfeita por um computador. Dados os axiomas de um campo, como, por exemplo, da geometriaeuclidiana, um programa de computador poderia ir produzindo todos os teoremas possıveis destageometria. Mas, infelizmente, este programa nao poderia apontar quais sao os teoremas realmenteimportantes e interessantes. Praticamente 100% dos teoremas seriam completamente inuteis. Epreciso um humano para descobrir o que realmente interessa.

Teorema 10.1. (Teorema da Correcao) Cada teorema do CP e uma tautologia.

Prova. Se C e um teorema, entao existe uma sequencia B1, B2, . . . Bn, na qual Bn = C e cada Bi

ou e uma instancia de axioma ou deduzido por uma das regras de deducao um ou dois elementosanteriores da sequencia. Provaremos por inducao que cada Bi e uma tautologia.

O caso base e B1, que so pode ser uma instancia do axioma ¬A ∨ A. Entao B1 e tautologiapois ¬A ∨ A e uma tautologia.

No restante da prova, utilizaremos a seguinte Hipotese de Inducao (HI):HI: Bi e tautologia para i < n.

82

Page 87: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Provaremos que Bn e tautologia. Se Bn e uma instancia do axioma, entao e tautologia. Faltaverificar que, se Bn foi deduzido por uma das regras de deducao (expansao, eliminacao, associa-tividade e corte), Bn e tautologia.

Suponha que:

(a) Bn e Bi ∨B onde B e uma formula qualquer, i < n. Neste caso, Bn foi deduzido utilizando aregra da expansao. Como Bi e tautologia pela HI, claramente Bi ∨B e tautologia tambem;

(b) Bn e A e foi deduzida de uma formula Bi, i < n, pela regra da eliminacao. Neste caso, Bi

e A ∨ A que e tautologia pela HI. Claramente A e tautologia. Se nao fosse, A ∨ A nao seriatautologia tambem. Entao Bn, que e A, e tautologia;

(c) Bn e (A ∨ B) ∨ C e foi deduzida de uma formula Bi, i < n, pela regra da associatividade.Neste caso Bi e A ∨ (B ∨ C) que, pela HI, e tautologia. Temos que provar que (A ∨B) ∨ Ce tautologia. Basta fazer a tabela verdade de A ∨ (B ∨ C)−→(A ∨B) ∨ C. Por esta tabela,esta formula e tautologia. Pela Proposicao 6.1, (A ∨B) ∨ C e tautologia.

(d) Bn e B∨C e foi deduzida de formulas Bi =def A∨B e Bj =def ¬A∨C, i, j < n, pela regra docorte. Pela HI, A∨B e ¬A∨C sao tautologias. Entao (A∨B)∧ (¬A∨C) e uma tautologia(um “e” de duas tautologias so pode ser uma tautologia). Fazendo a tabela verdade de(A ∨ B) ∧ (¬A ∨ C)−→B ∨ C, verificamos que esta formula e uma tautologia (confira!).Entao pela Proposicao 6.1, B ∨ C e tautologia.

Podemos concluir que um teorema qualquer do CP e uma tautologia.

Teorema 10.2. (Teorema da Completude) Se uma formula A do CP e uma tautologia, entao Ae um teorema.1

De fato, ha uma forma mais geral dos dois teoremas dados acima:

Teorema 10.3. Γ � A se e somente se Γ ` A

Γ pode ser infinito. Os teoremas anteriores utilizavam Γ = ∅.

Exemplo 10.1. Vimos no exemplo 9.4 que ¬¬A ` A, isto e, A pode ser provado admitindo-se¬¬A como hipotese. Entao, pelo Teorema 10.3, ¬¬A � A. Isto e, A e uma consequencia logica de¬¬A. Pela Definicao 6.3 de consequencia logica, toda sequencia que satisfaz ¬¬A tambem satisfazA (claramente, apenas s = (V ) satisfaz ¬¬A e A). Entao

� ¬¬A−→A

�1Alguns autores [10] utilizam se e somente se para o teorema da completude, o que equivale a dizer que o teorema

da completude engloba o da correcao.

83

Page 88: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Exemplo 10.2. Sabemos que A∧B−→A∨B e uma tautologia (confira!). Entao podemos escrever

� A ∧B−→A ∨B

Sempre que A ∧ B for V, A ∨ B tambem o sera. Entao qualquer sequencia que satisfaz A ∧ Btambem satisfaz A ∨B. Logo

A ∧B � A ∨B

Pelo Teorema 10.3,A ∧B ` A ∨B

Isto e, existe uma prova de A ∨B utilizando-se A ∧B como hipotese.

Definicao 10.1. Uma teoria2 e consistente se nao existe uma formula A tal que A e ¬A sejamambos teoremas.

Utilizando a notacao `, temos que, se uma teoria e consistente, entao ocorre ` A ou ` ¬A (ounenhum dos dois), mas nao ambos. Uma outra maneira de dizer que uma teoria e consistente, nocaso da logica classica (que engloba o CP), e dizer que existe pelo menos uma formula A que nao eteorema. Isto e, existe pelo menos uma formula A tal que 6` A. Na verdade, se existe uma formulaque nao e teorema entao o sistema e consistente e portanto existem infinitas formulas que nao saoteoremas. Para ver isto, tome uma formula A qualquer. Se A e teorema, ¬A nao e. Entao a partirde qualquer formula podemos obter outra formula que nao e teorema. Como existem infinitasformulas, ha infinitas formulas que nao sao teoremas. Note que podemos ter o caso em que nemA nem ¬A sao teoremas. Neste caso, A nao e tautologia ou contradicao.

Teorema 10.4. O Calculo Proposicional e consistente.

Prova. Suponha que A e ¬A sejam ambos teoremas do CP. Entao, pelo Teorema da Completude,ambas sao tautologias. Absurdo.

A notacao ` A e utilizada para indicar que existe uma prova de A na teoria: A e teorema. Anotacao 6` A e utilizada para indicar que nao ha prova de A na teoria — e impossıvel conseguiruma prova de A. Note que estamos discutindo o Calculo Proposicional e todas as referencias auma teoria referem-se a ele. Assim, ` A quer dizer, de fato, que existe uma prova de A no CP. Sefor necessario ser mais especıfico, pode-se utilizar `CP A.

Se uma teoria e consistente, ha formulas que nao sao teoremas: se ` A, entao 6` ¬A e, se ` ¬A,entao 6` A. Um dos dois nao e teorema e talvez nenhum dos dois o seja. Mas e se tivessemos,no CP, uma formula A tal que ` A e ` ¬A? Entao todas as formulas do CP seriam teoremas! Absolutamente qualquer formula poderia ser deduzida. E facil de ver porque. ¬A−→(A−→B)e um teorema do CP (veja na pagina 76, item (c)). Por MP, obtemos qualquer formula B. Umpouco mais formalmente, temos:queremos provar A,¬A ` B. Entao,

2Utilizamos a palavra teoria especificamente para designar um sistema formal. Logo, o CP e uma teoria.

84

Page 89: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

1. ¬A (Hipotese)

2. ¬A−→(A−→B) (teorema ja provado)

3. A−→B (MP 1, 2)

4. A (Hipotese)

5. B (MP 3, 4)

10.3 Consideracoes Finais

Todo programa toma uma sequencia de bits como entrada e produz uma sequencia de bits comosaıda (mesmo se ele le dados do mouse, acessa a Internet ou o HD, produz sons ou escreve coisasna tela — tudo isto pode ser considerado entrada ou saıda). O que o programador faz ao codificarum programa? Ele produz instrucoes que transformarao a entrada ate que se obtenha a saıda.Dada uma entrada, as instrucoes do programa sao executadas3 pelo computador que nada sabesobre o significado dos bits que manipula. E como se o programa e sua entrada fosse um sistemaformal onde um conjunto de regrinhas sao aplicadas na entrada sistematica e precisamente ateque se produza uma saıda, outra sequencia de bits. O programador sabe o significado dos bits deentrada (a semantica dos bits) e faz com que o programa trabalhe esta semantica durante a suaexecucao. Naturalmente, se o programa possui um erro esta semantica e obviamente violada. Asaıda possui outra semantica associada.

Ao produzir uma entrada para um programa, partimos do mundo real, que e onde as coisaspossuem um significado (semantica) e produzimos uma entrada para o programa. Esta entrada euma ligacao entre o mundo e o formato que o programa espera para esta entrada. Ao executar oprograma, ele produz uma saıda atraves de sucessivas transformacoes desta entrada. Reforcamosque o computador nada conhece do significado dos bits que manipula, exatamente como um sistemaformal (a sintaxe) nada conhece da semantica dos seus sımbolos — os teoremas sao produzidos porregras que independem do mundo real. Reafirmamos que a associacao entre sintaxe e semantica efeita por nos humanos.

Quando o programa para e produz uma saıda, uma sequencia de bits, novamente temos queinterpretar esta saıda e dar-lhe um significado. E exatamente isto que fazemos em logica. A entradacorresponde aos axiomas. O programa corresponde as regras do calculo proposicional, da logicade primeira ordem ou de algum sistema formal. A saıda corresponde aos teoremas. Interpretandoos teoremas, obtemos conhecimento do mundo real.

3Na forma de codigo de maquina e nao no formato original feito em uma linguagem de programacao — mas see uma coisa ou outra e irrelevante neste momento.

85

Page 90: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

10.4 Conexoes com a Computacao

10.4.1 Analise Sintatica e Gramatica da Linguagem do Calculo Proposi-cional

A sintaxe de uma linguagem de programacao e definida por uma gramatica. Pode-se fazer o mesmocom as formulas do Calculo Proposicional. Abaixo apresentamos uma gramatica para formulasvalidas do CP onde Vi e qualquer uma das variaveis V1, V2, . . .

F ::= Vi

F ::= ¬ FF ::= ’(’ F ∨ F ’)’

Uma formula valida no CP pode ser derivada a partir do sımbolo inicial F. Pode-se fazer umanalisador sintatico que reconheca as formulas validas do CP. Um analisador sintatico e a parte deum compilador que verifica se o programa a ser compilado pode ser obtido a partir da gramatica dalinguagem. Um programa em Java deve poder ser obtido a partir de uma gramatica da linguagemJava, por exemplo.

O analisador sintatico que reconhece as formulas validas do CP e o metodo Java analyzeFormulaapresentado abaixo. Assume-se que exista um metodo nextToken na mesma classe que pegue oproximo token e o coloque na variavel de instancia token. Ha uma classe Symbol com uma con-stante para cada token. O metodo error emite uma mensagem de erro e termina o programa.

void analyzeFormula() {

switch ( token ) {

case Symbol.VARIABLE:

nextToken();

if ( token == Symbol.UNDERLINE )

nextToken();

else

error("Underline expected");

if ( token == Symbol.NUMBER )

nextToken();

else

error("number expected");

break;

case Symbol.NEG :

nextToken();

analyzeFormula();

break;

case Symbol.LEFTPARENTHESIS:

nextToken();

analyzeFormula();

if ( token == Symbol.LEFTARROW )

nextToken();

else

86

Page 91: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

error("left arrow expected");

analyzeFormula();

if ( token == Symbol.OR )

nextToken();

else

error("left arrow expected");

}

}

10.4.2 Enumeracao das Formulas do Calculo Proposicional

As formulas do CP podem ser enumeradas. Considere as regras da Secao 3.2 para produzir formulasvalidas do CP. Ha tres regras para produzir formulas: a) Vi e formula; b) (¬A) e formula paraA formula e c) (A ∨ B) e formula para A e B formulas. Pode-se construir um algoritmo queenumere todas as formulas possıveis. Este algoritmo produz a primeira formula pela regra a), asegunda pela formula b), a terceira pela formula c), a quarta pela formula a) e assim por diante.A cada aplicacao da regra b), que exige uma formula ja existente A, produz-se varias formulascorrespondentes a todas as formulas A ja enumeradas. O mesmo se aplica a regra c). Entao aenumeracao das formulas por este algoritmo seria

0 V1

1 ¬V1

2 (V1 ∨ V1)3 (¬V1 ∨ V1)4 (V1 ∨ ¬V1)5 (¬V1 ∨ ¬V1)6 V2

7 ¬V2

8 (V2 ∨ V1). . . . . .

10.4.3 Axiomatizacao do Calculo Proposicional

O calculo proposicional e axiomatizavel; isto e, dada uma formula C, existe um algoritmo quedecide se C e um axioma do CP. Isto pode ser feito de duas formas diferentes:

1. suponha que se deseja saber se C e uma instancia do axioma; isto e, se C e da forma ¬A∨Ano qual A e formula. Podemos enumerar todas as instancias do axioma tomando-se cada umadas formulas do CP4 e substituindo-as por A em ¬A ∨ A. Este procedimento ira enumeraras instancias do axioma. Neste enumeracao, procura-se pela formula C. Quando as formulasdesta enumeracao so puderem ser maiores do que C ou so empregarem variaveis com numerosmaiores do que aqueles utilizados em C, a busca por C pode ser encerrada. Se esta formulanao tiver sido encontrada, nunca mais o sera. Logo, existe um algoritmo que diz se certaformula e um axioma ou nao.

4Veja a subsecao anterior, Enumeracao das Formulas do Calculo Proposicional

87

Page 92: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

2. fazendo-se uma analise sintatica de C utilizando-se as gramaticas do axioma ¬A∨A. A suagramatica e:

A ::= ’(’ ¬ F ∨ F ’)’F ::= Vi

F ::= ¬ FF ::= ’(’ F ∨ F ’)’

O analisador sintatico desta gramatica e facilmente feito utilizando-se uma variacao do metodoanalyzeFormula apresentado na secao 10.4.1.

10.5 Exercıcios

10.1. Podemos utilizar as palavras verdadeiro e falso quando falamos dos teoremas de um sistemaformal; isto e, quando falamos exclusivamente da parte sintatica de uma teoria?

10.2. Ha teorias em que existe uma verdade que nunca e alcancada pelo sistema formal. Isto e,os axiomas e as regras de deducao nunca conseguem produzir algumas formulas que sabemos quesao verdadeiras. Deveriam ser teoremas, mas nao sao. O teorema da completude se aplicaria aum destes sistemas (adaptado a ele, logicamente)?

10.3. Explique o que e sintaxe e o que e semantica de uma teoria (em particular, do CP).

10.4. Explique a relacao entre sintaxe e semantica, em particular em como um sistema formal econstruıdo e como se confere se o sistema e realmente o que querıamos.

10.5. A formula (A−→(B−→C))←→(A ∧B−→C) e tautologia. Prove

A−→(B−→C) ` A ∧B−→C

10.6. Crie um conjunto de formulas inconsistente. Isto e, Γ ` A e Γ ` ¬A.

10.7. Prove que o calculo proposicional e consistente.

88

Page 93: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Unidade 11

Resolucao e Formulas de Horn

11.1 Primeiras palavras

O problema central do calculo proposicional e determinar se uma certa formula se segue logicamentede outras. Isto e, se Γ � A, onde Γ e um conjunto de formulas. Pelo teorema da completude ecorrecao, sabemos que isto acontece se e somente se Γ ` A. Para descobrir se Γ � A, podemosusar tabelas verdade. Se Γ = {A1, A2, . . . An}, fazemos a tabela verdade de A1 ∧A2 ∧ . . . An−→A.Se for tautologia, entao A e consequencia logica de Γ. Para descobrir se Γ ` A, devemos deduzirA a partir de Γ usando os esquemas de axioma e as regras do CP.

11.2 Problematizando o Tema

Contudo, a construcao da tabela verdade e a producao de uma prova sao muito complexos para Γe A de tamanho razoavel. Nesta unidade apresentaremos o metodo da resolucao que diz se Γ ` Aatraves de um algoritmo que e facilmente implementavel em um computador. E muito mais facilde se utilizar manualmente do que a deducao sintatica de A a partir de Γ ou a construcao databela verdade. Contudo, para empregar este metodo, a formula A e as formulas de Γ devem sercolocadas na FNC. Veremos como fazer isto agora.

11.3 Transformacao de formulas para a FNC

Para transformar uma formula para a FNC, pode-se construir a sua tabela verdade e utilizar ometodo apresentado na Unidade 8. Contudo, este metodo e muito trabalhoso. Apresentamos nestasecao um metodo que em geral e mais facil do que este.

O seguinte algortimo transforma uma formula F qualquer em uma formula F ′ na FNC. Ospassos devem ser aplicados inicialmente a F que passa por uma serie de transformacoes sendo quea formula resultante e F ′. Os sımbolos A, B e C representam sub-formulas.

1. substitua todas as ocorrencias de subformulas do tipo A−→B por ¬A ∨ B e todas asocorrencias de A←→B por (¬A ∨B) ∧ (¬B ∨ A).

89

Page 94: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Lembre-se de que formulas na FNC nao utilizam −→ ou ←→;

2. substitua ¬¬A por A;

3. substitua ¬(A ∧ B) por (¬A ∨ ¬B) e ¬(A ∨ B) por (¬A ∧ ¬B). Volte ao passo anterior sealguma negacao dupla (¬¬) apareceu na formula;

4. substitua todas as ocorrencias de (A ∨ (B ∧ C)) ou ((B ∧ C) ∨ A) por ((A ∨B) ∧ (A ∨ C).

A formula final F ′ estara na FNC (conjuncao de disjuncoes). Se no ultimo passo trocarmos(A∧ (B ∨C)) ou ((B ∨C)∧A) por ((A∧B)∨ (A∧C), teremos uma formula na FND (disjuncaode conjuncoes).

Mostraremos agora alguns exemplos de transformacao de formulas para a FNC.

Exemplo 11.1.

1. ¬(A−→B) ∨ C

2. ¬(¬A ∨B) ∨ C

3. (¬¬A ∧ ¬B) ∨ C

4. (A ∧ ¬B) ∨ C

5. (C ∨ A) ∧ (C ∨ ¬B)

Exemplo 11.2.

1. (¬A ∧B) ∨ (A ∧ ¬C)

2. ((¬A ∧B) ∨ A) ∧ ((¬A ∧B) ∨ ¬C)

3. ((A ∨ ¬A) ∧ (A ∨B)) ∧ ((¬C ∨ ¬A) ∧ (¬C ∨B))

4. (A ∨ ¬A) ∧ (A ∨B) ∧ (¬C ∨ ¬A) ∧ (¬C ∨B)

Contudo, este algoritmo pode produzir uma formula exponencialmente maior do que a formulada entrada. Por exemplo, se o algoritmo e aplicado a formula

(A1 ∧B1) ∨ (A2 ∧B2) ∨ . . . (An ∧Bn)

o resultado e

(A1∨A2∨. . . An)∧(A1∨A2∨. . . Bn)∧(A1∨A2∨. . . Bn−1∨An)∧. . . (A1∨B2∨. . . Bn)∧(B1∨B2∨. . . Bn)

Ha n + (n − 1) = 2n − 1 conectivos na formula original e aproximadamente n2n conectivos naformula resultante na FNC. Isto nao e um problema com o algoritmo: algumas formulas possuemformulas na FNC exponenciais, independente do metodo utilizado para consegui-la.

90

Page 95: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

11.4 Algoritmo de Horn

Nesta secao veremos o importante algoritmo de Horn, que verifica se uma formula de Horn esatisfazıvel ou nao. Antes de estudar o algoritmo, e necessario apresentar algumas definicoes.

Nesta secao, as variaveis A, B, C, etc, representam variaveis do Calculo Proposicional. Na secaoanterior, representavam meta-formulas (ou sub-formulas da formula de entrada do algoritmo).

Definicao 11.1. Um literal positivo e um literal sem o sinal de negacao. Ou seja, e uma variavel.Um literal negativo e uma variavel precedida pela negacao.

Entao sao literais positivos A, V1, B. Sao literais negativos: ¬A, ¬V1 e ¬B.

Definicao 11.2. Uma clausula de Horn e uma disjuncao de literais que contem no maximo umliteral positivo.

Sao clausulas de Horn: A, ¬A∨B e ¬A∨¬B∨¬C∨D. Nao sao clausulas de Horn: A∨¬B∨C,¬A ∧ ¬B, A−→B (nao tem disjuncao) e ¬V1 ∨ V2 ∨ V3 ∨ ¬B.

Definicao 11.3. Uma formula de Horn e uma formula na FNC na qual cada disjuncao contemno maximo um literal positivo; isto e, cada disjuncao e uma clausula de Horn.

Exemplo 11.3. (¬A ∨ ¬B ∨ C) ∧ ¬A ∧ (¬D ∨ B) e uma formula de Horn. Ha tres disjuncoes ecada uma delas contem um ou zero literais positivos (a saber, C, nada e B). A formula (¬A ∨¬B ∨¬C)∧¬A∧ (¬D ∨B) tambem e de Horn. Mas as formulas (¬A∨B ∨C)∧¬A∧ (¬D ∨B)e ¬A ∧ (D ∨ B) nao sao de Horn. A primeira formula contem dois literais positivos na primeiradisjuncao (B e C) e a segunda, idem, D e B.

A formula A∧B e de Horn (um literal positivo em cada disjuncao) mas A∨B nao e (ha umaunica disjuncao contendo dois literais positivos).

Uma clausula de Horn pode conter entao zero ou um literal positivo e zero ou mais literaisnegativos (com uma negacao). Entao ha tres tipos de clausulas de Horn:

(a) com literais positivos e negativos, como ¬A∨¬B∨C, ¬C ∨B e A∨¬V1. Este tipo de formulapode ser escrito como uma implicacao — isto e, para cada formula deste tipo existe uma formulalogicamente equivalente que pode ser escrita como uma implicacao do tipo A1∧A2∧. . . An−→B.As formulas logicamente equivalentes aos exemplos deste item sao A ∧ B−→C, C−→B eV1−→A;

(b) apenas com literais negativos, como ¬A ∨ ¬B ∨ ¬C, ¬A e ¬V1 ∨ ¬D. Este tipo de disjuncaopode ser transformado em uma implicacao tambem: A∧B∧C−→ ⊥, A−→ ⊥ e V1∧D−→ ⊥;

(c) apenas com um unico literal positivo, como A, V1 ou D. Este tipo de disjuncao (sim, umliteral sozinho e uma disjuncao) pode ser escrito como >−→A, >−→V1 e >−→D.

Conclusao: toda formula de Horn pode ser escrita como uma conjuncao de implicacoes.

91

Page 96: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

A importancia das formulas de Horn esta em que ha um algoritmo eficiente para descobrir seelas sao satisfazıveis. Isto e, se ha alguma atribuicao de valores verdade para uma formula de Horntal que a formula seja verdadeira. Por exemplo, (¬A ∨B) ∧A ∧ (¬A ∨ ¬B) nao e satisfazıvel. SeA for F , a formula sera falsa por causa da segunda disjuncao, que e apenas “A”. Se A for V , ¬Ae falso e nao importa o valor de B, ou ¬A ∨B ou ¬A ∨ ¬B sera falso.

A formula (¬A ∨ B) ∧ (A ∨ ¬B) e satisfazıvel. Tome A e B como V , por exemplo. Veremosagora o algoritmo de Horn.

Algoritmo 11.1. Algoritmo de Horn [6].

1. Dada uma formula de Horn H, converta-a em uma conjucao de implicacoes. Os passosseguintes do algoritmo irao marcar as variaveis ate que se conclua que a formula e satis-fazıvel ou nao. Inicialmente, considera-se que todas as variaveis tenham o valor F , falso.O algoritmo atribui valores V para algumas variaveis atraves da marcacao — marcar umavariavel e considera-la verdadeira. O algoritmo tenta atribuir V as variaveis de tal formaque todas as implicacoes sejam verdadeiras. Para compreender o algoritmo, lembre-se de queem uma conjuncao X1 ∧X2 ∧ . . . Xm, se um Xi for falso, toda a formula e falsa. E em umadisjuncao Y1 ∨ Y2 ∨ . . . Ym, se um Yi for verdadeiro, toda a formula e verdadeira;

2. marque A em uma sub-formula do tipo >−→A. Repita este passo enquanto existirem sub-formulas de H deste tipo. Uma formula deste tipo so pode ser verdadeira se A for V (peladefinicao de −→);

3. se tivermos A1 ∧ A2 ∧ . . . An−→B com todos os Ai marcados e B nao marcado, marque B.Repita este passo enquanto existirem sub-formulas deste tipo. Claramente, se todos os Ai

tiverem o valor verdade V , entao B devera ser V tambem para que A1 ∧ A2 ∧ . . . An−→Bseja verdadeira;

4. se tivermos uma sub-formula A1 ∧ A2 ∧ . . . An−→ ⊥ na qual cada Ai foi marcado, entaoH nao e satisfazıvel. Caso contrario; isto e, todas as sub-formulas nao forem desta forma,H e satisfazıvel. Se todos os Ai forem V , teremos >−→ ⊥, o que torna a sub-formulafalsa e a formula toda falsa (insatisfazıvel entao). Se em todas as sub-formulas do tipoA1 ∧ A2 ∧ . . . An−→ ⊥ tivermos pelo menos um Ai nao marcado (falso), entao teremos⊥ −→ ⊥, cujo valor verdade e V .

Exemplo 11.4. Iremos aplicar o algoritmo de Horn na formula (¬A∨¬B∨C)∧¬B∧C, colocandoum traco horizontal sobreescrito sobre as variaveis que ja foram marcadas.

1. (¬A ∨ ¬B ∨ C) ∧ ¬B ∧ C

2. (A ∧B−→C) ∧ (B−→ ⊥) ∧ (>−→C), convertemos para conjuncao de implicacoes;

3. (A ∧ B−→C) ∧ (B−→ ⊥) ∧ (>−→C), usamos o passo 2 do algoritmo. Neste ponto, oalgoritmo nao pode fazer mais nada pois o passo 3 nao se aplica a nenhuma sub-formula. Etemos uma sub-formula B−→ ⊥ na qual B nao foi marcado. Entao a formula e satisfazıvel.

92

Page 97: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Exemplo 11.5. E C ∧ (¬C ∨ A ∨ ¬D) ∧ (D ∨ ¬C) ∧ (¬A ∨ ¬B) satisfazıvel? Vejamos:

1. (>−→C) ∧ (C ∧D−→A) ∧ (C−→D) ∧ (A ∧B−→ ⊥)

2. (>−→C) ∧ (C ∧D−→A) ∧ (C−→D) ∧ (A ∧ B−→ ⊥), passo 2 com >−→C. Como nao hamais formulas deste tipo, prosseguimos para o passo 3;

3. (>−→C) ∧ (C ∧D−→A) ∧ (C−→D) ∧ (A ∧B−→ ⊥), passo 3 com C−→D;

4. (>−→C) ∧ (C ∧D−→A) ∧ (C−→D) ∧ (A ∧B−→ ⊥), passo 3 comC ∧D−→A. Como nao ha mais formulas deste tipo, prosseguimos para o passo 4;

5. neste ponto nao ha formula do tipo A1 ∧ A2 ∧ . . . An−→ ⊥ no qual cada Ai foi marcado.Entao a formula e satisfazıvel pelo passo 4.

Note que este ultimo passo ja nos da uma indicacao do valor verdade de B para que a formulaseja verdadeira. B deve ser falso. Se for V , A ∧ B−→ ⊥ sera falso e toda a formula sera Ftambem. C deve ser V pela formula, >−→C, D deve ser V por C−→D e A tambem deve ser Vpor C ∧D−→A.

Nao apresentaremos aqui a prova de que este algoritmo funciona. A prova nao e difıcil, masnao e adequada para um curso inicial de logica.

11.5 O Algoritmo da Resolucao

Resolucao e um algoritmo que dada uma formula na FNC, descobre se ela e satisfazıvel ou nao. Aocontrario do algoritmo de Horn, resolucao funciona com formulas quaisquer na FNC. Contudo, oalgoritmo pode demorar um tempo exponencial no tamanho da formula.1 O algoritmo da resolucaotambem e chamado de “metodo da resolucao”.

Definicao 11.4. Uma disjuncao de literais e uma clausula.

Representaremos clausulas por conjuntos. As clausulas A∨¬B, D, ¬A∨¬B ∨C e ¬V1 ∨¬V2,por exemplo, serao representadas pelos conjuntos {A,¬B}, {D}, {¬A,¬B,C} e {¬V1,¬V2}. Arepresentacao por conjuntos abstrai a ordem dos literais na formula: o conjunto {A,¬B} representatanto a formula A∨¬B tanto quanto ¬B∨A. Mas isto nao e importante nesta secao pois todas asformulas que possuem a mesma representacao por conjuntos sao equivalentes logicamente. Nesteexemplo, A ∨ ¬B ≡ ¬B ∨ A.

Representaremos formulas na FNC por conjuntos tambem. Assim, a formula na FNC(A ∨ ¬A) ∧ (A ∨B) ∧ (¬C ∨ ¬A) ∧ (¬C ∨B)

sera representada por {{A,¬A}, {A,B}, {¬C,¬A}, {¬C,B}}.

O algoritmo da resolucao utiliza duas regras apenas para descobrir se uma formula e satisfazıvelou nao:

1O algoritmo de Horn sempre toma um tempo polinomial no tamanho da formula. A definicao precisa do quee “tempo de execucao de um algoritmo” nao sera dada aqui mas pode ser encontrada em livros sobre algoritmos eteoria da computacao, por exemplo, [5].

93

Page 98: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

(a) Ai pode ser deduzido de A1 ∧A2 ∧ . . . An, onde cada Ai e uma formula qualquer — no caso doalgoritmo, Ai sera sempre uma clausula, disjuncao de literais. Semanticamente, isto e claro.Se A1 ∧ A2 ∧ . . . An e verdadeiro, entao cada um dos Ai deve ser verdadeiro tambem;

(b) regra do corte (pagina 71): de A ∨B e ¬A ∨ C deduzimos B ∨ C.

Na regra do corte, as variaveis B e C podem ser substituıdas por disjuncoes quaisquer. Entaode A ∨ B1 ∨ B2 ∨ . . . Bn e ¬A ∨ C1 ∨ C2 ∨ . . . Cm deduzimos B1 ∨ B2 ∨ . . . Bn ∨ C1 ∨ C2 ∨ . . . Cm.Como a ordem dos literais nao importa neste caso, de B ∨A e C ∨¬A pode-se deduzir B ∨C (ouC ∨B). E por causa disto que representamos clausulas por conjuntos: a ordem nao importa parao algoritmo da resolucao (e para a equivalencia logica).

Definicao 11.5. Dados dois conjuntos U e W representando duas clausulas tais que A ∈ U e¬A ∈ W , chamamos R = (U − {A}) ∪ (W − {¬A}) de resolvente de U e W .

O resolvente e exatamente a formula obtida pela regra do corte. Entao dados A∨B e ¬A∨C,o resolvente e B ∨C. Estamos considerando uma formula e sua representacao por conjuntos comosendo a mesma coisa — entao podemos utilizar “resolvente” para formulas tambem. Em termosde conjuntos, o resolvente de {A,B} e {¬A,C} e {B,C}.

Exemplo 11.6. Calcularemos os resolventes de {¬A,B,C} e {A,B,¬C}. O resolvente e calculadosimplesmente eliminando-se uma variavel e sua negacao de cada um dos conjuntos e unindo-os.Entao temos dois resolventes:

1. {B,C} ∪ {B,¬C} = {B,C,¬C}, eliminando-se A e ¬A;

2. {¬A,B} ∪ {A,B} = {¬A,B,A}, eliminando-se C e ¬C.

Conclui-se de que o resolvente nao e unico para duas formulas. Note que, tanto sintatica quantosemanticamente, a formula resultante pode ser deduzida das formulas originais:

{¬A ∨B ∨ C,A ∨B ∨ ¬C} ` B ∨ C ∨ ¬C

{¬A ∨B ∨ C,A ∨B ∨ ¬C} ` ¬A ∨B ∨ A

{¬A ∨B ∨ C,A ∨B ∨ ¬C} � B ∨ C ∨ ¬C

{¬A ∨B ∨ C,A ∨B ∨ ¬C} � ¬A ∨B ∨ A

A prova destes fatos nao sera dada aqui.

Exemplo 11.7. O resolvente de {A} e {¬A} e {}, o conjunto vazio ∅. Isto significa que tudo podeser deduzido a partir destes dois conjuntos, pois A ∧ ¬A e uma contradicao e de uma contradicaotudo se segue. Isto e, A∧¬A−→B, qualquer que seja B. Confira a tabela verdade da implicacao.

Dada uma formula na FNC, podemos representa-la por um conjunto de conjuntos S = {U1, U2,. . . , Uk}. O conjunto S representa uma conjuncao das formulas correspondentes a Ui. Se usarmos

94

Page 99: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

S ou Ui para representar conjuntos e tambem para formulas, temos que Ui pode ser deduzido deS. Isto e,

S � Ui

ouU1 ∧ U2 ∧ . . . Uk � Ui

para todo i entre 1 e k.

Um resolvente R de dois conjuntos Ui e Uj tambem pode ser deduzido destas duas formulas:

Ui ∧ Uj � R

Consequentemente, R pode ser deduzido de U1 ∧ U2 ∧ . . . Uk. Afinal, se R so depende de Ui e Uj,acrescentar mais premissas, os outros conjuntos, nao vai alterar em nada o resultado. Entao

S � R

Note que esta e uma explicacao intuitiva, nao uma prova formal. Continuemos.

Ja que R pode ser deduzida a partir de S e R e uma clausula, podemos adiciona-lo em S econtinuar a procura por resolventes. A cada resolvente encontrado, podemos acrescenta-lo a S, quecresce com a adicao destes novos conjuntos. Veja a dinamica do processo no qual os resolventesreceberam nomes R1, R2, . . .:

S � R1

S ∪R1 � R2

S ∪R1 ∪R2 � R3

. . .S ′ � Rp

Aqui usamos � mas poderıamos ter utilizado ` tambem.

Cada resolvente Rj pode ser deduzido do conjunto S ∪ R1 ∪ R2 ∪ . . . Rj−1. Como cada Ri,1 6 i < j pode ser deduzido a partir de S, entao Rj pode ser deduzido a partir de S tambem(pode-se fazer uma prova por inducao desta afirmacao).

Este processo termina sempre pois a formula original e finita e o numero de resolventes quepodemos obter dela tambem e obviamente finito. Suponha que a formula S tenha se transformadoem S ′ (pela adicao dos Ri) e que o ultimo resolvente seja Rp (encontramos um numero p deresolventes).

Se houver um resolvente Rj que e o conjunto vazio entao ele so pode ter sido obtido atravesde dois conjuntos do tipo {A} e {¬A}. Esta e a unica maneira de se obter um resolvente vazio.Mas o que isto significa? Significa que tanto A como ¬A podem ser deduzidos a partir de S (todosos resolventes podem ser obtidos do conjunto S original) e portanto A ∧ ¬A tambem pode serdeduzido de S:

S � A ∧ ¬A

Deduzimos uma contradicao de S e entao S e insatisfazıvel. Nenhum conjunto de valores podeser dado as variaveis que aparecem em S de tal forma que S (considerada como formula) sejaverdadeiro. Vejamos um exemplo.

95

Page 100: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Figura 11.1: Resolucao aplicado a {{A,¬C}, {¬B,C}, {B,D}, {B,¬D}, {¬A}}

Exemplo 11.8.S = (A ∨ ¬C) ∧ (¬B ∨ C) ∧ (B ∨D) ∧ (B ∨ ¬D)

Transformamos esta formula em diversos conjuntos separados por vırgulas:

{{A,¬C}, {¬B,C}, {B,D}, {B,¬D}, {¬A}}

Representaremos cada clausula por um no de uma arvore como indicado na Figura 11.1. Umresolvente R deduzido de X e Y e colocado visualmente abaixo destas formulas. Ha linhas entreR e X e R e Y . Confira na Figura que {A,¬B} e o resolvente de {A,¬C} e {¬B,C}.

Ha um outro modo de representar graficamente este algoritmo. A cada passo, acrescentaremosum resolvente no inıcio da lista de clausulas obtido das clausulas indicadas por uma chave sobre-escrita.

{A,¬B},︷ ︸︸ ︷{A,¬C},

︷ ︸︸ ︷{¬B,C}, {B,D}, {B,¬D}, {¬A}

{B}, {A,¬B}, {A,¬C}, {¬B,C},︷ ︸︸ ︷{B,D},

︷ ︸︸ ︷{B,¬D}, {¬A}

{A},︷︸︸︷{B},

︷ ︸︸ ︷{A,¬B}, {A,¬C}, {¬B,C}, {B,D}, {B,¬D}, {¬A}

{},︷︸︸︷{A}, {B}, {A,¬B}, {A,¬C}, {¬B,C}, {B,D}, {B,¬D},

︷ ︸︸ ︷{¬A}

Como {} foi obtido, S e insatisfazıvel.

O segundo modo, nao grafico, e mais facil de se escrever. Mas o primeiro, visual, e mais facilde entender.

Exemplo 11.9.S = (A ∨ ¬B) ∧ (¬A ∨B ∨ C)

{A,¬B}, {¬A,B,C}

{¬B,B,C},︷ ︸︸ ︷{A,¬B},

︷ ︸︸ ︷{¬A,B,C}

{A,¬B,C},︷ ︸︸ ︷{¬B,B,C},

︷ ︸︸ ︷{A,¬B}, {¬A,B,C}

96

Page 101: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Figura 11.2: Resolucao aplicado a {{A,¬B}, {¬A,B,C}}

O leitor pode confirmar que todas as tentativas de conseguir um novo resolvente resultam em umaclausula que ja foi obtida. Como o conjunto vazio nao esta nos conjuntos da ultima linha,

{A,¬B,C}, {¬B,B,C}, {A,¬B}, {¬A,B,C}

concluimos que S e satisfazıvel.

A execucao deste algoritmo tambem e mostrada na Figura 11.2.

Apresentamos informalmente o algoritmo da resolucao nos exemplos acima, sem avisar o leitorpreviamente desta apresentacao. O definiremos mais formalmente agora.

Algoritmo 11.2. Algoritmo da Resolucao.

Seja S um conjunto de conjuntos U1, U2, . . . Uk obtidos de uma formula na FNC. O algoritmoda resolucao constroi uma sequencia S0, S1, S2, . . . Sn de conjuntos, com S0 = S, sendo que cadaconjunto Si+1 e obtido do anterior pela inclusao dos resolventes do conjunto anterior, Si. Oalgoritmo para quando Si = Si−1; isto e, nao foi possıvel acrescentar nenhum resolvente novo aoconjunto Si. Chamaremos este conjunto Si final de S?. Este conjunto contem todos os resolventespossıveis tomando-se S como premissas.

Em pseudo-codigo, o algoritmo e

Algoritmo Resoluc~ao(S)

S0 = Si = 0faca

Si+1 = Si ∪ {R : R e resolvente de duas clausulas de Si}i = i+ 1

enquanto Si 6= Si−1

Veremos mais um exemplo do algoritmo da resolucao.

Exemplo 11.10.

S = (B ∨ ¬A) ∧ (A ∨ ¬C) ∧ (¬D ∨ C) ∧ (D ∨ C) ∧ (¬C ∨ ¬B)

97

Page 102: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Figura 11.3: Resolucao aplicado a {{B,¬A}, {A,¬C}, {¬D,C}, {D,C}, {¬C,¬B}}

convertendo para conjunto, temos

S = {{B,¬A}, {A,¬C}, {¬D,C}, {D,C}, {¬C,¬B}}

A execucao deste algoritmo e mostrada graficamente na Figura 11.3. E textualmente abaixo.

{B,¬A}, {A,¬C}, {¬D,C}, {D,C}, {¬C,¬B}

{C}, {B,¬A}, {A,¬C},︷ ︸︸ ︷{¬D,C},

︷ ︸︸ ︷{D,C}, {¬C,¬B}

{A},︷︸︸︷{C}, {B,¬A},

︷ ︸︸ ︷{A,¬C}, {¬D,C}, {D,C}, {¬C,¬B}

{B},︷︸︸︷{A}, {C},

︷ ︸︸ ︷{B,¬A}, {A,¬C}, {¬D,C}, {D,C}, {¬C,¬B}

{¬B}, {B}, {A},︷︸︸︷{C}, {B,¬A}, {A,¬C}, {¬D,C}, {D,C},

︷ ︸︸ ︷{¬C,¬B}

{},︷ ︸︸ ︷{¬B},

︷︸︸︷{B}, {A}, {C}, {B,¬A}, {A,¬C}, {¬D,C}, {D,C}, {¬C,¬B}

Proposicao 11.1. No algoritmo da resolucao aplicado a uma formula S, temos que {} ∈ S? se esomente se S e insatisfazıvel.

Nao provaremos esta proposicao.

Uma das principais questoes da logica e descobrir se uma formula B e consequencia logica deum conjunto de finito de formulas Γ. Esta questao pode ser resolvida usando resolucao. Vejamoscomo.

Considere Γ = {A1, A2, . . . An}. Queremos saber se Γ � B. Isto e equivalente a

A1 ∧ A2 ∧ . . . An � B (11.1)

que e equivalente a� A1 ∧ A2 ∧ . . . An−→B (11.2)

O que e equivalente a provar que A1 ∧ A2 ∧ . . . An−→B e uma tautologia. Mas provar que X etautologia e a mesma coisa que provar que ¬X e contradicao e, portanto, insatisfazıvel. Entao

98

Page 103: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

podemos utilizar o algoritmo da resolucao para verificar se ¬(A1∧A2∧ . . . An−→B) e insatisfazıvel(contradicao). Se for, entao A1 ∧A2 ∧ . . . An−→B e tautologia e portanto temos as formulas 11.2e 11.1. Colocando estas observacoes em forma de Proposicao, temos:

Proposicao 11.2. Considerando Γ = {A1, A2, . . . An}, sao equivalentes:

Γ � B (1)A1 ∧ A2 ∧ . . . An � B (2)� A1 ∧ A2 ∧ . . . An−→B (3){} ∈ S? (4)Γ ` B (5)A1 ∧ A2 ∧ . . . An ` B (6)` A1 ∧ A2 ∧ . . . An−→B (7)

S e a formula ¬(A1 ∧ A2 ∧ . . . An−→B) na FNC.

Note que poderıamos ter escrito FNC(¬(A1∧A2∧ . . . An−→B))? no lugar de S?, considerandoFNC(X) como a formula equivalente logicamente a X na FNC.

Demonstracao. Pelos teoremas da completude e correcao (10.2, 10.1) as equacoes (1), (2) e (3)sao equivalentes as equacoes (5), (6) e (7), respectivamente. Temos (1) se e somente se (4) pelaProposicao 11.1. Assim todas as equacoes sao equivalentes entre si.

Vejamos um exemplo de uso da resolucao em que a palavra “ou” deve ser entendida no sentidoda logica matematica, nao no sentido usual da palavra em portugues.

Exemplo 11.11. Considere os seguintes fatos:

1. Joao gosta de pizza ou gosta de futebol;

2. Se Joao nao gosta de Maria, entao Joao nao gosta de pizza ;

3. Joao nao gosta de futebol e Joao nao mora em Sao Paulo.

Pergunta-se: Joao gosta da Maria?

Vamos colocar as afirmacoes acima em formato de variaveis do calculo proposicional:

1. A e “Joao gosta de pizza”

2. B e “Joao gosta de futebol”;

3. C e “Joao mora em Sao Paulo”;

4. D e “Joao gosta de Maria”.

Considera-se que todos os fatos acima sejam verdadeiros. Entao um “e” destes fatos e verdadeiro;isto e,

S = (A ∨B) ∧ (¬D−→¬A) ∧ (¬B ∧ ¬C)

e verdadeiro. Queremos saber se esta formula implica D, que significa “Joao gosta de Maria”. Haduas formas de fazer isto:

99

Page 104: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Figura 11.4: Resolucao aplicado a {{B,D}, {A,B}, {¬A,D}, {¬B}, {¬C}, {¬D}}

1. tentar encontrar D aplicando resolucao em S. Se encontrarmos, entao S−→D. Vejamos:

(A ∨B) ∧ (¬D−→¬A) ∧ (¬B ∧ ¬C)(A ∨B) ∧ (¬D−→¬A) ∧ ¬B ∧ ¬C(A ∨B) ∧ (¬¬D ∨ ¬A) ∧ ¬B ∧ ¬C(A ∨B) ∧ (D ∨ ¬A) ∧ ¬B ∧ ¬C{A,B}, {¬A,D}, {¬B}, {¬C}

{B,D},︷ ︸︸ ︷{A,B},

︷ ︸︸ ︷{¬A,D}, {¬B}, {¬C}

{D},︷ ︸︸ ︷{B,D}, {A,B}, {¬A,D},

︷ ︸︸ ︷{¬B}, {¬C}

Como D pode ser deduzido por resolucao a partir de S, temos que S � D

2. queremos saber se S−→D. Basta converter a formula ¬(S−→D) para FNC e aplicar oalgoritmo da resolucao. E o que fazemos abaixo.

¬(S−→D)¬(¬S ∨D)¬¬S ∧ ¬DS ∧ ¬D(A ∨B) ∧ (D ∨ ¬A) ∧ ¬B ∧ ¬C ∧ ¬D{B,D}, {A,B}, {¬A,D}, {¬B}, {¬C}, {¬D}

A execucao deste algoritmo e mostrada graficamente na Figura 11.4. E textualmente abaixo.

{B,D},︷ ︸︸ ︷{A,B},

︷ ︸︸ ︷{¬A,D}, {¬B}, {¬C}, {¬D}

{D},︷ ︸︸ ︷{B,D}, {A,B}, {¬A,D},

︷ ︸︸ ︷{¬B}, {¬C}, {¬D}

{},︷︸︸︷{D}, {B,D}, {A,B}, {¬A,D}, {¬B}, {¬C},

︷ ︸︸ ︷{¬D}

Como obtemos {}, a formula ¬(S−→D) e insatisfazıvel e portanto S−→D e tautologia. Oque significa que S implica logicamente em D.

100

Page 105: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Esta ultima forma e mais geral do que a primeira pois pode ser aplicado a quaisquer formulas.Por exemplo, podemos utiliza-la para descobrir se “Se Joao mora em Sao Paulo, entao Joao naogosta de pizza”. Esta frase e C−→¬A. Queremos saber se S−→(C−→¬A) e tautologia; isto e,se ¬(S−→(C−→¬A)) e insatisfazıvel. Agora e so converter esta formula para a FNC e aplicar aresolucao.

11.6 Conexoes com a Computacao

O algoritmo da resolucao vista nesta Unidade se aplica a formulas do Calculo Proposicional. Haum tipo mais geral deste algoritmo, a resolucao de primeira ordem, que nao sera visto aqui. Alinguagem Prolog utiliza resolucao em um tipo especial de formula, a formula de Horn de primeiraordem.

11.7 Consideracoes Finais

O algoritmo da resolucao pode ser aplicado a qualquer formula na FNC para descobrir se ela esatisfazıvel ou nao. Para descobrir se Γ � B, com Γ finito, Γ = {A1, A2, . . . An}, podemos obteruma formula na FNC equivalente a ¬(A1 ∧ A2 ∧ . . . An−→B) e aplicar o algoritmo da resolucao.Se a resposta foi “a formula e satisfazıvel”, entao B e consequencia logica de Γ.

O algoritmo da resolucao pode tomar um tempo exponencial no tamanho da formula da entrada(nao definiremos precisamente os termos. Assuma que este algoritmo e inviavel para entradas muitograndes). O algoritmo de Horn toma um tempo polinomial no tamanho da entrada. Novamente,apenas assuma que este algoritmo pode ser utilizado na pratica sem problemas. Contudo, estealgoritmo so pode ser aplicado a formulas que sao conjuncoes de formulas do tipo A1 ∧ A2 ∧. . . An−→B, ¬(A1 ∧ A2 ∧ . . . An) e B.

O ponto mais importante do algoritmo de Horn e da resolucao e que eles nao dependem decriatividade para se chegar a uma resposta. A deducao de uma formula por meio das regras dededucao apresentadas na Unidade 9 e difıcil. Depende da criatividade do leitor. Os algoritmosde Horn e da resolucao sao muito mais simples de usar. E facilmente implementaveis por umprograma de computador.

11.8 Exercıcios

11.1. Transforme as seguintes formulas para a FNC.

(a) (A ∧B) ∨ (¬C ∧ A)

(b) (¬A−→B) ∨ (¬B−→C)

(c) (¬A−→B) ∨ (¬B−→C) ∨ (A ∧B)

(d) (A ∧B) ∨ (C ∧D)

101

Page 106: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

(e) (A←→¬B)−→(¬A ∨B)

11.2. Joao e paranaense ou Joao nao e advogado. Joao nao mora na Russia. A esposa de Joaonao estuda Computacao ou nao cozinha. A esposa de Joao cozinha ou Joao nao e paranaese.Pergunta-se: estes fatos sao satisfazıveis? Use o algoritmo de Horn.

11.3. Hoje e quinta-feira ou sexta-feira. Como hoje nao e sexta-feira, entao e quinta-feira. Proveusando resolucao.

11.4. E ((C ∧ ¬D) ∧ A)−→(C ∨ D ∨ A) uma tautologia? Justifique a sua afirmacao usandoresolucao.

11.5. Prove que A ` A ∨ A. Use resolucao.

11.6. Prove que {A ∨B,A−→C,B−→D} � C ∨D. Use resolucao.

11.7. Considere os seguintes fatos:

1. Joao gosta de pizza ou gosta de futebol;

2. Joao tem curso superior e Joao mora em Sao Paulo;

3. Se Joao gosta de futebol entao Joao e Sao Paulino;

4. Se o pai de Joao e Palmeirense, entao Joao e Palmeirense;

5. Joao nao tem curso superior ou o pai de Joao e Palmeirense;

6. Se Joao nao gosta de Maria, entao Joao nao gosta de pizza ou Joao nao tem curso superior;

7. Se Joao e Palmeirense entao ele nao e Sao Paulino.

Pergunta-se: Joao gosta da Maria?

11.8. Prove que (A−→B) ∧ (B−→C)−→(A−→C) e tautologia usando resolucao.

11.9. Prove que {¬A−→(B−→C),¬A,B} ` C usando resolucao.

11.10. E verdade que A−→(B−→¬C), C ` ¬A ∨ ¬B? Responda sim ou nao usando resolucao.

11.11. Utilize o algoritmo de Horn para verificar se a formula (¬A∨B ∨¬C)∧ (¬B ∨C)∧¬A esatisfazıvel.

102

Page 107: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Unidade 12

Logica de Primeira Ordem

12.1 Primeiras palavras

Esta Unidade apresenta a Logica de Primeira Ordem (LPO), uma logica muito mais poderosa doque o calculo proposicional. Por exemplo, com ela pode-se expressar quase toda a Matematica.Apesar do CP ser suficiente para implementar um computador, a LPO e necessaria em modelagensdo mundo real. E o seu estudo e importante para a compreensao de outras logicas utilizadas emComputacao.

12.2 Problematizando o Tema

O calculo proposicional nao e capaz de representar proposicoes (afirmacoes) sobre conjuntos deelementos. Por exemplo, nao e possıvel representar a frase “todo numero natural divisıvel por 4e divisıvel por 2” no CP. A palavra “todo” nao tem correspondente no CP. E observe que estapalavra se refere a todos os numeros naturais, um conjunto.

Para possibilitar a expressao deste tipo de proposicao foi criada a Logica de Primeira Ordem(LPO). Ela possui sımbolos para expressar “todo” e “existe um”, sempre se referindo a elementosquaisquer de um conjunto. Deste modo pode-se representar quase toda a Matematica atraves deformulas da LPO.

12.3 Introducao

Ha inumeras proposicoes sobre a Matematica e sobre o mundo que nao podem ser expressas nocalculo proposicional. Por exemplo, nao podemos expressar as seguintes proposicoes:

1. todos os homens sao primatas;

2. todos os primatas sao mamıferos;

3. existe um homem que nao e inteligente;

103

Page 108: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

4. para todo x, se x e ımpar entao x+ 1 e par;

5. existe um numero primo maior do que 101000;

6. para qualquer numero, existe sempre um numero maior do que ele.

Estas proposicoes consideram que: a) todos os membros de um certo conjunto possuem certapropriedade ou b) um membro de um conjunto possui certa propriedade. Para expressar estasproposicoes podemos utilizar a Logica de Primeira Ordem (LPO). Esta logica utiliza os conectivos∀ (le-se “para todo”) e ∃ (le-se “existe”). Certamente esta logica nao e suficiente para expressaras todas verdades do mundo, mas e suficiente para praticamente toda a Matematica.

Como exemplo, expressaremos as proposicoes acima na linguagem da Logica de Primeira Or-dem:

1. ∀x (H(x)−→P (x)), na qual P (x) indica que “x e um primata” e H(x) indica que “x e umhomem”. Considere que x assume os elementos do conjunto de todos os animais (poderiaser de todas as coisas);

2. ∀x (P (x)−→M(x)), na qual M(x) e “x e mamıfero”. Considere que x assume os elementosdo conjunto de todos os animais (poderia ser de todas as coisas);

3. ∃x¬I(x), na qual I(x) e “x e inteligente”. Considere que x assume os elementos do conjuntoque contem todos os homens. Se considerarmos que x assume os elementos do conjunto detodos os animais ou todas as coisas, esta formula deveria ser ∃x H(x) ∧ ¬I(x);

4. ∀x (I(x)−→P (x+ 1)), na qual I(x) e “x e ımpar” e P (x) e “x e par”. x assume os numerosNaturais;

5. ∃x (P (x) ∧ (x > 101000)), na qual P (x) e “x e primo”. x assume os numeros Naturais;

6. ∀x (∃y (x < y)). Note que a formula ∃y (∀x (x < y)), com ∃y e ∀x trocados de lugar, nao fazmuito sentido se considerarmos que x e y assumem os elementos do conjunto dos Naturaisou Reais. Esta formula diz que existe um y maior do que qualquer x do conjunto;

Observacao importante: Os sımbolos H, P , M e I sao chamados de sımbolos de predi-cados quando aparecem em uma formula logica. Mas logo depois da formula, damos o seusignificado, que e uma interpretacao dos sımbolos, que propriedade eles se referem. Neste pontochamamos estes sımbolos de predicados e dado um x especıfico, eles sao verdadeiros oufalsos. Como veremos, os sımbolos de predicado existem apenas nas formulas, fazem parte dalinguagem da Logica de Primeira Ordem. Ja o significado dos predicados pertence a interpretacaoda formula, um conceito semantico. Os valores que x pode assumir sao os do conjunto que edescrito depois da formula. No primeiro exemplo, x pode assumir qualquer elemento do conjuntode todos os animais. Entao dado um animal x especıfico, como “macaco”, poderıamos verificar seP (x) e verdadeiro ou falso. Neste caso, verdadeiro. Se x fosse “Amphiprion ocellaris” (um peixe,o nemo), entao P (x), que e P (Amphiprion ocellaris), seria falso.

Tome o primeiro exemplo,

104

Page 109: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

∀x (H(x)−→P (x)), na qual P (x) indica que “x e um primata” e H(x) indica que “xe um homem”. Considere que x assume os elementos do conjunto de todos os animais(poderia ser de todas as coisas).

A indicacao de quais elementos x pode assumir, como “todos os animais”, tambem pertence asemantica. Para nao confundir estes conceitos, montamos uma tabela:

Sintaxe Semanticaformula interpretacao da formula em um certo contextosem significado com significadoP e H sao sımbolos de predicados P e H sao predicadosP e H sao apenas sımbolos sem significado P (x) indica que “x e um primata”

e H(x) indica que “x e um homem”.nao ha conjunto associado aos valores de x x assume os elementos do conjunto de todos

os animais

Note que utilizamos o mesmo nome P , para sımbolo de predicado e predicado, doisconceitos diferentes.

Estude detalhadamente esta tabela. Senao voce certamente ira confundir sintaxe/semantica.Lembre-se do Calculo Proposicional: a sintaxe consistia da linguagem, dos axiomas, da regra dededucao MP. Nao ha nenhum significado associado a uma formula como A−→A. Na semantica,construımos tabelas verdade para verificar quando a formula poderia ser valida. A formula A−→Ae sempre verdadeira. Mas A−→B so sera V quando A for F ou B for V. Entao na semanticaassociamos o significado de V ou F a formulas. Na sintaxe, nao.

Note que poderıamos ter associado outra interpretacao a formula ∀x (H(x)−→P (x)). O pred-icado H poderia ser “x e brasileiro” e P poderia ser “x e sul-americano”. Temos tambem quedizer o conjunto a que x se refere. Neste caso, poderia ser “o conjunto dos seres humanos”. Voceescolhe o significado dos predicados e o conjunto a que os x se refere.

Outros exemplos? Montaremos uma tabela, com uma linha para cada exemplo:

Significado de H(x) Significado de P (x) conjunto que x pode assumirx e peixe marinho x sabe nadar todos os animaisx e divisıvel por quatro x e par naturais (N)x e mineiro x e brasileiro todos os sul-americanosx e mineiro x e brasileiro todos os homensx e mineiro x e brasileiro todos os primatasx e mineiro x e brasileiro todos os animaisx e uberabense x e brasileiro todos os homensx e uberabense x e mineiro todos os brasileirosx e uberabense x e mineiro todos os primatas

Nesta tabela, variamos o significado dos predicados e o conjunto a que x se refere. Pode-sefazer qualquer variacao que se quiser. E importante notar que, nas interpretacoes desta tabela, a

105

Page 110: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

formula ∀x (H(x)−→P (x)) deveria ser considerada “verdadeira”. Veremos depois como consideraruma formula verdadeira ou falsa na Logica de Primeira Ordem. Intuitivamente, e facil ver porquea formula e verdadeira em cada formula. Tome o primeiro exemplo, que associa H(x) a “x e peixemarinho” e P (x) a “x sabe nadar” e utiliza o conjunto de todos os animais. Entao a formula∀x (H(x)−→P (x)) quer dizer, nesta interpretacao:

Para qualquer x do conjunto dos animais, se x for um peixe marinho, entao x sabera nadar.

Assumindo que biologicamente isto e verdade1, entao esta interpretacao da frase e verdadeira.

Nas outras linhas, a formula e interpretada como

Para qualquer x ∈ N, se x for divisıvel por quatro, entao x sera par.Para qualquer x do conjunto dos sul-americanos, se x for mineiro, entao x sera brasileiroPara qualquer x do conjunto dos homens, se x for mineiro, entao x sera brasileiroPara qualquer x do conjunto dos primatas, se x for mineiro, entao x sera brasileiroPara qualquer x do conjunto dos animais, se x for mineiro, entao x sera brasileiroPara qualquer x do conjunto dos homens, se x for uberabense, entao x sera brasileiroPara qualquer x do conjunto dos brasileiros, se x for uberabense, entao x sera mineiroPara qualquer x do conjunto dos primatas, se x for uberabense, entao x sera mineiro

Poderıamos ter colocado interpretacoes em que a formula e falsa. Vamos apresentar algumas:

Significado de H(x) Significado de P (x) conjunto que x pode assumirx e ımpar x e divisıvel por 2 Nx e primo x e ımpar Nx e ave x sabe voar todos os animaisx e peixe x e ave todos os animaisx e mineiro x e paulista todos os brasileiros

No primeiro exemplo, a interpretacao de ∀x (H(x)−→P (x)) e “Para todo x ∈ N, se x forımpar, entao x sera divisıvel por 2”. Ou seja, a interpretacao e que todos os numeros ımpares saodivisıveis por 2, o que e falso para todo x ∈ N (o conjunto da interpretacao e N).

No segundo exemplo, a interpretacao de ∀x(H(x)−→P (x)) e “Para todo x ∈ N, se x for primo,x sera ımpar”, o que nao e verdade, pois 2 e primo e e par.

No terceiro exemplo, a interpretacao de ∀x (H(x)−→P (x)) e “Para todo x do conjunto dosanimais, se x for uma ave entao x sabera voar”. Ou seja, a interpretacao e “todo animal x, tal quex e ave, sabe voar”. O que nao e verdade, pois ha pelo menos uma ave, o pinguim, que nao voa.

No quarto exemplo, a interpretacao de ∀x (H(x)−→P (x)) e “Para todo x do conjunto dosanimais, se x for um peixe entao x sera ave”. Ou seja, “todo animal x tal que x e peixe e umaave. Falso, pois nenhum peixe e ave.

1Poderia nao ser, ha aves que nao voam e entao podem haver peixes que nao nadam.

106

Page 111: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

No quinto exemplo, a interpretacao de ∀x (H(x)−→P (x)) e “Para todo x do conjunto dosbrasileiros, se x for mineiro entao x sera paulista.”. Falso.

Voltaremos as interpretacoes na proxima unidade. Elas serao chamadas de modelos.

Mudaremos um pouco o assunto e falaremos das deducoes que podemos fazer apenas com asformulas, sem empregar nenhuma interpretacao. De fato, podemos fazer deducoes com as formulasda LPO, como nos exemplos abaixo:

Considerando ∀x (H(x)−→P (x)). Entao ∀x (¬P (x)−→¬H(x)). Utilizando uma interpretacao emque a formula e valida (primeira tabela), como H(x) para “x e peixe marinho”, P (x) para “x sabenadar” e o conjunto de todos os animais, temos que a formula que deduzimos, ∀x(¬P (x)−→¬H(x)),que dizer “para todo animal x, se x nao sabe nadar entao x nao e um peixe marinho”. Note quea deducao de ∀x (¬P (x)−→¬H(x)) a partir de ∀x (H(x)−→P (x)) foi feita sem referencia a nen-huma interpretacao. Mas se ∀x (H(x)−→P (x)) e verdadeira em certa interpretacao, assim o sera∀x (¬P (x)−→¬H(x)).

Considerando ∃x¬I(x), podemos concluir que ¬∀x I(x). Utilizando a interpretacao que consideraI(x) como “x e inteligente” e o conjunto de todos os homens, a formula ∃x ¬I(x) que dizer“Existe um x do conjunto dos homens tal que x nao e inteligente”. Ja ¬∀x I(x) que dizer, nestainterpretacao, “E falso que para todo x do conjunto dos homens, x seja inteligente”. Pense bem evera que as frases sao equivalentes.

Um ponto importantıssimo a considerar e que as conclusoes obtidas acima independem dosignificado dos predicados H, P e I. Quaisquer que fossem os significados dos predicados, oresultado seria o mesmo. E exatamente este tipo de deducao que nos interessa, as que independemdo mundo real e que podem ser feitas formalmente, observando-se apenas a forma das sentencaslogicas.

Nesta secao convertemos frases do mundo para a Logica de Primeira Ordem. Contudo, estalogica e uma extensao do CP. Como o CP nao e adequado para expressar o mundo real, a LPOtambem nao e.

12.4 A Linguagem da Logica de Primeira Ordem

Ha uma unica linguagem para o Calculo Proposicional. Contudo, para a Logica de Primeira Ordem,podemos ter infinitas linguagens diferentes conforme os sımbolos de predicado, sımbolos de funcaoe sımbolos de constante que utilizamos. Ja introduzimos sımbolos de predicados. Sımbolos defuncao sao sımbolos que, quando interpretados, representam funcoes. Sımbolos de constantes,quando interpretados, representaram um elemento especıfico do conjunto que utilizaremos (como“Joao da Silva” do conjunto dos homens).

Entao se utilizarmos apenas os sımbolos de predicado H e P do primeiro exemplo, e nenhumsımbolo de funcao ou constante, temos uma certa linguagem. Se formos utilizar os sımbolos P eM do segundo exemplo, temos uma outra linguagem. No caso geral, utilizamos um vocabulario.

Definicao 12.1. Um vocabulario e uma tripla (conjunto de sımbolos de predicado, conjuntode sımbolos de funcao, conjunto de sımbolos de constante). Usualmente utilizamos a notacaoV = (Σ,∆,Ψ) para um vocabulario, onde Σ e um conjunto de sımbolos de predicado, ∆ e umconjunto de sımbolos de funcao e Ψ e um conjunto de sımbolos de constante. Todos estes conjuntos

107

Page 112: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

devem ser finitos. Pode-se escrever um sobre-escrito para indicar a aridade de um sımbolo depredicado ou funcao, como H1 para indicar que a aridade de H e um. Ou f 3 para indicar que ftoma tres argumentos.

Entao para o primeiro exemplo, com H e P , terıamos V = ({H1, P 1}, ∅, ∅). Como nao hasımbolos de funcao ou constantes, utilizamos o conjunto vazio. Poderıamos definir V como V =({H, P}, ∅, ∅). Neste ultimo caso, terıamos que escrever que H e P sao relacoes unarias, que tomamum unico x. Poderıamos ter predicados binarios, como D(x, y). Em uma certa interpretacao,D(x, y) poderia significar x e divisıvel por y. Quando houver duvida quanto a aridade (numerode argumentos) dos sımbolos de predicado ou funcao, deve-se escrever explicitamente o numero deargumentos de cada um dos sımbolos. E isto que usualmente faremos.

De fato, utilizaremos uma versao ainda mais simples de vocabulario. Escreveremos V =(R,M, f, g, c1, c2) para um vocabulario que emprega os sımbolos de predicado R e M , os sımbolosde funcao f e g e os sımbolos de constante c1 e c2. Utilizaremos as letras maiusculas para sımbolosde predicado, letras minusculas f e g para sımbolos de funcao (ocasionalmente outras letrasminusculas serao utilizadas, mas nunca c) e letra c, possivelmente com ındices, para sımbolosde constante. Podemos utilizar outros sımbolos para sımbolos de predicado, funcao e constante.Por exemplo, podemos utilizar < para sımbolo de predicado, + para sımbolo de funcao e 0 paraconstante.

Podemos escrever que utilizaremos em certo exemplo uma linguagem que utiliza o vocabularioV = (R,M, f, g, c1, c2) no qual R e sımbolo de predicado binario, M e unario, f e sımbolo defuncao unario e g e ternario. Mesmo antes de definir o que e a linguagem associada a V , podemosafirmar que as formulas

∀x(M(x)−→∃yR(x, y))∀x∀y(f(x) = y−→∀zg(x, y, z))

sao validas (o numero de argumentos nos sımbolos de predicado e funcao estao corretos) mas asformulas abaixo nao estao.

∀x(f(x, y) = c1)M(x, y)∀x(g(x, x, y) = c2−→R(x, y, x)∀x(g = c2−→R(x, y)

Uma linguagem da Logica de Primeira Ordem sempre estara associada a um vocabulario evice-versa.

Definicao 12.2. A linguagem L associada a um vocabulario V = (Σ,∆,Ψ) utiliza os seguintessımbolos:

1. variaveis x1, x2, x3, . . .;

2. sımbolos de predicado P ∈ Σ;

3. sımbolos de funcao f ∈ ∆;

4. sımbolos de constante c tal que c ∈ Ψ;

108

Page 113: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

5. , (vırgula), (, ), ¬ e ∨ (tomados do calculo proposicional);

6. = (igual)

7. ∃ (quantificador existencial)

Como exemplo, se utilizarmos o vocabulario V = (R,M, f, g, c1, c2) definido anteriormente,os sımbolos utilizados na linguagem L associada a V sao: {xi : i ∈ N} ∪ {R,M, f, g, c1, c2} ∪{(, ),¬,−→,=,∃} ∪ {, }. Este conjunto e o alfabeto do sistema formal que sera definido no fimdesta unidade.

O numero de sımbolos de predicado, funcao e constante de uma linguagem ou vocabulario esempre finito, o que ja e suficiente para nos.

Na definicoes abaixo, assuma que estamos utilizando uma linguagem L associada a um vo-cabulario V = (Σ,∆,Ψ).

Definicao 12.3. Um termo e definido como

1. uma variavel ou constante c ∈ Ψ e termo;

2. se f ∈ ∆ e um sımbolo de funcao que toma n argumentos (n-ario) e t1, t2, ... tk sao termos,entao f(t1, t2, ..., tn) e um termo. Observe que um sımbolo de funcao de aridade n deve serutilizado com n termos;

3. nada mais e um termo.

Frequentemente citaremos a linguagem sem descrever o vocabulario correspondente. Diremosapenas que a linguagem utiliza tais e tais sımbolos de predicado, funcao e constante. E isto quefazemos no exemplo abaixo.

Considere uma linguagem L que utiliza o sımbolo de constante c, sımbolo de predicado P comdois argumentos e sımbolo de funcao f com um argumento. Entao sao termos:

1. c

2. x1, de fato, xi para qualquer i ∈ N

3. f(c), f(x3), f(x5)

4. f(f(c)), pois f(c) e um termo

Observe que estamos falando da linguagem. Nao interessa a definicao da funcao f ou dopredicado P . Na verdade, f nao e funcao, e apenas um sımbolo que pode ser utilizado nasformulas como se fosse uma funcao. O mesmo raciocınio se aplica a P .

Definicao 12.4. Uma formula atomica e da forma:

• t1 = t2, com t1 e t2 termos de L ou;

• P (t1, t2, ..., tn) sendo que P e um sımbolo de predicado n-ario pertencente a Σ e t1, t2, ..., tnsao termos.

109

Page 114: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Na linguagem L, sao formulas atomicas:

1. c = c

2. f(x1) = c

3. x1 = f(x2)

4. P (x1, x2)

5. P (c, f(x8))

6. P (f(f(f(c))), f(x7))

Definicao 12.5. Uma formula da linguagem de primeira ordem e definida como

1. toda formula atomica e formula;

2. se A e B sao formulas e x e uma variavel qualquer, entao (¬A), (A ∨ B) e ((∃x)A) saoformulas. O sımbolo ∃ e chamado de quantificador existencial.

3. nada mais e uma formula.

Na linguagem L, sao formulas:

1. f(x1) = c

2. x1 = f(x2)

3. P (x1, x2)

4. P (c, f(x8))

5. (¬P (c, f(x8)))

6. (x1 = c−→P (c, c))

7. ((∃x1) x1 = x2)

8. ((∃x1) ((∃x2) x1 = x2))

9. ((∃x1) P (c, x1))

10. ((∃x1) P (x1, x9))−→((∃x5)(f(x5) = c))

11. ((∃x13) P (x13, c)−→((∃x7)P (x13, x7)))

Os conectivos ∧, −→ e ←→ sao definidos como no CP. O quantificador universal ∀ nao fazparte da linguagem, sendo definido como

((∀x)A) e uma abreviatura para ¬((∃x)(¬A))

Ou seja, se para todo x vale certa propriedade A, entao nao e verdade que existe um x talque aquela propriedade nao vale. Pense bem sobre esta afirmacao e certifique-se de que voce aentendeu.

110

Page 115: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

O sımbolo ∃, na semantica de qualquer Logica de Primeira Ordem, significa “um ou mais”.Entao, a formula (∃x)A, quando interpretada, nao diz que A e verdade para apenas um unicovalor de x, mas para um ou mais valores de x.

Poderıamos ter definido ∃ em funcao de ∀: ((∃x)A) poderia ser definido como ¬((∀x)(¬A)).Isto e, se existe um x com propriedade A, entao nao e verdade que para todo x aquela propriedadenao vale (entao deve existir um x em que vale a propriedade A).

Note que as variaveis do calculo proposicional nao sao as mesmas da Logica de Primeira Ordem.No CP, uma unica variavel e considerada uma formula correta: V1 e uma formula. Na LPO, umaformula possui sempre um predicado ou o sinal de igualdade. Chamaremos as variaveis do calculoproposicional de variaveis proposicionais.

Retiraremos os parenteses sempre que for possıvel. Assim, escreveremos ¬A, A∨B e ∃xA para(¬A), (A ∨ B) e ((∃x)A). Os quantificadores universal e existencial possuem maior precedenciado que −→ e ←→ e menor do que ∧, ∨ e ¬. Veja a nova tabela de precedencias:

¬ maior∧∨∀, ∃−→←→ menor

Sımbolos de mesma precedencia se associam da esquerda para a direita: A−→B−→C e omesmo que (A−→B)−→C.

Assim,

∀x P (x)−→∃x P (x)

deve ser lido como

(∀x P (x))−→(∃x P (x))

E a formula

∃x A ∧ ∀y P (x, y) ∨B

deve ser lida como

∃x (A ∧ (∀y (P (x, y) ∨B)))

Em uma formula ∀x A, x nao e uma variavel da linguagem da LPO. Estas se chamam x1, x2,x3, . . .. Entao, o que e x? E uma meta-variavel, um sımbolo que representa qualquer variavel dalinguagem. A formula ∀xP (x) representa infinitas formulas, uma para cada variavel da linguagem:∀x1 P (x), ∀x2 P (x), ...

Em geral, utilizaremos as variaveis x, y e z para meta-variaveis e utilizaremos todos os conec-tivos derivados e o quantificador existencial. E escrevemos com o menor numero de parentesespossıvel. Assim, considere a linguagem L que utiliza os sımbolos de constante 0 e 1, sımbolos depredicado binarios < e 6 e sımbolos de funcao binarios + e ×. Note que estamos utilizando outrossımbolos que nao os usuais P , M , f e c. Nao tem a menor importancia.

111

Page 116: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Se tivessemos um sımbolo de predicado binario P , utilizarıamos algo como P (x, y). O sımbolo< tambem e binario e poderıamos escrever < (x, y). Mas e mais usual empregarmos x < y, e e oque fazemos abaixo. Sao formulas validas nesta linguagem:

• ∀x(∃y(x+ y = 0))

• ∀x∀y(x < y−→x < y + 1)

• ∀x∃y(x = y + 1)

• ∀x(x < x+ 1)

• ∀x∀y (x < y−→¬(x = y))

• ∀x∀y∀z (x < y ∧ y < z−→x < z)

• ∀x∀y∀z (z = x+ 1 ∧ z = y + 1−→x = y)

• ∃x(x× x = x)

• ∀x∀y (x× (y + 1) = x× y + x)

Se utilizarmos uma interpretacao com o conjunto dos naturais N na qual os sımbolos de con-stante 0 e 1 sao o 0 e 1 dos numeros naturais, <, +, 6, + e × possuem o significado usual dasoperacoes neste conjunto, entao a primeira formula significa que, para todo x ∈ N, existe um y talque, somado com x, resulta em 0. E um excelente exercıcio verificar que estas formulas sao todasvalidas nesta interpretacao. O mesmo nao pode ser dito da formula

∀x∃y (x = y × y)

Interpretada, esta formula diz que todo x natural e o quadrado de algum outro natural. Clara-mente 2, 3, 5 e outros infinitos naturais nao sao quadrados de nenhum outro numero de N. Entaonesta interpretacao esta formula nao e valida.

12.5 Consideracoes Finais

Atraves da Logica de Primeira Ordem conseguimos expressar uma grande quantidade de fatos arespeito do mundo real, precisamente. Os sımbolos ∀ e ∃ permitem expressar fatos sobre conjuntose os predicados permitem expressar validade de proposicoes (afirmacoes) sobre o mundo.

A LPO e uma extensao do CP. Entao todos os teoremas do CP sao tambem teoremas da LPO.E mais, todas as tautologias sao teoremas da LPO.

12.6 Exercıcios

12.1. Cite uma proposicao que pode ser expressa na Logica de Primeira Ordem mas nao no calculoproposicional.

112

Page 117: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

12.2. Elimine os parenteses desnecessarios das seguintes formulas

• (∀x (P (x) ∨Q(x))) ∧ (∃z (z < 0)−→R(z))

• (x < 1) ∧ (∃y (y < x ∧ P (y)))

• ∃x (∀y P (x, y))−→(∃z Q(x, z))

• ∃x (∀w (∀y P (x, y, w)))−→(∃z Q(x, z))

12.3. As formulas ∀x∀yR(x, y) e ∀y∀xR(x, y) possuem significados diferentes? Explique !

12.4. Considere a linguagem L com os sımbolos de predicado D(x, y), A(x) e P (x, y) e a constantec. Suponha que em uma certa interpretacao, o significado dos predicados correspondentes seja:

• D(x, y), x e uma disciplina mais difıcil do que y;

• A(x), x e uma disciplina que possui uma apostila;

• P (x, y), as provas de x sao mais difıceis do que as provas de y;

• c e a disciplina “Introducao a Logica”.

Faca formulas na linguagem L que representem, nesta interpretacao, as frases seguintes:

(a) qualquer disciplina e mais difıcil do que Introducao a Logica;

(b) ha uma disciplina que e mais difıcil do que todas as demais;

(c) se as provas de uma disciplina D1 sao mais difıceis do que as da disciplina D2, entao a disciplinaD1 e mais difıcil do que D2. Os sımbolos D1 e D2 representam disciplinas quaisquer, naoconstantes da linguagem;

(d) se uma disciplina tem apostila, entao ela e a mais facil de todas;

(e) existe uma disciplina que e mais facil que todas as outras.

(f) existe uma unica disciplina;

(g) existe apenas uma outra disciplina alem de Introducao a Logica;

(h) se existe uma disciplina que e mais difıcil do que todas as outras, entao esta disciplina possuiprovas mais difıceis do que todas as outras;

(i) se alguma disciplina e mais difıcil do que todas as outras, entao esta disciplina possui provasmais difıceis do que todas as outras (alguma significa “qualquer disciplina que obedeca adescricao”);

(j) se existe uma disciplina que e mais difıcil do que todas as outras, entao existe uma disciplinaque possui provas mais faceis do que esta;

113

Page 118: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

(k) se uma disciplina, dentre todas elas, e mais difıcil do que todas as outras, entao existe umadisciplina que possui provas mais faceis do que esta;

(l) Introducao a Logica possui provas mais faceis do que todas as outras disciplinas;

(m) se existe uma disciplina que e mais difıcil do que alguma outra, entao esta disciplina nao eIntroducao a Logica.

(n) se alguma disciplina e mais difıcil do que alguma outra, entao esta disciplina nao e Introducaoa Logica.

Cuidado com as relacoes: D(x, x) e sempre falso, assim como P (x, x). Assuma que D(x, y) ouD(y, x) seja verdadeiro. Da mesma forma, ou P (x, y) ou P (y, x) e verdadeiro

12.5. Usando os dados da questao anterior, escreva o que significam as formulas abaixo.

(a) ∀x (A(x)−→∃y D(y, x))

(b) ∀x (A(x)−→(∃y P (y, x) ∨ ∃y D(y, x)))

(c) ∀x (x = c ∨D(x, c) ∨ P (x, c))

(d) ∀x ¬D(x, y)−→y = c

(e) ∃x (∀y (¬(x = y)−→D(x, y))−→¬(x = c))

12.6. Defina um vocabulario apropriado para as relacoes entre os membros de uma famılia. Devemexistir sımbolos para “x e mae de y”, “x e pai de y”, “x, mulher, e casado com y”, “x e homem”e “x e mulher”.

12.7. Defina duas formulas utilizando o vocabulario da questao anterior e explique o seu significadoem Portugues.

12.8. Considere uma linguagem LA para a Aritmetica que utiliza sımbolo de predicado binario <,sımbolos de funcao binarias + e � (correspondente a multiplicacao) e constantes 0 e 1. Defina oufaca:

(a) o Vocabulario de LA. Defina os conjuntos Σ, ∆ e Ψ;

(b) tres termos quaisquer;

(c) tres formulas atomicas;

(d) tres formulas quaisquer;

(e) tres formulas que nao sao validas nesta linguagem.

12.9. Explique as diferencas entre as variaveis no calculo proposicional e as da Logica de PrimeiraOrdem.

12.10. Qual e a interpretacao de uma formula ∀x(A(x)−→B(x))? E (∀xA(x))−→(∀xB(x))?

114

Page 119: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

12.11. Represente as seguintes sentencas em uma linguagem da LPO (voce precisara de uma lin-guagem para cada sentenca). Sempre que possıvel, simplifique-as e depois represente-as novamenteem Portugues. Utilize predicados como R(x) para “x e responsavel”. Explique o significado dospredicados que voce utilizar.

(a) Todos os deputados querem que a CPI termine em Pizza.

(b) Existe um polıtico que nao quer que a CPI termine em Pizza.

(c) Nao e verdade que se um animal nada ele e um peixe.

(d) Nao e verdade que se um animal nada ele nao e um mamıfero.

(e) Joao amava Teresa que amava Raimundo que amava Maria que amava Joaquim que amavaLili, que nao amava ninguem.

(f) X nao gosta de ninguem que goste dele.

(g) E tao facil trocar uma lampada que qualquer um pode faze-lo.

(h) Se ele pode fazer a licao, entao qualquer um pode.

(i) Pelo menos uma pessoa e inteligente.2

(j) Se Joao consegue fazer o exercıcio, Pedro nao consegue. E vice-versa. Mas quando Pedroconsegue, pelo menos uma outra pessoa da turma consegue fazer o exercıcio.

(k) O barbeiro de uma aldeia faz a barba de todo mundo que nao faz a barba de si mesmo.

(l) Se dois conjuntos tem os mesmos elementos, eles sao iguais.

12.12. Qual a diferenca entre as formulas ∀xR(x)−→S(x) e ∀x(R(x)−→S(x))? Preferencialmente,cite um exemplo para diferencia-las.

12.13. Considere uma linguagem com os sımbolos usuais da Aritmetica: +, −, �, <, 0 e 1. Alinguagem possui apenas estes sımbolos — nao possui 2 como sımbolo, por exemplo, nem / (dedivisao). Faca formulas nesta linguagem que correspondam aos seguintes predicados:

(a) M(x, y), x e maior do que y;

(b) D(x, y), x divide y;

(c) R(x, y, z), z e o resultado da divisao de x por y;

(d) P (x), x e um numero primo;

(e) E(x, y), x2 = y;

Escrevemos acima, em cada item, o nome do sımbolo de predicado, seus possıveis argumentos e asua interpretacao na Aritmetica.

12.14. As formulas ∀x∃yR(x, y) e ∃y∀xR(x, y) possuem significados diferentes? Explique !

2A notacao ∃x “significa”, na linguagem comum, que existe um x. Mas nada impede que exista mais do queum. Assim, ∃x de fato significa “um ou mais”.

115

Page 120: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Unidade 13

Semantica da Logica de Primeira Ordem

13.1 Primeiras palavras

Esta Unidade apresenta a semantica da Logica de Primeira Ordem. Diferente da semantica doCP, uma formula escrita na LPO nao pode ser avaliada como verdadeira ou falsa construindo-seuma tabela verdade. Os quantificadores ∀ e ∃ impedem isso, pois eles se referem a conjuntos deelementos que podem mesmo ser infinitos. E necessario algo mais sofisticado para avaliar a validadede uma formula. Este algo e chamado de modelo. O que sao modelos, como representa-los e comoverificar a verdade/falsidade de formulas na LPO sao os objetivos desta Unidade.

13.2 Problematizando o Tema

A semantica do calculo proposicional utiliza tabelas verdade ou funcoes de verdade. Cada variavelque ocorre em uma formula, como V1 em V1−→(V5 ∧ ¬V1) pode assumir dois valores verdade, Vou F. Dando valores verdade para cada variavel, como V para V1 e F para V5, podemos calcular ovalor verdade da formula.

A semantica da Logica de Primeira Ordem nao e tao simples assim. Existem funcoes, constantese predicados que complicam a semantica da LPO. Dada uma formula ∀x(P (x)−→D(x)), comosaber se ela e verdadeira ou falsa?

Em primeiro lugar, temos que associar P e D a predicados que conhecemos. Por exemplo,podemos associar P (x) a “x e primo” e D(x) a “x e divisıvel por 2”. Com isso podemos obtero valor verdade da formula? Ainda nao, pois nao sabemos quais x serao utilizados. Isto e, ∀xrefere-se a qual conjunto? Suponha que seja o conjunto de todos os numeros naturais. Neste casoa formula quer dizer “para todo x, se x e primo entao x e divisıvel por 2”. Mas 3 e primo e nao edivisıvel por 2 (todo primo, exceto 2, nao e divisıvel por 2). Contudo, se o conjunto utilizado tiverapenas o elemento 2, entao a formula e verdadeira. A formula neste caso seria intepretada como“para todo x ∈ {2} se x e primo entao x e divisıvel por 2”.

Concluımos que a verdade/falsidade de uma formula da Logica de Primeira Ordem dependeda associacao dos sımbolos de predicado (P e D) a predicados (“x e primo”, “x e divisıvel por2”), associacao dos sımbolos de funcao a funcoes e constantes a elementos de um conjunto. E da

116

Page 121: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

definicao do conjunto de elementos utilizado por ∀.

13.3 Introducao

Uma teoria de primeira ordem e a parte sintatica correspondente a uma Logica de PrimeiraOrdem. Uma teoria de primeira ordem e uma formalizacao de uma semantica qualquer. Porexemplo, podemos formalizar a Aritmetica, a geometria Euclidiana, as relacoes de ordem (< esuas propriedades), as relacoes de equivalencia ou uma outra teoria Matematica. E podemosformalizar um pedaco qualquer do mundo, desde que isto seja possıvel — pode nao ser.

Para fazer esta formalizacao, descobrimos quais os fatos relevantes a respeito deste pedaco domundo e os colocamos em axiomas. Este “pedaco” do mundo e chamado de modelo, que seradefinido mais precisamente nos paragrafos seguintes.

Antes disto definiremos alguns conceitos e estudaremos alguns exemplos. Recomenda-se areleitura da Unidade 12, sobre a linguagem da Logica de Primeira Ordem. O que chamamos deinterpretacao naquela unidade sao os nossos modelos.

Definicao 13.1. Uma relacao n-aria R sobre um conjunto A e um subconjunto de An.

An e o conjunto {(x1, x2, . . . xn) : xi ∈ A, 1 6 i 6 n}.

Por exemplo, se A = {0, 1, 2, 3, 4}, A2 = {(0, 1), (0, 2), (0, 3), . . . (4, 0), (4, 1), . . . (4, 4)}. Saorelacoes binarias sobre A:

• R = {(0, 2), (3, 0), (4, 1)};

• R = {(0, 0), (1, 1), (2, 2), (3, 3), (4, 4)};

• R = {(1, 3), (3, 1)};

• R = ∅;

• R = A;

Tanto A como a relacao podem ser infinitos. Por exemplo, se A = N, uma relacao ternariapode ser

R = {(n, m, p) : n, m, p ∈ N tal que n = m× p}

Considere uma linguagem L associada ao vocabulario V = (Σ,∆,Ψ) no qual Σ e um conjuntode sımbolos de predicado, ∆ e um conjunto de sımbolos de funcao e Ψ e um conjunto de sımbolosde constante.

Definicao 13.2. Uma estrutura A para L e formado por:

• um conjunto de elementos nao vazio chamado de universo da estrutura, denotado por |A|;

• um conjunto de predicados e funcoes da estrutura. Um predicado P de aridade n e umarelacao em |A|n, o que implica que P ⊂ |A|n. Uma funcao de aridade n e uma funcao de|A|n em |A| (sempre !);

117

Page 122: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

• uma associacao de predicados da estrutura a sımbolos de predicado de L, funcoes da estruturaa sımbolos de funcao de L e elementos do conjunto universo da estrutura a sımbolos deconstante de L.

A proposito, A le-se “A”. E um “A” gotico. Um predicado da estrutura deve ser definidocomo uma relacao. Informalmente, definimos um predicado por palavras como “I(x) significa x eımpar”. Funcoes sao definidas formalmente tambem. Por exemplo, podemos definir uma funcaof(x) como f : N−→N tal que f(x) = 2x. Neste caso, o universo da estrutura teria que ser N.

Exemplo 13.1. A linguagem L com sımbolos de funcao binarios + e × e sımbolos de constante0 e 1 possui infinitas estruturas. Uma delas e N com as operacoes usuais de soma e multiplicacao.Naturalmente os sımbolos 0 e 1 sao associados aos numero correspondentes. Os conjuntos R, Q, Ze C com as operacoes usuais sao tambem estruturas para esta linguagem. Sempre pode-se tomaruma estrutura para uma linguagem e acrescentar novos elementos, novas relacoes e novas funcoescriando uma estrutura maior.

Usualmente, abreviamos a estrutura N dada acima para 〈N,+,×, 0, 1〉. Algumas vezes, usa-se o proprio sımbolo N sem citar os sımbolos que serao utilizados para predicados, funcoes econstantes. Estes ficam subentendidos. Neste caso, assume-se que N contenha todas as operacoesusuais sobre inteiros e que a linguagem tenha uma constante para cada numero natural. Isto emuito importante: quando fornecemos uma estrutura, pode-se assumir que a linguagemfica subentendida na definicao da estrutura.

Exemplo 13.2. Dada a estrutura 〈Q,+,×, /, 0, 1, 1/2〉, fica subentendido que a linguagem uti-lizada possui sımbolos de funcoes +, × e / e sımbolos de constante 0, 1 e 1/2 (nao ha sımbolosde predicado). Se a estrutura citasse o sımbolo −, haveria uma ambiguidade, pois − poderia sero menos unario ou a subtracao. O primeiro e uma funcao unaria e o segundo, binaria.

Exemplo 13.3. Uma linguagem L1 com sımbolo de predicado binario D e constante c pode possuirinfinitas estruturas. Duas delas sao:

(a) estrutura AA tal que |AA| = N e predicado D(x, y) significando x e divisıvel por y. ColocandoD como relacao, temos

D = {(x, y) ∈ N2 : existe z ∈ N tal que x = y × z}

A constante c de L1 e associada ao elemento 0 de N. O sımbolo de predicado D de L1

e associado ao predicado D da estrutura. Neste texto, isto quase sempre acontecera: ospredicados terao sempre os mesmos nomes que os sımbolos de predicado. O mesmo vale parafuncoes e sımbolos de funcao. Poderia ser diferente: veja o proximo item;

(b) estrutura AB tal que |AB| = {a, e, i, o, u} e predicado T (n, m) significando n aparece antesde m no alfabeto latino. Colocando T em formato de relacao, temos

T = {(a, e), (a, i), (a, o), (a, u), (e, i), (e, o), (e, u), (i, o), (i, u), (i, u), (o, u)}

118

Page 123: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

A constante c de L1 e associada ao elemento a de |AB|. O sımbolo de predicado D deL1 e associado ao predicado T da estrutura. Esta e a unica estrutura neste texto, alemdo exemplo do Zoologico dado no fim desta unidade, em que um predicado possui nomediferente do sımbolo de predicado associado a ele.

Exemplo 13.4. Seja V2 um vocabulario com um sımbolos de predicado unario I, um sımbolo depredicado binario D e um sımbolo de funcao unaria f . Nao ha sımbolos de constante. A linguagemde primeira ordem associada a V2 e L2. Uma estrutura E para L2 e a seguinte:

• conjunto universo |E| = {0, 1, 2, 3, 4, 5}

• predicado I = {1, 3, 5} e D = {(2, 1), (3, 1), (4, 1), (5, 1), (4, 2)}. O significado de I(x) e “x eımpar” e de D(x, y) e “x e divisıvel por y e x 6= y”.

• funcao f : |E|−→|E| definida como

f(x) =

{0 se x = 5

x+ 1 se x 6= 5

Temos alguns fatos muito importantes sobre estruturas:

1. qualquer linguagem possui infinitas estruturas;

2. nem todos os elementos de uma estrutura A da linguagem L precisam estar associados acontantes de L. A linguagem pode ter uma unica constante c e |A| pode ter dois, tres oumesmo infinitos elementos. E mais ou menos assim em nossa linguagem natural. Descrevemosos numeros naturais, por exemplo, sem nunca falar ou escrever todos os sımbolos disponıveispara todos os numeros naturais (isto nem seria possıvel, dado que sao infinitos). Durantetoda a vida uma pessoa sempre utilizara um numero finito de sımbolos correspondentes aosnumeros naturais;

3. um mesmo conjunto de elementos, como N pode pertencer a varias estruturas de maneirasdiferente. Isto e verdade se as estruturas pertencem a mesma linguagem ou nao. Por exemplo,considere uma linguagem com uma funcao f e constante c. Uma estrutura A para umalinguagem com funcao f e constante c cujo universo |A| e N e que associa f a + e c a 0.Uma outra estrutura pode ter universo {0, 1, 2} e associar f a � e c a 2;

4. uma estrutura ou modelo nao necessariamente utiliza todas as relacoes (predicados), funcoese elementos do conceito que a origina. Por exemplo, os numeros naturais dao origem adiversas estruturas e modelos que nao necessariamente utilizam todas as relacoes e funcoesque usualmente atribuımos aos numeros naturais. Por exemplo, uma estrutura baseada emN pode utilizar apenas a funcao f e uma constante c (associados a + e 0, por exemplo).Outra estrutura pode utilizar apenas < e nenhuma constante. E ainda outra estrutura podeutilizar +, �, < e 0, 1, 2, . . ..

119

Page 124: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Definicao 13.3. Dado um predicado P de aridade n, P (x1, x2, . . . xn) sera considerado ver-dadeiro se e somente se (x1, x2, . . . xn) ∈ P , onde este ultimo P e a relacao que representa opredicado. Usaremos P (x1, x2, . . . xn) se P (x1, x2, . . . xn) e verdadeiro e ¬P (x1, x2, . . . xn) seP (x1, x2, . . . xn) for falso.

Como exemplo, na estrutura |E|, I(2) e falso pois 2 6∈ I. Mas I(1) e verdadeiro, pois 1 ∈ I. Damesma forma, D(4, 1) e verdadeiro (pois (4, 1) ∈ D) e D(3, 5) e falso (D(3, 5) 6∈ D).

Os paragrafos anteriores sobre relacoes sao muito importantes. Relei-a os!! E sempre que nosreferirmos a predicados, pense em relacoes. Ficara mais facil de entender os conceitos assim.

Uma estrutura e basicamente um conjunto onde os elementos deste conjunto possuem algumasrelacoes entre si. Por exemplo, considere o conjunto composto dos alunos e o professor destadisciplina. Este nao e um conjunto qualquer de elementos. Ha algumas relacoes entre os alunos,entre os alunos e o professor, a nota de cada aluno e assim por diante. Um predicado C(x, y) nestaestrutura pode significar “o aluno x conhece o aluno y e x 6= y”, onde tomaremos conhece por“conhecer pessoalmente”. Da mesma forma, podemos definir um predicado Cp(x) como “o aluno xconhece o professor” e P (x) como “x e o professor da disciplina”. Ficaria um pouco difıcil definiruma funcao para esta estrutura, mas isto poderia ser feito. Por exemplo, f(x1, x2, x3) poderiaser “o aluno com nota mais alta entre x1, x2 e x3”. Mas por simplicidade nao incluiremos f noexemplo dado a seguir.

O importante a aprender aqui e que uma estrutura e, geralmente, algo mais do que umsimples conjunto. Ha uma relacao entre os seus elementos expressado pelos predicadose funcoes. E por isto que ela se chama estrutura (ha uma estrutura no conjunto).

Exemplo 13.5. Definiremos um exemplo completo de uma estrutura para uma disciplina comalunos e professor. Em primeiro lugar, chamaremos esta estrutura de A. O seu conjunto universo|A| e

|A| = {ana, pedro, joao, jose,maria, thiago, patricia}

Agora precisamos definir uma linguagem L para esta estrutura. E para definir L precisamos definirum vocabulario V . Neste texto, um vocabulario tera exatamente sımbolos iguais aos nomes dospredicados e funcoes da estrutura com a qual ele sera utilizado — exceto em dois exemplos clara-mente definidos que utilizam sımbolos diferentes. Teremos predicados C(x, y), Cp(x) e P (x) e

entao L tera sımbolos de predicado C binario e Cp e P unarios. E interessante tambem colocarum sımbolo de constante para “professor”. Este sımbolo sera c (usando a convencao de que ossımbolos de constante sao c e ci, i ∈ N). Entao o vocabulario sera

V = {{C,Cp, P}, ∅, {c}}

A linguagem L associada a este vocabulario tem formulas como:

• ∀x∀y (¬(x = y) ∧ C(x, y)−→C(y, x))

• ∀x∃y (C(x, y) ∧ Cp(y))

• ∃x∀y ¬C(y, x)

120

Page 125: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

• P (x)−→∀y ¬C(x, y)

• ∃x ¬Cp(x)

• C(x, y) ∧ C(y, z)−→C(x, z)

• ∀x∀y∀z (C(x, y) ∧ C(y, z)−→C(x, z))

• P (x)−→x = c

• ∀x (P (x)−→x = c)

• C(x, y)−→(¬(x = c) ∧ ¬(y = c))

Um bom exercıcio e verificar o que significam as formulas acima (a sua traducao para Por-tugues).

Os predicados da estrutura sao relacoes no conjunto |A|. Definiremos cada um deles:

C = {(ana,maria), (maria, ana), (thiago, patrıcia), (patrıcia, thiago),

(joao, pedro), (pedro, joao), (thiago, pedro), (pedro, thiago)}

C(x, y) e a relacao “x conhece y”. Note que esta relacao e simetrica: se C(x, y), entao C(y, x).E que, normalmente, se x conhece y, entao y conhece x. Mas se voce quisesse, poderia fazer Cnao simetrico. Cp(x) e a relacao “x conhece o professor”.

Cp = {patrıcia, pedro, joao}

Assuma que este e um curso a distancia, nem todos os alunos conhecem pessoalmente o professor.

P = {jose}

Na definicao de modelo, utilizamos o conceito de “formula verdadeira” em uma estrutura.Daremos uma definicao formal deste conceito na secao 13.4. Intuitivamente, uma formula e ver-dadeira em uma certa estrutura se a estrutura possui o que a formula exige. Como exemplo, aformula ∀x (P (x)−→x = c) e verdadeira na estrutura do exemplo anterior. Esta formula querdizer

“para todo x de |A|, se P (x) entao x = c”que e igual a

“para todo x ∈ |A|, se x ∈ P entao x = jose”pois c e associado ao elemento “jose”. Refinando, ficamos com

“para todo x ∈ {ana, pedro, joao, jose,maria, thiago, patrıcia}, se x ∈ {jose} entao x = jose”

Esta ultima afirmacao e claramente verdadeira pois x ∈ {jose} implica em x = jose. Logo∀x (P (x)−→x = c) e verdadeira na estrutura A.

A formula ∃x ¬Cp(x) tambem e verdadeira em A. Ela quer dizer“existe x ∈ |A| tal que nao e verdade que Cp(x)”

121

Page 126: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

que e“existe x ∈ |A| tal que nao e verdade que x ∈ Cp”

que e“existe x ∈ |A| tal que x 6∈ Cp”

que e“existe x ∈ {ana, pedro, joao, jose,maria, thiago, patrıcia} tal que x 6∈ {patrıcia, pedro, joao}”

Tome x = ana. Entao x ∈ {ana, pedro, joao, jose,maria, thiago, patrıcia} e x 6∈ {patrıcia, pedro, joao}.Logo ∃x ¬Cp(x) e verdadeira em A.

Uma formula sem os quantificadores ∀ e ∃, como C(x, y)∧C(y, z)−→C(x, z) deve ser interpre-tada como se houvesse quantificadores ∀ para cada uma das variaveis nao ligadas a quantificadores.Isto e, C(x, y) ∧ C(y, z)−→C(x, z) deve ser interpretada como a formula

∀x∀y∀z (C(x, y) ∧ C(y, z)−→C(x, z))

Como um outro exemplo, P (x)−→x = c deve ser interpretada como ∀x (P (x)−→x = c). Entao asformulas abaixo tem a mesma interpretacao:

¬(x = y) ∧ C(x, y)−→C(y, x)∀x (¬(x = y) ∧ C(x, y)−→C(y, x))∀y (¬(x = y) ∧ C(x, y)−→C(y, x))∀x∀y (¬(x = y) ∧ C(x, y)−→C(y, x))

A formula C(x, y) ∧ C(y, z)−→C(x, z) nao e verdadeira em A. Ela quer dizer“para todo x, y e z, se C(x, y) e C(y, z), entao C(x, z)

que e“para todo x, y e z, se (x, y) ∈ C e (y, z) ∈ C, entao (x, z) ∈ C

mas (patrıcia, thiago) ∈ C e (thiago, pedro) ∈ C sendo que (patrıcia, pedro) 6∈ C.

Definicao 13.4. Dado uma estrutura A para a linguagem L e um conjunto de formulas Γ em L,dizemos que A e modelo para Γ se cada uma das formulas de Γ for verdadeira em A. UsamosA � Γ para “A e modelo para Γ”.

Ja provamos que ∀x (P (x)−→x = c) e verdadeira na estrutura A dada como exemplo (alunose professor). Entao

A � {∀x (P (x)−→x = c)}

Da mesma forma, ja provamos que ∃x ¬Cp(x) e verdadeira neste modelo:

A � {∃x ¬Cp(x)}

A formula ∀x∀y (C(x, y)−→C(y, x)) tambem e verdadeira em A: a sua interpretacao e “paratodo x, se (x, y) ∈ C entao (y, x) ∈ C”. Uma inspecao no conjunto C mostra que esta frase everdadeira. Entao se

Γ = {∀x (P (x)−→x = c), ∃x ¬Cp(x), ∀x∀y (C(x, y)−→C(y, x))

122

Page 127: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

temos que A e um modelo para Γ. Escrevemos A � Γ.

Por outro lado, a formula C(x, y)∧C(y, z)−→C(x, z) nao e verdadeira em A, como demonstradoanteriormente. Entao escrevemos

A 6� C(x, y) ∧ C(y, z)−→C(x, z)

Estudaremos mais alguns exemplos.

Exemplo 13.6. Considere uma linguagem L1 que nao possui sımbolos de predicado, funcao ouconstante e o conjunto Γ = {∀x∀y(x = y)}, composto por uma unica formula. Entao uma estruturaque utiliza o conjunto {0} e modelo para Γ. Nao e necessario especificar nenhum predicado, funcaoou constante, pois a linguagem nao possui sımbolos para eles.

E porque esta estrutura e modelo para ∀x∀y (x = y)? Porque esta formula quer dizer que,“para todo x e y do conjunto da estrutura, x = y”. Claro. O conjunto so possui o numero 0 elogo todo x e y e 0. So pode ser. Os modelos desta formula possuem todos um unico elemento.Os modelos poderiam utilizar outros conjuntos, por exemplo, {1}, {z}, { terra } (quero dizer oplaneta terra), { A } (a letra “A”), etc.

Observe que escrevemos “esta estrutura e modelo para ∀x∀y (x = y)” ao inves do mais longo“esta estrutura e modelo para o conjunto {∀x∀y (x = y)}”.

Nesta mesma linguagem, considere a formula ∀x∃y ¬(x = y). Qualquer estrutura com pelomenos dois elementos e modelo para esta formula. Por exemplo, uma estrutura com o conjunto{0, 1}. Para todo x ∈ {0, 1}, sempre ha um y diferente de x. Isto vai acontecer sempre que oconjunto universo tiver mais do que dois elementos.

Exemplo 13.7. Considere a linguagem L2 com sımbolo de predicado binario <, sımbolos defuncao binarios + e × e sımbolos de constante 0 e 1. O conjunto N com as operacoes usuais eestrutura para esta linguagem, abreviada para 〈N, <,+,×, 0, 1〉. Esta estrutura e modelo para aformula

(∀x∀y (x < x+ y ∨ y = 0)) ∧ ∀x (5× x = (3× x) + x+ x)

? Vejamos. Para uma estrutura A ser modelo para X ∧Y , ela deve ser modelo para X e Y . Nestecaso, N deve ser modelo para ∀x∀y (x < x + y ∨ y = 0) e ∀x (5 × x = (3 × x) + x + x). Estasformulas significam

1. para todo x e para todo y, x e menor do que y ou y = 0. O que e claramente verdadeiro emN, que so contem numeros maiores ou iguais a 0;

2. para todo x, 5× x = (3× x) + x+ x, o que tambem e claramente verdadeiro em N.

Entao podemos concluir que

N � (∀x∀y (x < x+ y ∨ y = 0)) ∧ ∀x (5× x = (3× x) + x+ x)

Aqui ja usamos N no lugar de 〈N, <,+,×, 0, 1〉. Nao ha ambiguidades neste uso.

123

Page 128: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Exemplo 13.8. Considere agora a linguagem L3 com o sımbolo de predicado <, sımbolos defuncao + e × e os sımbolos de constante 0 e 1. Que estruturas podem ser modelos para a formula∀x∀y (x × y = x + y)? Considere uma estrutura A com os sımbolos aritmeticos <, + e × comuniverso |A| = {0, 1} e a seguinte definicao das funcoes + e ×:

0 + 0 = 0, 1 + 0 = 0 + 1 = 1, 1 + 1 = 1

0× 0 = 0× 1 = 1× 0 = 0, 1× 1 = 1

A pode ser modelo para ∀x∀y (x× y = x+ y)? Lembre-se de que o universo de uma estruturaou modelo e o seu conjunto de elementos. Neste caso, associamos o sımbolo < da linguagem L3

ao predicado < usual da aritmetica, que significa “menor” (x < y e “x e menor do que y”). Eimportante lembrar que, apesar do sımbolo ser o mesmo, <, eles sao diferentes na linguagem (naopossui nenhum significado) e na estrutura (tem um significado, significa que um numero e menordo que outro na ordem dos numeros naturais). A mesma observacao vale para +, × e os sımbolosde constante. Sim, 0 e um sımbolo na linguagem L3, nao e o numero 0. Na estrutura A, 0 e onumero zero que conhecemos, 0 ∈ N.

E entao, a estrutura A com universo {0, 1} pode ser modelo para a formula ∀x∀y(x×y = x+y)?Claramente nao. Esta formula, interpretada nesta estrutura, quer dizer, “para todo x ∈ {0, 1} epara todo y ∈ {0, 1} temos x× y = x+ y”. Mas tomando x = 1, y = 0, temos

1× 0 = 1 + 0

Mas 1× 0 = 0 e 1 + 0 = 1. Entao A 6� ∀x∀y (x× y = x+ y).

Tomando-se a estrutura A′ de L3 na qual |A|′ e o conjunto N e os sımbolos <, + e × possuema interpretacao usual, temos que A′ e modelo para ∀x∃y (y = x + 1). Nos naturais, a soma deum numero com 1 sempre pertence aos naturais. Isto e, dado x ∈ N, x + 1 ∈ N. Note que estaestrutura nao e modelo para a formula ∀x∃y (x = y + 1). Interpretada, quer dizer “para todox ∈ N, existe um y ∈ N tal que x = y + 1”( y = x − 1). Tomando x = 0, y deveria ser −1, mas−1 6∈ N.

Usualmente, abreviamos a estrutura A para 〈{0, 1}, <,+,×, 0, 1〉.

Exemplo 13.9. Considere agora a linguagem L4 com os sımbolos de predicado D(x, y) e P (x),o sımbolo de funcao + e os sımbolos de constante 0 e 1. Procuraremos modelos para o conjuntoΓ = {∀x(x = 0∨x = 1∨P (x)),∀x(P (x)−→¬∃y (¬(y = 1)∧¬(x = y)∧D(x, y)),∃x∀y (x+y = y)}

Considere agora a estrutura A para L4 com universo |A| = {0, 1, 2, 5, 7}, predicado D(x, y)com significado “y divide x”, predicado P (x) com significado “x e um numero primo” e funcao +usual da aritmetica. Os sımbolos de predicado, funcao e constante da linguagem L4 sao associadosaos sımbolos de mesmo nome da estrutura. Pergunta-se: e A modelo para Γ? Vejamos.

1. a primeira formula, ∀x (x = 0 ∨ x = 1 ∨ P (x)), interpretada em A, diz que um numero de|A| = {0, 1, 2, 5, 7} e 0, 1 ou primo. O que e verdade, pois 2, 5 e 7 sao primos;

124

Page 129: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

2. a segunda formula, ∀x (P (x)−→¬∃y (¬(y = 1)∧¬(x = y)∧D(x, y)), interpretada em A, dizque para todo x do modelo, se x e primo entao nao e verdade que existe um y tal que y 6= 1,x 6= y e y divide x. Verdade, pois nenhum x primo e divisıvel por nenhum numero diferentede 1 e x;

3. a terceira formula, ∃x∀y (x+ y = y), interpretada em A, diz que existe um x ∈ {0, 1, 2, 5, 7}tal que para todo y deste conjunto, x+ y = y. E verdade e este x e o 0.

Como todas as formulas do conjunto Γ sao verdadeiras na estrutura A, entao A e modelo de Γ.

Exemplo 13.10. (Opcional) Veremos agora um exemplo de fatos a respeito de certa parte domundo, um Zoologico, que serao expressadas em formulas da Logica de Primeira Ordem. Estaparte do mundo e um modelo para as formulas que encontraremos. Neste exemplo, usaremossımbolos da linguagem diferentes dos sımbolos do modelo. Esteja atento a isto.

Suponha que, em um Zoologico, existam:

1. um elefante chamado Efan;

2. um leao chamado Leo;

3. duas gazelas chamadas Gal e Gel;

4. dois coelhos chamados Eloc e Eloa;

5. uma pantera chamada Pant;

6. um gramado, no cercado dos coelhos e gazelas, contendo duzentas mudas de grama chamadasg1, g2, ..., g200 (sim, as mudas de grama tem nomes!).

Ha varios fatos relevantes a respeito do Zoologico:

• Leo e Pant sao carnıvoros, Efan, Gal, Gel, Eloc e Eloa sao herbıvoros e gi e planta;

• quem e herbıvoro devora grama (admitiremos que Efan tambem devora);

• um carnıvoro nunca devora um outro carnıvoro;

• qualquer carnıvoro pode devorar qualquer herbıvoro exceto, naturalmente, Efan;1

• um carnıvoro nunca devora o que os animais que ele devora devora;2

• a pantera (onca) e o unico animal americano e todos os outros animais sao africanos (inclusiveos coelhos !). A grama tambem e africana;

1Podem, nao necessariamente vao, pois estao em um Zoologico.2Se x come y e y come z, entao x nao come z.

125

Page 130: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

O conjunto universo deste modelo possui 1 + 1 + 2 + 2 + 1 + 200 = 207 elementos.

Assuma que os fatos acima sao tudo o que sabemos sobre o Zoologico e seus animais. Iremosencontrar formulas que expressem os fatos descritos acima. Isto e, iremos encontrar formulas queespecifiquem completamente o modelo Zoo. Antes de fazer isto, precisaremos definir a linguagemLzoo em que expressaremos estas formulas.

Lzoo nao possui sımbolos de funcao. Os sımbolos de predicado unario sao Carnıvoro, Herbıvoro,Africano, Americano, Animal e Planta. Ha um sımbolo de predicado binario, Devora. Utilizaremosum sımbolo de constante Efan.

No modelo Zoo, os predicados correspondentes terao o seguinte significado:

1. Carnıvoro(x) indica que x e carnıvoro;

2. Herbıvoro(x) indica que x e herbıvoro;

3. Devora(x, y) indica que x pode devorar y;

4. Africano(x) indica que x e africano (animal ou planta);

5. Americano(x) indica que x e americano (das Americas);

6. Animal(x) indica que x e animal;

7. Planta(x) indica que x e planta.

Note que os predicados foram definidos a partir das informacoes relevantes a respeito do modelo.Agora devemos definir as formulas que caracterizam este modelo. Mas espere um pouco. Para quequeremos estas formulas? As informacoes relevantes a respeito do modelo ja nao estao descritasacima? Pensando bem, as informacoes estao todas descritas acima, pois por definicao o modeloe o que esta descrito. Mas nem todas as informacoes estao explıcitas. Por exemplo, nao estaexplıcito que Leo nao devora Pant. E nem que Efan e Eloa devoram gi. Ha muitas informacoesimplıcitas. Da maneira informal como esta descrito o modelo, nao e facil fazer deducoes nemprova-las que estao corretas. Precisamos de formulas que comprimam todas as informacoesdadas informalmente. Esta e a essencia de qualquer Ciencia: conseguir um conjunto de teorias3

que comprimam todos os dados experimentais do mundo a respeito de certa area. Por exemplo,a formula s = s0 + v0t + at2/2 contem todas as informacoes do mundo relacionadas a posicaode objetos macroscopicos em movimento com aceleracao uniforme. Todos os dados do universorelacionados a este tipo de movimento estao comprimidos nesta equacao.

Abaixo sao dadas as formulas que comprimem as informacoes do modelo do Zoologico, quechamaremos de Zoo. Nao sao utilizados os nomes dos animais e plantas — isto torna as formulasmais gerais. As formulas poderao, contudo, ser utilizados em outras situacoes, o que se tornaraclaro em breve.

Definicao 13.5. Seja ΓZoo o conjunto das formulas A1-A9 definidas abaixo. Dizemos que Zoo eum modelo de ΓZoo.

A1 ∀x (Herbıvoro(x)−→Devora(x, g)), sendo que g e uma meta-variavel que representa qualquerpe de grama (gi)

3Nao no sentido em que usamos esta palavra neste texto, mas no sentido usual de teoria cientıfica.

126

Page 131: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

A2 ∀x ∀y (Carnıvoro(x) ∧ Carnıvoro(y)−→¬Devora(x, y))

A3 ∀x ∀y (Carnıvoro(x) ∧ Herbıvoro(y) ∧ ¬(y = Efan)−→Devora(x, y))

A4 ∀x ∀y ∀z (Devora(x, y) ∧Devora(y, z)−→¬Devora(x, z))

A5 ∀x ∀y (Planta(x)−→¬Devora(x, y))

A6 ∀x ∀y (Americano(x) ∧ Americano(y)−→(x = y))

A7 ∀x (Carnıvoro(x)−→(∃y Devora(x, y))

A8 ∀x (Animal(x)−→(Carnıvoro(x) ∨ Herbıvoro(x) ∨ Planta(x)))

A9 ∀x (Africano(x)−→¬Americano(x))

A partir destas formulas, podemos utilizar as regras da Logica de Primeira Ordem para fazerdeducoes sem utilizar qualquer informacao do modelo. As deducoes podem ser feitas utilizando-seapenas a forma das formulas de ΓZoo. Ou seja, pode-se fazer deducoes puramente sintaticas quese revelam verdadeiras no modelo, que se supoe sejam uma parte do mundo “real”. Esta e a essenciada logica: a partir de um modelo (semantica) constroem-se axiomas e regras (sintaxe) e entaopodemos fazer deducoes utilizando unicamente as regras da logica, sem recorrer aos significados“informais” do modelo.

As formulas do modelo Zoo (Zoologico) estao dadas acima. Dizemos que Zoo e um modelo paraΓZoo. Para fazer deducoes sobre Zoo, podemos utilizar as formulas do conjunto ΓZoo e todos osaxiomas das teorias de primeira ordem. Como os axiomas das teorias de primeira ordem nao seraovistos em detalhes, utilizaremos a intuicao para fazer algumas deducoes sintaticas. Por exemplo,podemos deduzir que se ∀x P (x), entao ∃x P (x).

Abaixo estao alguns teoremas feitos com as formulas de ΓZoo. O raciocınio empregado paraconseguir estes teoremas nao sera mostrado, pelo menos nao de maneira detalhada.

1. ∃x (Herbıvoro(x)−→Devora(x, g)), sendo que g e uma meta-variavel que representa qualquermuda de grama (gi). Este teorema foi feito a partir de A1;

2. ∀x ∀y (Devora(x, y)−→(¬Carnıvoro(x) ∨ ¬Carnıvoro(y))), dado A4 e o fato4 de que (B ∧C−→¬A)←→(A−→(¬B ∨ ¬C)). De fato, B ∧ C−→¬A e um teorema se e somente seA−→(¬B ∨ ¬C) e um teorema.5

3. podemos reescrever A1 como ∀y (Herbıvoro(y)−→Devora(y, g)) e utiliza-lo em A4:

∀x ∀y (Herbıvoro(y) ∧Devora(x, y)−→¬Devora(x, g)))

4. ∀x (¬(Americano(x) ∧ Africano(x))), tirado de A9;

5. ¬∃x (Americano(x) ∧ Africano(x)), tirado do item anterior.

4Nao provado aqui, mas que pode ser facilmente provado pelo leitor por meio de uma tabela verdade.5Toda tautologia e um teorema da LPO.

127

Page 132: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Abstraindo os Axiomas

As formulas do conjunto ΓZoo podem ser abstraıdas ainda mais. Podemos empregar outra lin-guagem de primeira ordem Lzoo2 e substituir os predicados Carnıvoro(x), Herbıvoro(x), Devora(x, y),Africano(x), Americano(x), Animal(x) e Planta(x) por Pc, Ph, Pd, Paf , Pam, Pan e Pp. O nomeEfan e substituıdo por c, uma constante.

Definicao 13.6. Seja Γabs o conjunto das formulas A1-A9 definidas abaixo. Zoo e um modelo deΓabs.

A1 ∀x (Ph(x)−→Pd(x, g)), sendo que g e uma meta-variavel que representa qualquer muda degrama (gi)

A2 ∀x ∀y (Pc(x) ∧ Pc(y)−→¬Pd(x, y))

A3 ∀x ∀y (Pc(x) ∧ Ph(y) ∧ ¬(y = c)−→Pd(x, y))

A4 ∀x ∀y ∀z (Pd(x, y) ∧ Pd(y, z)−→¬Pd(x, z))

A5 ∀x ∀y (Pp(x)−→¬Pd(x, y))

A6 ∀x ∀y (Pam(x) ∧ Pam(y)−→(x = y))

A7 ∀x (Pc(x)−→(∃y Pd(x, y))

A8 ∀x (Pan(x)−→(Pc(x) ∨ Ph(x) ∨ Pp(x)))

A9 ∀x (Paf (x)−→¬Pam(x))

Mudando os nomes, obtemos um conjunto de formulas mais abstrato do que o anterior. Umapergunta surge entao naturalmente: sera que existe algum outro modelo para Γabs que nao Zoo?Existe e um outro modelo para Γabs esta na Figura 13.1, que chamaremos de Fig. Considere que

• as bolinhas pretas correspondem aos carnıvoros;

• os quadradinhos pretos correspondem aos herbıvoros;

• o quadradinho preto embaixo, envolvido por um quadrado, corresponde a Efan;

• os elementos do retangulo da direita correspondem aos africanos e os da esquerda aos amer-icanos (ha apenas uma bolinha a direita, da qual saem quatro setas);

• a bola grande pontilhada representa todas as mudas de grama — mas e apenas uma bola,nao 200;

• ha uma seta de x para y se x devora y;

128

Page 133: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Figura 13.1: Um modelo alternativo para o conjunto de formulas Γabs para o modelo do Zoologico

Os elementos da figura obedecem a todas formulas do conjunto Γabs. De fato, poderıamos teracrescentado mais bolinhas pretas e quadradinhos e mesmo assim a figura iria satisfazer Γabs. Estee um dos pontos positivos de sistemas axiomaticos: pode-se obter um conjunto de formulas paracerto modelo e estas formulas podem ser empregadas para modelos completamente diferentes dooriginal.

Observe que nao definimos os predicados do modelo da Figura 13.1. Isto e um dos exercıciosdo final da unidade.

Um outro modelo alternativo, chamado Num, pode ser tomado da Aritmetica. Considere oconjunto {5, 11, 13, 54, 701} e a correspondencia:

• 5 corresponde ao carnıvoro americano e 11 a um carnıvoro africano;

• todos os numeros correspondentes aos americanos (so o 5) possuem um unico dıgito. Todosos numeros correspondentes aos africanos possuem mais de um dıgito;

• o numero correspondente a planta, 701, e o unico que possui tres dıgitos;

• os numeros correspondentes aos herbıvoros sao 54 e 13, sendo este ultimo correspondente aconstante Efan;

• Devora(x, y) corresponde a x divide y + 1. Entao temos que 5 e 11 dividem 54 + 1, 54 e 13dividem 701 + 1 e 5 e 11 nao dividem 701 + 1.

O modelo Zoo pode ser definido um pouco mais formalmente agora. Zoo e modelo do conjuntode formulas Γabs da Definicao 13.6. O conjunto |Zoo| e

{Efan,Leo,Gal,Gel,Eloc,Eloa,Pant, g1, g2, ..., g200}

Os sımbolos de predicado de Pc, Ph, Pd, Paf , Pam, Pan e Pp sao associados respectivamente aospredicados Carnıvoro, Herbıvoro, Devora, Africano, Americano, Animal e Planta. Nao ha funcoesem Γabs. O sımbolo de constante c corresponde a Efan.

Note que os predicados de Zoo sao como definidos no inıcio desta Unidade — sao os fatos arespeito do modelo. Estes predicados podem ser definidos mais precisamente atraves de relacoes:

1. Carnıvoro = {Leo,Pant},

2. Herbıvoro = {Efan,Gal,Gel,Eloc,Eloa},

129

Page 134: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

3. Devora = {(x, y) | x ∈ Carnıvoro e y ∈ Herbıvoro, y 6= Efan ou x ∈ Herbıvoro e y =gi para algum i},

4. Africano = {Efan,Leo,Gal,Gel,Eloc,Eloa, g1, g2, ..., g200},

5. Americano = {Pant},

6. Animal = {Efan,Leo,Gal,Gel,Eloc,Eloa,Pant},

7. Planta = {g1, g2, ..., g200}.

Um predicado como Carnıvoro(x) dentro de uma formula deve ser interpretado como verdadeirose x ∈ Carnıvoro. Veremos se a formula ∀x(Pam(x)−→∃yPd(x, y)) e verdadeira no modelo Zoocomo definido acima. Em primeiro lugar, Pam e Pd correspondem a Americano e Devora em Zoo.Entao esta formula e verdadeira no modelo Zoo se,

Para todo x, x ∈ Americano existe um y tal que Devora(x, y)

ou seja,

Para todo x, x ∈ {Pant} existe um y tal que (x, y) ∈ Devora

Entao x so pode ser Pant e procuramos um y tal que (Pant, y) ∈ Devora. Ha varios elementosy a escolher. Escolheremos y = Gal. Sabemos que (Pant, Gal) ∈ Devora pois Pant ∈ Carnıvoro eGal ∈ Herbıvoro, as condicoes dadas na definicao da relacao Devora. Entao a formula e verdadeirano modelo Zoo, pois interpretando os sımbolos como se fossem do modelo, obtivemos uma formulaverdadeira.

E ∀x (Pd(x, g1)−→∃y Pd(y, x)) verdadeira no modelo Zoo? Esta formula, interpretada nomodelo Zoo, quer dizer que, se x devora g1, entao existe algum y que devora x. Em conjuntos, aquestao e a seguinte:

para todo (x, g1) ∈ Devora, existe y tal que (y, x) ∈ Devora?

Isto nao e verdade, pois Efan devora g1 mas ninguem o devora. Utilizando as relacoes, temos

(Efan, g1) ∈ Devora, mas nao existe y tal que (y, Efan) ∈ Devora

Logo a formula ∀x (Pd(x, g1)−→∃y Pd(y, x)) e falsa no modelo Zoo.

13.4 Definicao Formal de Modelo

A definicao formal de verdade emprega a nocao de satisfabilidade, definida abaixo. Para definiresta nocao, e antes necessario definir o que e o valor de um termo t em uma estrutura A dados osvalores que as suas variaveis livres devem assumir. O “valor de um termo t” e um valor em |A|resultado da avaliacao das possıveis funcoes em t e da substituicao das variaveis e constantes emt pelos respectivos valores. Por exemplo, considere um termo t=def x+ c avaliado em um modelodos numeros naturais em que x e substituıdo por 1 e c corresponde a 0. Entao o valor de t nestemodelo com x substituıdo por 1 e igual a 1 + 0, que e 1. Note que em 1 + 0, o + e a funcao soma

130

Page 135: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

do modelo, os numeros naturais. O + da definicao de t, x+ c, e apenas um sımbolo de funcao semsignificado.

Definicao 13.7. Considere A uma estrutura de uma linguagem L. Seja t um termo t(v1, v2, ...vn)com vi, v2, . . . vn meta-variaveis6 livres7 e ~a = (a1, a2, ...an) uma sequencia de elementos em |A|(ai ∈ |A|). O valor de t em A, utilizando-se ~a, e denotado por tA[~a] e definido indutivamente como:

1. ai se t e vi;

2. cA se t e c e cA e o valor de |A| associado a constante c de L;

3. fA(tA1 [~a], tA2 [~a], . . . tAk [~a]) se t e f(t1, t2, . . . tk).

Entao tA[~a] e na verdade a aplicacao de uma funcao especıfica para A que toma ~a e t comoparametros e produz um elemento de |A| como resultado:

gA : T ∗ × S∗−→|A|

T ∗ e o conjunto de termos da linguagem e S∗ e o conjunto de todas as sequencias de |A|, de todosos tamanhos. Usamos A em gA para indicar que g e especıfico para esta estrutura. Outra estruturaexigiria um g diferente.

Intuitivamente, tA[~a] e o elemento de |A| resultado da avaliacao de t em A utilizando ~a comovalores para as variaveis livres. Note que tA[~a] e um valor em |A| e t e apenas uma sequenciade sımbolos sem significado. Note que fA(tA1 [~a], tA2 [~a], . . . tAk [~a]) e um valor em |A| — a funcaorealmente e avaliada.

Exemplo 13.11. Como exemplo de calculo do valor de termos, considere a estrutura A =〈N,+,×, 0, 1〉, o termo t igual (x+ 1) � y e a sequencia ~a = (1, 3):

tA[~a] = (1 + 1) � 3 = 6

Mais formalmente, temos

((x+ 1) � y)A[~a] = (x+ 1)A[~a] � yA[~a]

= (xA[~a] + 1A[~a]) � yA[~a]

= (1 + 1) � 3

= 2 � 3

= 6

Repetiremos este calculo colocando i acima, sobre chaves, das partes da formula que sao sintaxe em para as partes que sao do modelo. As partes com i nao tem significado algum pois sao apenaslinguagem. Mas fornecendo-se um modelo A e uma sequencia ~a de valores para as variaveis livres,o termo resulta em um valor que e elemento do universo do modelo.

6Qualquer uma delas pode ser substituıda por qualquer outra variavel da linguagem.7Variaveis que aparecem em termos sempre sao livres.

131

Page 136: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

(

i︷ ︸︸ ︷(x+ 1) � y) A[~a] =

i︷ ︸︸ ︷(x+ 1) A[~a]

m︷︸︸︷�

i︷︸︸︷y A[~a]

= (i︷︸︸︷x A[~a]

m︷︸︸︷+

i︷︸︸︷1 A[~a])

m︷︸︸︷�

i︷︸︸︷y A[~a]

=

m︷ ︸︸ ︷(1 + 1) � 3

=

m︷︸︸︷2 � 3

=

m︷︸︸︷6

Utilizando a funcao gA, temos

gA((x+ 1) � y,~a) = 6 com ~a = (1, 3)

tA[~a] e o valor de t em A usando os valores de ~a para as variaveis livres.

Exemplo 13.12. Considere a estrutura A = 〈R,+, �, f, 0, 1, 2〉 na qual − representa a subtracaoe f e a funcao fatorial. Naturalmente, a linguagem possui sımbolos iguais a estes. Calculemosalguns termos usando sequencias diferentes:

(a) t e (((x2 + 2) � x1) � x3) + 1 e ~a = (5, 0, 3). Vejamos:

((((0︷︸︸︷x2 +2) �

5︷︸︸︷x1 ) �

3︷︸︸︷x3 ) + 1)A[~a] = ((((0 + 2) � 5)) � 3) + 1

= (2 � 5) � 3 + 1

= 10 � 3 + 1

= 31

(b) t e −(f(x) � 2) + y com ~a = (5, 250).

(−(f(x) � 2) + y)A[~a] = −(f(5︷︸︸︷x ) � 2) +

250︷︸︸︷y

= −(f(5) � 2) + 250

= −(120 � 2) + 250

= −(240) + 250

= 10

Note que o valor de t depende nao so dos valores de ~a, mas tambem da estrutura utilizada.Poderıamos ter valores diferentes em diferentes interpretacoes. Por exemplo, suponha que t =x1 + x2 e ~a = (1, 1). Na estrutura B =def < N, +, �, 0, 1 > dos numeros naturais, tB[~a] = 2. Masno modelo Z2, que contem apenas os elementos 0 e 1 e onde 1 + 1 = 0, temos tZ2 [~a] = 0.

132

Page 137: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Definicao 13.8. Seja A(v1, v2, ...vn) uma formula em uma linguagem L, vi, v2, . . . vn meta-variaveis, A uma estrutura de L e ~a uma sequencia em |A|. Escrevemos “~a satisfaz A em A”,denotado por A � A[~a], se uma das condicoes abaixo e satisfeita.

1. A e t1 = t2 e tA1 [~a] = tA2 [~a]. Ou seja,

A � (t1 = t2)[~a] sse tA1 [~a] = tA2 [~a]

O sımbolo = que aparece em t1 = t2 e o sımbolo da linguagem de primeira ordem. O sımbolo= em tA1 [~a] = tA2 [~a] e o igual do modelo A. Admite-se que todos os modelos utilizam o mesmosımbolo de igualdade e que este sımbolo e igual ao sımbolo das linguagens de primeira ordem.Uma notacao mais precisa utilizaria =A para denotar igualdade entre os elementos do modeloA;

2. A e P (t1, t2, ...tn) e (tA1 [~a], tA2 [~a], . . . tAn [~a]) ∈ PA. Ou seja,

A � P (t1, t2, ...tn)[~a] sse (tA1 [~a], tA2 [~a], . . . tAn [~a]) ∈ PA

3. A e ¬B e A 6� B[~a]. Ou seja,

A � ¬B[~a] sse A 6� B[~a]

Escrevemos A 6� B[~a] para “~a nao satisfaz A em A”. Isto e, utilizando as regras de satisfa-bilidade apresentadas aqui, nao se consegue provar que A � B[~a];

4. A e B ∨ C e A � B[~a] ou A � C[~a]. Ou seja,

A � (B ∨ C)[~a] sse A � B[~a] ou A � C[~a]

B e C nao necessariamente possuem todas as variaveis livres de B−→C. Entao poder-se-ia pensar que B[~a] nao tem significado, pois o numero de valores em ~a pode ser maior do que onumero de variaveis livres emB. Entao, considereB =def B(v1, v2, ...vn) e C =def C(v1, v2, ...vn);

5. A e ∃x B(x). Seja y uma variavel que nao pertence ao conjunto de variaveis utilizadas emA. Entao

A � (∃x B(x))[~a] sse existe b ∈ |A| tal que A � Bxy [b,~a].

onde |A| e o universo da estrutura A. O sımbolo Bxy e a formula B com x substituıdo por y.

Naturalmente, b substituira y nas aplicacoes indutivas para se descobrir a satisfabilidade deA.

Intuitivamente, A � A[~a], ~a satisfaz A em A, se A e verdade no modelo A segundo a inter-pretacao usual de verdade. Isto e, a formula e interpretada como se referisse exclusivamente aomodelo A: a igualdade e a igualdade no modelo, os sımbolos de predicados de A sao os predicadosdo modelo, o ∃x de A refere a um elemento especıfico do universo |A| e assim por diante.

Os conectivos derivados ∧, −→ e←→ sao definidos a partir de ¬ e ∨ e o quantificador universal∀ e definido usando ∃. A definicao de satisfacao para estes conectivos derivados e para ∀ e deduzidautilizando a definicao de satisfacao para formulas que usam ¬, ∨ e ∃. Entao temos

1. A � (B ∧ C)[~a] sse A � B[~a] e A � C[~a]

2. A � (B−→C)[~a] sse A 6� B[~a] ou A � C[~a]

133

Page 138: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

3. A � (B←→C)[~a] sse (A � B[~a] e A � C[~a]) ou (A 6� B[~a] e A 6� C[~a])

4. A � (∀x B(x))[~a] sse A � Bxy [b,~a] para todo b ∈ |A|

onde y e uma variavel que nao pertence ao conjunto de variaveis utilizadas em B e |A| e ouniverso da estrutura A. O sımbolo Bx

y e a formula B com x substituıdo por y.

A definicao de satisfacao dada acima exige que a estrutura obedeca as regras da logica classica.Por exemplo, quando se diz que os numeros naturais sao uma estrutura para uma certa linguagem8

exige-se mais do que a presenca das funcoes + e �. Exige-se, por exemplo, que neste pequenomundo dos numeros uma formula como ¬B seja considerada “verdadeira” se e somente se B sejaconsiderada “falsa”. E que ∀xB(x) seja considerada “verdadeira” se e somente se B e “verdadeira”quando x e substituıdo por cada um dos numeros naturais. Entao de certa forma as interpretacoesinterpretam tambem os sımbolos da logica como ¬, −→ e ∀. Estes sımbolos sao interpretados comona logica classica, o que pode ser observado nas definicoes de satisfacao acima:

• o ¬ e interpretado com um nao: A � ¬B[~a] sse ~a nao satisfaz B em A;

• o −→ e interpretado como no CP: A � (B−→C)[~a] sse ~a nao satisfaz B em A ou ~a satisfazC em A;

• o ∧ e interpretado como um “e” na linguagem natural (Portugues, Ingles): A � (B ∧ C)[~a]sse ~a satisfaz B em A e ~a satisfaz C em A;

• o ∨ e interpretado como um “ou” na linguagem natural: A � (B ∨C)[~a] sse ~a satisfaz B emA ou ~a satisfaz C em A;

• o ←→ e interpretado como um “se e somente se” na linguagem natural: A � (B←→C)[~a]sse (~a satisfaz B em A se e somente se ~a satisfaz C em A).

Uma estrutura entao e composta por uma “parte do mundo” mais as regras da logica classica.Note que a definicao de estrutura engloba, de certa forma, a definicao de tabelas verdade docalculo proposicional: elas dizem o que deve ser verdadeiro e o que deve ser falso (por enquanto,satisfazıvel e nao satisfazıvel).

Exemplo 13.13. Como exemplo, considere a estrutura A = 〈Z, <,+,×, 0, 1〉. Iremos verificar sealgumas sequencias satisfazem algumas formulas nesta estrutura.

(a) x = 2× x com ~a = (5, 3, 4). Aqui colocamos mais valores na sequencia do que variaveis livresna formula. Nao tem importancia. Usamos o primeiro valor, 2. Entao ficamos com

A � (x = 2× x)[~a] sse xA[~a] = (2× x)A[~a]

sse 5 = (2A[~a]× xA[~a])

sse 5 = (2× 5)

sse 5 = 10

8Por exemplo, a linguagem que utiliza os sımbolos +, �, < e a constante 0.

134

Page 139: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Entao ~a nao satisfaz x = 2 × x em A, A 6� (x = 2 × x)[~a]. Note que na segunda linha emdiante, × e a operacao multiplicacao em Z. Na primeira linha, a primeira ocorrencia de = eum sımbolo da linguagem e a segunda e a relacao de igualadade em Z.

(b) ∀y (0 < z−→(x < y−→x < y + z)) com ~a = (3, 2,−5). As variaveis livres sao x e z (3 para xe 2 para z).

A � (∀y (0 < z−→(x < y−→x < y + z)))[~a] sse

para todo y ∈ Z,A 6� (0 < z)[~a] ou A � (x < y−→x < y + z)[~a] sse

para todo y ∈ Z, (0 < 2) e falso ou (A 6� (x < y)[~a] ou A � (x < y + z)[~a]) sse

para todo y ∈ Z, (0 < 2) e falso ou (3 < y e falso ou 3 < y + 2)

Como 0 < 2 e satisfeito em Z, 3 < y nao e satisfeito para todo y (pois ha y menores ou iguaisa 3), temos que ~a = (3, 2,−5) satisfaz ∀y (0 < z−→(x < y−→x < y + z)) em Z. Ou seja,

A � (∀y (0 < z−→(x < y−→x < y + z)))[~a]

(c) ∀x(x + y = 0) com ~a = (1, 4). Para ~a satisfazer a formula em A, terıamos que ter x + 1 = 0para todo x ∈ Z. Como isto nao acontece, temos

A 6� (∀x(x+ y = 0))[~a]

(d) ∃y (x = y + z) com ~a = (0, 1, 2). x assume 0 e z, 1. Entao para termos

A � (∃y (x = y + z))[~a]

e necessario que exista um y ∈ Z tal que 0 = y + 1. Basta tomar y = −1.

Definicao 13.9. O fecho de uma formula A com variaveis livres x1, x2, . . ., xn e a formula

∀x1∀x2 . . . xn A

Exemplo 13.14. O fecho de x+ y = z e ∀x∀y∀z (x+ y = z). O fecho de ∃y (f(x1, y) < z + x2) e∀x1∀z∀x2∃y (f(x1, y) < z + x2).

Definicao 13.10. Uma formula A de uma linguagem L e verdadeira na estrutura A de L se esomente se toda sequencia ~a de |A| satisfaz A. Isto e, A � A[~a] para toda sequencia ~a. EscrevemosA � A.

Definicao 13.11. Uma formula A de uma linguagem L e falsa na estrutura A de L se e somentese nenhuma sequencia ~a de |A| satisfaz A. Isto e, A 6� A[~a] para toda sequencia ~a. EscrevemosA 6� A.

135

Page 140: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Entao uma formula A e verdadeira em uma estrutura se e somente se o fecho de A e verdadeiro.

Estas definicoes sao muito, muito importantes. Elas dizem quando uma formula e verdadeirae quando e falsa. Estas definicoes correspondem, aproximadamente, no Calculo Proposicional,a uma formula ser tautologia (verdadeira) e contradicao (falsa). Uma estrutura A na Logica dePrimeira Ordem corresponde as tabelas verdades dos conectivos no CP. E uma sequencia ~a em A

na LPO corresponde a uma atribuicao de valores as variaveis de uma formula no CP; isto e, umalinha da tabela verdade.

Ha algumas observacoes importantes sobre as definicoes acima:

• uma certa formula pode nao ser verdadeira nem falsa. Por exemplo, na estrutura A = 〈Z, <,+,×, 0, 1〉, a formula

x = 2× x

nao e verdadeira nem falsa. Temos

A � (x = 2× x)[~a] para a = (0) mas

A 6� (x = 2× x)[~b] para b = (1)

• se uma formula e verdadeira entao ela nao e falsa. Se e verdadeira, pela definicao ela naopode ser falsa. Se e falsa, pela definicao de formula falsa ela nao pode ser verdadeira;

• uma formula fechada, sem variaveis livres, e sempre verdadeira ou falsa.

Definicao 13.12. Uma estrutura A de uma linguagem L e um modelo para uma formula A emL se A e verdadeira em A. Escrevemos A � A.

Exemplo 13.15. Como exemplo, considere a estrutura A = 〈Z, <,+,×, 0, 1〉. Iremos verificar sealgumas formulas sao verdadeiras nesta estrutura; isto e, se a estrutura e modelo para cada umadas formulas.

(a) ∃x (x = 2× x). Ha algum x ∈ Z tal que x = 2× x? Sim, x = 0:

0 = 2× 0

0 = 0

Correto. Note que avaliamos a formula dentro do modelo. Assim, os sımbolos = e × queaparecem nestas duas formulas sao o igual do modelo e a multiplicacao em Z. Entao

A � ∃x (x = 2× x)

Ou, se preferir, Z � ∃x (x = 2× x);

136

Page 141: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

(b) ∀x∀y∃z (0 < z−→(x < y−→x < y + z)). Para todo x, y e z de Z, se z > 0 entao se x < ytemos x < y + z? Claramente sim. Esta e uma formula do tipo A−→(B−→C) que ja vimos(Exercıcio 6.8) ser logicamente equivalente a A ∧ B−→C. Entao a formula acima quer dizer“se z > 0 e x < y temos x < y + z”? Sim, pois z e positivo e temos x < y < y + z.

EntaoA � ∀x∀y∃z (0 < z−→(x < y−→x < y + z))

Ou, se preferir, Z � ∀x∀y∃z (0 < z−→(x < y−→x < y + z));

(c) ∀x∃y (x + y = 0). Para todo x de Z existe um y em Z tal que x + y = 0? Sim. Escolhendox = n, basta tomar y = −n. Este y sempre existe em Z. Logo

A � ∀x∃y (x+ y = 0)

(d) ∀x∃y (x = y+1). Verdadeiro. Se tomarmos x = n, n ∈ Z, podemos tomar y = n−1. Note quese o modelo fosse N, esta formula seria falsa, pois para x = 0 nao existe y tal que 0 = y + 1.Concluindo,

A � ∀x∃y (x = y + 1)

(e) ∀x∀y∀z (x < y∧y < z−→x < z). Esta formula e claramente verdadeira em N, Z e R. A provae trivial e deixada como exercıcio;9

(f) ∀x∃y (x × y = 1). Esta formula quer dizer que “para todo x ∈ Z, existe um y ∈ Z tal quex × y = 1”. Falso. Tome x = 2. Nao ha y em Z tal que x × y = 1. Se a estrutura fosse R,esta formula seria verdadeira. Concluindo,

Z 6� ∀x∃y (x× y = 1)

R � ∀x∃y (x× y = 1)

Exemplo 13.16. Como exemplo, considere a estrutura A = 〈N, D,<,+,×, 0, 1〉 na qual D e umarelacao binaria tal que D(x, y) se e somente se x divide y. Exige-se que x 6= 0. Entao

(a) ∀x∃y (y 6= 1 ∧D(y, x)). Falso. Tome x = 1. Nao ha y 6= 1 que divide 1;

(b) ∀x(1 < x−→(∃y (y 6= 1∧D(x, y))). Para todo x > 1, x ∈ N, existe um y ∈ N, y 6= 1 tal que xdivide y. Quer dizer, todo numero inteiro maior do que 1 e divide um numero diferente de 1.Verdadeiro, pois todo numero divide o seu dobro;

(c) ∀x(1 < x−→(∃y (y 6= 1 ∧ x 6= y ∧ D(y, x))). Usamos x 6= y para ¬(x = y). Esta formula efalsa, pois os numeros primos so sao divisıveis por 1 e por eles mesmos. Entao se tomarmos xcomo 7, por exemplo, a formula e falsa. E

(1 < x−→(∃y (y 6= 1 ∧ x 6= y ∧D(y, x))

tem que ser verdadeira para todo x ∈ N.

9Isto significa que o escritor nao teve paciencia suficiente para colocar a prova aqui. Entao ele deixou para oleitor esta responsabilidade.

137

Page 142: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Definicao 13.13. Uma estrutura A de uma linguagem L e um modelo para um conjunto deformulas Γ em L se A e modelo para cada uma das formulas de Γ. Escrevemos A � Γ.

Entao A e modelo de Γ se e somente se

A � A para todo A ∈ Γ

Exemplo 13.17. Por exemplo,

N � Γ no qual

Γ = {∃x (y + x = y),∀x∃y (y = x+ 1),∀x (x = 0 ∨ 0 < x)}

R � Γ no qual Γ = {∀x(x < x + 1),∀x∀y (x < y−→¬(x = y)), ∀x∀y∀z (x < y ∧ y <z−→x < z)}

Z � Γ no qual Γ = {(x× (y + 1) = x× y + x),∀x∃y (x+ y = 0)}Definicao 13.14. Escrevemos Γ � A para indicar que A e verdadeira em todos os modelos doconjunto Γ.

Isto e, para qualquer A modelo de Γ, entao A � A.

Exemplo 13.18. Seja LP uma linguagem com uma unica constante 0, os sımbolos de funcaobinarios + e � e sımbolo de funcao unario posfixado ′. Este ultimo sımbolo sera utilizado como x′

(quando interpretado nos numeros naturais, significa o sucessor de x, que e x+ 1).

F1 x = y−→(x = z−→y = z)

F2 x = y−→(x′ = y′)

F3 0 6= x′, que e o mesmo que ¬(0 = x′)

F4 x′ = y′−→x = y

F5 x+ 0 = x

F6 x+ y′ = (x+ y)′

F7 x � 0 = 0

F8 x � (y′) = (x � y) + x

F9 (A(0) ∧ (∀x (A(x)−→A(x′))))−→∀x A(x) para qualquer formula A.

Considere que ΓP seja o conjunto de formulas F1-F9. Por [F9], ha infinitas formulas em ΓP .Entao temos

ΓP � 0 + x = x

ΓP � ∀x (¬(x = 0)−→¬(x = 0′′ � x))

ΓP � ∀x∀y (x+ y = y + x)

ΓP � ¬(x = 0)−→∃y (y′ = x)

138

Page 143: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Supoe-se que ΓP seja suficientes para caracterizar a Aritmetica, que e um modelo B no qual valemas “verdades” usuais sobre numeros, como 1+1 = 2, ∀x∀y(x+y = y+x) e (x+0′′)�y = (x�y)+0′′ �y.Estas formulas sao chamadas de “axiomas de Peano”.

O leitor pode se perguntar porque a definicao de estrutura e modelo. Estas definicoesforam feitas sob medida para representar estruturas matematicas como os numeros naturais e suasoperacoes, os numeros reais, as diferentes geometrias, grupos, etc.

Lema 13.1. A e falso em uma estrutura A se e somente se ¬A e verdadeiro.

Prova. A e falso em uma estrutura A (definicao de formula falsa) sse nenhuma sequencia ~a de|A| satisfaz A em A sse (expandindo “nenhuma sequencia”) toda sequencia ~a de |A| nao satisfazA em A sse (pela definicao 13.8 de 6�) para toda sequencia ~a de |A| tem-se A 6� A[~a] sse (peladefinicao 13.8 de satisfacao de ¬B) para toda sequencia ~a de |A| tem-se A � ¬A[~a] sse (definicaode formula verdadeira em uma estrutura) ¬A e verdadeira.

Esta prova poderia ser resumida [8] para : uma sequencia ~a satisfaz ¬A sse ~a nao satisfaz A.Portanto, todas as sequencias satisfazem ¬A sse nenhuma sequencia satisfaz A. Ou seja, ¬A everdadeira sse A e falsa.

E importante observar que, se A possui variaveis livres, A poderia nao ser verdadeiro nem falsoem uma estrutura. Mas se A e verdadeiro em uma estrutrura A, ¬A e falso. E se A e falso em A,¬A e verdadeiro. Entao temos tres possıves “valores verdade” para uma formula A com variaveislivres: V, F, I. Este ultimo sımbolo representa “a formula nao e nem verdadeira nem falsa”.

Pode-se concluir que, se uma formula A nao e verdadeira, A pode ter tanto o valor verdade Fcomo I. Entao se A nao e verdadeira nao se pode concluir que A possui o valor verdade F, que Ae falsa.

Definicao 13.15. Uma formula A de uma linguagem L e logicamente valida se e somente seela e verdadeira em todas as estruturas de L.

Uma formula e verdadeira em uma estrutura se ela e verdadeira naquele pedaco “mundo real”que chamamos de estrutura de uma linguagem (veja definicao 13.10). Se uma formula e verdadeiraem todas as estruturas, entao e claro que a veracidade dela nao depende de algo particular denenhuma parte do “mundo real”, a sua veracidade nao depende das estruturas. Isto significa que aformula e logicamente valida por causa da definicao 13.10 de verdade, que por sua vez dependeda definicao 13.8 de satisfacao. A definicao de satisfacao depende das regras da logica usuais, comoA−→B e verdade se A e falsa ou B e verdade. Entao a definicao de logicamente valida coincidecom a definicao usual, que e ser verdade independente de uma estrutura especıfica. E “verdade”apenas pelas regras da logica.

A Figura 13.2 mostra conjuntos de formulas verdadeiras em tres estruturas de uma linguagemL. Assuma que estas tres estruturas representem todas as possıveis estruturas desta linguagem. Asformulas logicamente validas em L estao na interseccao de todos os tres conjuntos representadosna figura, que e a area em cinza.

Pela definicao de logicamente valido, temos que todos os axiomas sao logicamente validos.

Como um exemplo de formula logicamente valida temos

139

Page 144: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Figura 13.2: Conjuntos representando formulas verdadeiras nas estruturas de uma linguagem L.Assuma que as tres estruturas representadas representem todas as estruturas desta linguagem.

• ∀x A−→∃x A, que quer dizer, em uma estrutura, que se todos os elementos do modelosatisfazem certas propriedades dadas por A, entao existe um elemento que satisfaz aquelaspropriedades;

• A−→A, obvio;

• ∃xB−→(∀xA(x)−→A(t)), pois ∀xA(x)−→A(t) e logicamente valida. Vejamos porque. Estaformula quer dizer que, para todo x do universo do modelo, se A(x) for valido entao A(t)tambem o sera (note a precedencia: (∀xA(x))−→A(t)). Como A(x) e verdadeiro para todosos elementos do universo, sera valido para um valor do termo t quando interpretado nomodelo. Pelas propriedades do conectivo −→, a formula toda e logicamente valida (se B eV , entao A−→B e V ).

Definicao 13.16. Considere as formulas A e B de uma mesma linguagem L. Dizemos que umaformula A logicamente implica uma formula B se, para toda estrutura de L, toda sequenciaque satisfaz A tambem satisfaz B.

Exemplo 13.19. Seja A=def ∃x (P (x, y) ∧ Q(x, y)) e B =def ∃x Q(x, y). Entao A implica logi-camente B. Para cada sequencia ~a que satisfaz A e cada estrutura A, temos A � (∃x (P (x, y) ∧Q(x, y)))[~a] o que implica em A � (∃xQ(x, y))[~a]. Em resumo, se temos X e Y em uma estrutura,entao temos obrigatoriamente Y nesta mesma estrutura. Nao e possıvel ter uma estrutura comuma sequencia que satisfaz a primeira formula sem satisfazer a segunda.

Definicao 13.17. Considere as formulas A e B de uma mesma linguagem L. Dizemos que umaformula A e logicamente equivalente a uma formula B se A implica logicamente B evice-versa.

Exemplo 13.20. Seja A=def ∀x (R(x, y, z)−→S(y, x)) e B =def ∀x (¬S(y, x)−→¬R(x, y, z)). Asduas formulas sao logicamente equivalentes pois X−→Y ≡ ¬Y−→¬X.

Definicao 13.18. Considere a formula A e um conjunto Γ de formulas de uma linguagem L. Umaformula A e uma consequencia logica de um conjunto de formulas Γ se A e verdadeira emtodos os modelos de Γ. Isto e, se A � Γ para certo modelo A, entao A � A. Escrevemos Γ � Acomo na Definicao 13.14.

140

Page 145: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Exemplo 13.21. Neste exemplo usaremos os axiomas de Peano do exercıcio 13.18, o conjuntoΓP . A partir destes axiomas, temos

ΓP � x+ y = y + x

ΓP � ∃x(y + y = x)

ΓP � ∃z (¬(z = 0) ∧ x+ z = y)−→¬(x = y)

Para provar que Γ � A, tome um modelo A qualquer (generico, nao especıfico) de Γ e proveque A � A. Por exemplo, provaremos que

∀x1 Q(x1) � Q(c)

no qual c e uma constante da linguagem.

Seja A um modelo de ∀x1 Q(x1). Entao temos Q(b) para todo elemento b ∈ |A| e consequente-mente, Q(c), pois c refere-se a um elemento especıfico de A. Note que Q(b) refere-se ao predicadodo modelo e Q na formula e apenas um sımbolo da linguagem.

Para provar que Γ 6� A, basta encontrar um modelo de Γ em que A e falsa. Por exemplo,suponha que queremos provar que

Q(c) 6� ∀x Q(x)

Claramente isto e correto, pois se temos Q(c) nao necessariamente temos Q(x) para todox da estrutura. Se alguem tem olhos azuis, nao necessariamente todo mundo tem olhos azuis.Acharemos um contra-exemplo concreto para este caso.

Considere o modelo A com universo |A| = {0, 1} que associa a constante c da linguagem o elemento0. O predicado Q e {0}. Entao A � Q(c)[b] para todo b ∈ |A|, pois 0 ∈ Q e b nao e utilizado. Oumais claramente, A � Q(c) pois temos Q(0) na estrutura A. Mas 1 6∈ Q e portanto nao e verdadeque para todo x do universo da estrutura, temos Q(x). Mais formalmente, nao e verdade que

A � (∀x Q(x))[b] para todo b ∈ |A|

Isto significaria 0 ∈ Q e 1 ∈ Q. Nao se esqueca de que usamos Q para sımbolo de predicado (nasformulas) e Q para o predicado da estrutura.

13.5 Consideracoes Finais

Esta Unidade ensinou como associar conjuntos de formulas a algo chamado modelo. Ou o contrario,podemos abstrair o modelo em um conjunto de formulas, colocando nelas apenas os fatos que nosinteressam. Vimos que um conjunto de formulas pode ser associado a mais de um modelo. Defato, qualquer conjunto de formulas pode ser associado a nenhum ou a infinitos modelos. Sim,pode nao existir nenhum modelo para as formulas. Por exemplo, nao ha nenhum modelo para aformula P (x) ∧ ¬P (x) pelo simples fato de que ela nao e verdadeira de nenhum modo.

141

Page 146: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

A associacao de formulas a um modelo e uma ferramenta muito util. Inicialmente abstraımoso modelo para um conjunto de formulas Γ e a partir daı podemos trabalhar estas formulas sintati-camente. Utilizando Γ, os axiomas da Logica de Primeira Ordem e as regras de deducao, podemosproduzir teoremas que sao sempre verdadeiros no modelo. Em resumo, podemos produzir verdadesa respeito do mundo utilizando apenas algumas poucas regras da logica.

13.6 Exercıcios

13.1. Defina estrutura para uma linguagem. De um exemplo de linguagem e de duas estruturaspara ela.

13.2. As funcoes de uma estrutura podem ser de um subconjunto do universo para outro subcon-junto ?

13.3. Explique a frase: “um conjunto de formulas logicas comprimem informacoes sobre uma partedo mundo real”. Na sua explicacao, explique porque as deducoes que podem ser feitas utilizandoas formulas permitem comprimir uma grande quantidade de informacao em poucas formulas.

13.4. (Muito Importante) Faca um modelo A para cada um dos itens abaixo tal que

(a) os predicados unarios P e Q, que sao subconjuntos de |A|, satisfacam P ⊂ Q;

(b) os predicados unarios P e Q satisfacam P ⊂ Q e P 6= Q;

(c) os predicados unarios P e Q satisfacam P ∩Q = ∅;

(d) os predicados unarios P e Q satisfacam P ∩Q 6= ∅;

(e) os predicados unarios P e Q satisfacam P ∪Q = |A|;

(f) os predicados unarios P e Q satisfacam P ∩Q 6= ∅ e P ∪Q 6= |A|;

(g) os predicados unarios P , Q e R satisfacam P ∩Q ∩R 6= ∅, P ∪Q ∪R 6= |A|;

(h) 1) R(x, y) sempre que x 6= y; 2) sempre que Q(x), P (y), x 6= y, entao R(x, y);

(i) todo x esteja relacionado (via uma relacao binaria R) com todo y diferente dele (o que e isto?);

(j) ha um grupo de elementos (com dois ou mais elementos — voce fixa este numero) relacionadosentre si via uma relacao binaria R sendo que nenhum elemento deste grupo se relaciona comnenhum outro elemento que nao pertence a este grupo.

13.5. (Muito importante) Prove que as formulas abaixo nao sao logicamente validas. Isto e, cadauma delas nao e valida em algum modelo.

1. ∀x∀y (f(x) = f(y)−→x = y)

2. ∀x∀y∀z (x < y ∧ y < z−→x < z)

3. R(x, y)

142

Page 147: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

4. P (x)−→Q(x)

5. R(x, y)←→∃x∃y P (x) ∧Q(y)

6. ∀x∃y (y × y = x)

7. R(x, y)−→S(x, y)

13.6. Faca dois modelos para a formula ∀x∀y∃z (¬(z = x) ∧ ¬(z = y)). Interpretada nestesmodelos, o que quer dizer a formula?

13.7. Considere uma estrutura A com universo {2, 4, 6, 8}, predicado < e funcao +. O predicado< e o usual da aritmetica. A funcao + e definida da seguinte forma: x + y = y + x, 2 + 4 = 6,2 + 6 = 8, 2 + 8 = 8, 4 + 6 = 8, 4 + 8 = 2, 6 + 8 = 4. Baseado nesta estrutura, faca:

(a) a linguagem apropriada para representar formulas que podem ser interpretadas nesta estru-tura;

(b) uma unica formula tal que A seja modelo desta formula;

(c) outra estrutura B diferente de A tal que B tambem seja modelo desta formula;

(d) um conjunto de formulas Γ com pelo menos duas formulas tal que A seja modelo deste con-junto;

(e) outra estrutura B diferente de A tal que B tambem seja modelo do conjunto Γ definido noitem anterior.

13.8. Faca um modelo para todas as formulas∀x(P (x)−→Q(x))∃x(¬(x = c)−→Q(x))∀x∀y(f(x) = f(y)−→x = y)∃x(f(x) = c)

13.9. Ha algum modelo para a formula ∀x∀y ¬(x = y)?

13.10. Considere uma estrutura A com universo {2, 3, 5, 7, 11, 13, . . .} = {x : x ∈ N e x e primo},predicados < e D (D(x, y) significa que x e divisıvel por y) e funcoes + ×. Os predicados e funcoespossuem a interpretacao usual da aritmetica. Baseado nesta estrutura, faca:

(a) a linguagem apropriada para representar formulas que podem ser interpretadas nesta estru-tura;

(b) uma unica formula tal que A seja modelo desta formula;

(c) outra estrutura B diferente de A tal que B tambem seja modelo desta formula;

(d) um conjunto de formulas Γ com pelo menos tres formulas tal que A e B sejam modelos desteconjunto.

143

Page 148: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

13.11. Escreva, em Portugues, o significado da formula ∀x (Pd(x, y)−→¬∃z Pd(y, z)) utilizandoo modelo Zoo. Verifique se esta formula e verdadeira no modelo Zoo.

13.12. Defina modelo de um conjunto de formulas. Faca um exemplo de modelo de um conjuntode duas formulas.

13.13. O valor de um termo t em uma estrutura A e um objeto de que tipo ? E sımbolo dalinguagem ? Constante ? Um numero natural ou real ?

13.14. Explique em palavras com se calcula o valor de um termo para uma estrutura utilizando~a como sequencia.

13.15. De um exemplo de modelo e de verificacao que A � (∀xA(x))[~a] para certa formula A comvariavel livre x e sequencia ~a.

13.16. Verifique se as seguintes formulas sao satisfazıveis na estrutura do Zoologico dada noExercıcio 13.10. Assuma que a sequencia ~a possui valores para as variaveis livres na ordem lexi-cografica. Isto e, se as variaveis livres de uma formula sao x, y e z e a sequencia for (v1, v2, v3),entao assume-me que v1 e o valor associado a x, v2 a y e assim por diante.

(a) ~a = (Pant) e A=def Carnıvoro(x) ∧ Americano(x)

(b) ~a = (Leo,Eloa) e A=def Planta(x)−→¬Devora(x, y)

(c) ~a = (Efan) e A=def ¬∃xDevora(x, y)

(d) ~a = (Efan,Leo,Pant) e A=def ∃x Herbıvoro(x) ∧ ¬∃y Devora(y, x)

(e) ~a = (Gal, g1) e A=def Devora(x, y) ∧ ¬Devora(y, x)

(f) ~a = (Gal, g1) e A=def Devora(x, y) ∧ ¬∃zDevora(z, x)

13.17. Faca outro modelo com numeros para as formulas Γabs. Sugestao: acrescente elementos noconjunto universo de Num.

13.18. Faca outro modelo para o conjunto Γabs. Suponha que os professores do ensino fundamentalde uma escola facam um curso em uma Universidade onde haja pelo menos dois professores, umhomem e uma mulher, que nao ensinem no ensino fundamental. A relacao Devora(x, y) e “x ensinay”.

13.19. Coloque o modelo Fig no formato apresentado ao fim da Unidade, em forma de relacoes.

13.20. Defina formula verdadeira e falsa em uma estrutura.

13.21. Faca uma estrutura e uma formula tal que a formula nao seja nem verdadeira nem falsana estrutura.

13.22. Considere modelos Ai, i ∈ N e formulas B, C e D tais que:

(a) Ai � B para i par;

(b) Ai � C para i primo;

144

Page 149: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

(c) Ai � D para i ımpar.

Verifique se as afirmacoes abaixo sao verdadeiras.

(a) A2 � {B, C}

(b) Ai � {C, D} para i primo;

(c) Ai � {B, C, D} para i ∈ N;

Justifique.

13.23. Prove que o axioma A−→(B−→A) e verdadeiro em qualquer estrutura.

13.24. Represente graficamente as formulas logicamente validas de uma linguagem (como feita naapostila). Mostre onde estao estas formulas no desenho.

13.25. Pode uma formula que represente uma informacao especıfica de uma estrutura ser logica-mente valida ?

13.26. Faca uma formula A de uma linguagem L tal que todos os modelos de A tenham apenasum elemento.

13.27. Faca uma formula A de uma linguagem L tal que todos os modelos de A tenham exatamentedois elementos.

13.28. Uma estrutura de uma linguagem L pode associar duas constantes da linguagem a ummesmo elemento do universo da estrutura ? De um exemplo.

13.29. Uma estrutura de uma linguagem L pode associar dois sımbolos de funcao da linguagema uma mesma funcao da estrutura ? De um exemplo.

13.30. Encontre modelos em que as formulas abaixo nao sao verdadeiras. Entao estas formulasnao sao logicamente validas.10

(a) ∃x P (x)−→P (c), onde c e uma constante da linguagem;

(b) ∃x ∃y ¬(x = y)−→¬(f(x) = f(y))

(c) ∀x (P (x) ∨Q(x))−→(∀x P (x) ∨ ∀x Q(x))

(d) (∃x P (x) ∧ ∃x Q(x))−→∃x (P (x) ∧Q(x))

(e) ∀x ¬(x = c), onde c e uma constante da linguagem;

(f) ∀x ∃y (f(x) = f(y)−→(x = y))

(g) ∀x P (x)−→∃y (Q(y)−→¬P (y))

10Se fossem seriam verdadeiras em todos os modelos. Evidentemente, assume-se que cada formula esta em umalinguagem L e que o modelo encontrado e estrutura de L.

145

Page 150: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

13.31. Considere uma linguagem com o sımbolo de funcao binario f e as constantes a e b. Umaestrutura A para esta linguagem associa a constante “a” a 0, a constante “b” a 1 e f a seguintefuncao

x y fA(x, y)0 0 00 1 11 0 11 1 0

Considere |A| = {0, 1}.

Verifique quais das formulas abaixo sao satisfeitas neste modelo

1. f(a, b) = f(b, a)

2. ∀x ∃y f(x, y) = a

3. ∃x ∀y f(x, y) = a

4. ∀x ∀y f(x, f(y, x)) = x

5. ∃x ∀y f(f(y, x), f(y, y)) = x

13.32. Utilizando a linguagem e os sımbolos de predicado do exercıcio 12.13, faca formulas que,quando interpretadas na Aritmetica, representem as seguintes frases

(a) dado um numero primo, existe outro primo maior do que ele (existem infinitos primos);

(b) existem x, y e z tal que x2 + y2 = z2;

(c) nao existem x, y e z e n > 2 tal que xn + yn = zn;

(d) se x > y e y > z, entao x > z;

(e) x somado a qualquer numero diferente de 0 e maior do que x;

(f) para todo x, x e menor do que x+ 1;

(g) Se x+ 1 = y + 1, entao x = y.

13.33. Um conjunto de sentencas e satisfazıvel se existe um modelo para elas e neste modeloha pelo menos uma sequencia que satisfaca a todas elas. Verifique se cada um dos conjuntos desentencas abaixo e satisfazıvel.

(a) {∀x ¬P (x), Q(x)−→P (x)}

(b) {∀x ∃y P (x, y), ¬∀x P (x, x)}

(c) {∃x P (x), ¬P (c), ∀x (P (f(x))−→Q(x, c))}

(d) {¬∃x P (x) ∨ ∃y Q(x), ¬∀x (P (x) ∧Q(x))}

(e) {∀x (P (x)−→Q(x)), P (c), Q(a), ¬∃x (Q(x)−→P (x))}

146

Page 151: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Unidade 14

Sintaxe da Logica de Primeira Ordem

Este capıtulo apresenta a Logica de Primeira Ordem como um sistema formal, sem referenciasa interpretacao dos sımbolos. Isto significa que os sımbolos em si nao significam nada. Assim,uma formula ∀x (P (x)−→Q(x)) deve ser lida “para qualquer x, P (x) implica Q(x)”. Mas isto eapenas a forma de se ler a formula. Ela nao significa que, se P (x) for verdade, Q(x) tambem osera. Isto e semantica, que foi vista na ultima Unidade. Aqui tudo o que interessa e que temos umconjunto de sımbolos e regras para manipular estes sımbolos. O que estes sımbolos representam,na semantica, e irrelevante. Poderıamos, por exemplo, trocar ∀ por � e −→ por ◦ e deixar estaUnidade exatamente como ela esta. Neste caso, uma formula �x(P (x) ◦ Q(x)) poderia ser lida,por exemplo, como “Quadrado x, P (x) cırculo Q(x)”. Porem, antes de apresentar os axiomas eregras de deducao, e necessario estudar algumas definicoes e precaucoes que devem ser tomadasno estudo deste tipo de sistema formal.

Definicao 14.1. O escopo de um identificador universal ou existencial e a regiao da formula ondeo quantificador e valido. Em ∀x A ou ∃x A, x e valido dentro da formula A.

Por exemplo, o escopo de x e y nas formulas abaixo estao indicadas pelos sobre-escritos.

(∀xx︷ ︸︸ ︷

(P (x)−→I(x)))∧∃yy︷ ︸︸ ︷

(y < 0 ∨ I(y))

∀xx1︷ ︸︸ ︷

(x < 0 ∨ ∃y f(y) = 0)∨∃xx2︷ ︸︸ ︷

(P (x) ∨ x = x+ 1)

Neste ultimo exemplo, o escopo do primeiro x esta indicado por x1 e o do segundo, por x2.

Note que, em ∀x A, A nao necessariamente utiliza a variavel x. Poderıamos ter uma formula∀x (y < 0 ∧ P (z)). Mas neste caso o quantificador poderia ser removido sem alterar nenhumapropriedade importante da formula.

Utilizaremos A(xi1 , xi2 , ...xik) para uma formula A que possivelmente, mas nao necessariamente,possui xi1 , xi2 , ... e xik como variaveis livres. Se A e

x < 1 ∧ ∀y P (x, y)podemos escrever A(x), o que faz sentido, e podemos escrever A(x, z), que nao faz sentido mas ecorreto. E tambem o mais confuso A(x, y). Escrever A(x, z) ou A(x, y) e equivalente a escrever

147

Page 152: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

A(x). Normalmente, queremos que a formula A(xi1 , xi2 , ...xik) tenha xi1 , xi2 , ... e xik como variaveislivres.

Os sımbolos P e f sao meta-sımbolos que representam um sımbolo de predicado qualquere um sımbolo de funcao qualquer. Assim, ∀x ∀y P (x, f(1, y, 3)) representa todas as formulas(infinitas delas) onde P e um sımbolo de predicado qualquer de aridade dois e f e um sımbolode funcao qualquer de aridade tres. Note que nao adotamos aqui a convencao utilizada no inıciodeste Capıtulo onde H(x), P (x), etc eram predicados especıficos, representavam exatamente umapropriedade como “homem”, “primata”, etc.

Definicao 14.2. Dizemos “uma ocorrencia de x e livre em B” se aquela ocorrencia de x aparecefora do escopo de um quantificador em B. Dizemos “uma ocorrencia de x nao e livre (e ligada)em B” se aquela ocorrencia de x aparece dentro do escopo de um quantificador em B. Quandonao ha ambiguidade de qual ocorrencia de x estamos falando, dizemos “x e livre” ou “x e ligado”.

Por exemplo, x e livre em∀y R(x, y)∃y∀z (z = y−→Q(x))x = x

mas x nao e livre em∃x∀y R(x, y)∃y∀z(z = y−→∀x Q(x))∀x (x = x)

Em(∀x P (x)) ∧ (x = c−→Q(x))

o primeiro x, em P (x), e ligado enquanto que x e livre nas proximas ocorrencias (na sub-formulax = c−→Q(x)).

Definicao 14.3. Usamos Ax(t) para uma formula A com uma variavel x nao ligada a nenhumquantificador sendo que x foi substituıdo por t.

Por exemplo, Ax pode ser P (x)−→Q(x). Neste caso, Ax(t) seria P (t)−→Q(t). Se Axy for∀z ((P (x, y)−→x < 0), entao Axy(1 + 2, 3) sera ∀z ((P (1 + 2, 3)−→1 + 2 < 0).

14.1 Axiomas e Regras de Deducao da Logica de Primeira

Ordem

Uma teoria de primeira ordem e um sistema formal que utiliza pelo menos os esquemas de axiomase as regras dadas abaixo. Considere que A, B e C sao formulas quaisquer de uma linguagem deprimeira ordem L; isto e, elas sao meta-formulas. x e uma meta-variavel; isto e, x pode sersubstituıdo por qualquer variavel da linguagem de primeira ordem. f e uma funcao qualquer dovocabulario da linguagem.

Esquemas de axiomas:

(A1) ¬A ∨ A (axioma proposicional)

148

Page 153: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

(A2) Ax(t)−→∃xA (axioma da substituicao)

(A3) x = x (axioma da identidade)

(A4) (x1 = y1 ∧ . . . ∧ xn = yn)−→f(x1, . . . xn) = f(y1, . . . yn) ou(x1 = y1 ∧ . . . ∧ xn = yn)−→(P (x1, . . . xn)←→P (y1, . . . yn)) (axiomas da igualdade)

O ultimo axioma pode ser aplicado a qualquer funcao da linguagem empregada. Por exemplo,se tivermos uma funcao g binaria, o axioma para esta funcao e:

(x1 = y1 ∧ x2 = y2)−→g(x1, x2) = g(y1, y2)

Considere uma linguagem com sımbolos de funcao + e �, sımbolos de predicado < e sımbolosde constante 0 e 1. Entao, como exemplo do axioma A2, temos

1 � 0 = 0−→∃x (1 � x = 0)

onde A(x) e 1 � x = 0 e t do axioma e 0 (entao A(t) e A(0) que e 1 � 0 = 0).

Naturalmente, cada um dos esquemas de axiomas pode dar origem a infinitos axiomas.

Regras de deducao ou inferencia:

expansao: se A e um teorema, entao A ∨B e um teorema, onde B e uma formula qualquer;

eliminacao: se A ∨ A e um teorema, entao A e um teorema;

associatividade: se A ∨ (B ∨ C) e um teorema, (A ∨B) ∨ C e um teorema;

corte: se A ∨B e ¬A ∨ C sao teoremas, B ∨ C sao teoremas.

introducao do ∃: se x nao e livre em B (nao existe ou e ligado) e A−→B e teorema, entao(∃xA)−→B e teorema.

O primeiro axioma e as quatro primeiras regras sao as mesmas do CP. Como exemplo da regrada introducao do ∃, considere que R(x, y)−→∃z P (z) e teorema. Entao por esta regra,

(∃x R(x, y))−→∃z P (z)

e teorema. Aplicando a regra novamente com y, temos que

(∃y ∃x R(x, y))−→∃z P (z)

e teorema.

Definicao 14.4. Uma sequencia de formulas B1, B2, ..., Bn e uma prova de Bn se cada Bi e:

(a) uma instancia de um dos esquemas de axiomas A1-A4;

(b) resultado da aplicacao de uma das regras de inferencia com Bj e/ou Bk, sendo que j, k < i;

149

Page 154: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Bn e um teorema do Logica de Primeira Ordem.

Exemplo 14.1. ` ((∃x A)−→A) ∨B

1. ¬A ∨ A, axioma, equivalente a A−→A

2. (∃x A)−→A, pela regra da introducao do ∃

3. ((∃x A)−→A) ∨B, pela regra da expansao.

Definicao 14.5. Considere um conjunto Γ de formulas. Uma sequencia de formulas B1, B2, ...,Bn e uma prova de Bn considerando Γ com hipoteses se cada Bi e uma formula de Γ ou obtido deacordo com o definicao 14.4. Escrevemos Γ ` A para “A e teorema tomando-se Γ como hipotesesou premissas”.

Note que uma teoria de primeira ordem pode ter axiomas especıficos para certo domınio, alemdos axiomas A1-A7. Por exemplo, uma LPO para formalizar a Aritmetica teria axiomas como

∀x (x+ 0 = x)∀x∀y (x.(y + 1) = x.y + x)

Estes axiomas sao chamados de axiomas proprios ou axiomas nao logicos.

14.2 Meta-teoremas e Definicoes sobre as Teorias de Primeira

Ordem

Frequentemente sera necessario substituir uma variavel livre por um termo. Por exemplo, dada aformula

∀x ∃z (x+ z = y)

pode ser necessario substituir y pelo termo 2 + 3. Entao terıamos

∀x ∃z (x+ z = 2 + 3)

Nao houve problema algum, o significado inicial da formula continua intacto. Considere por ummomento que esta formula se refere aos elementos de Z (inteiros positivos e negativos) e que possuio significado usual. Neste caso, para todo x, dado um y, existe um z tal que x+z = y. Substituindoo y por 2 + 3 o significado continua valido: para todo x, existe um z tal que x+ z = 2 + 3. Mas ese o termo tiver variaveis? Substitua y por 2 + w:

∀x ∃z (x+ z = 2 + w)

Nao houve nenhum problema: para todo x, dado 2 +w, existe um z tal que x+ z = 2 +w. Mas ese y for substituıdo pelo termo 2 + z? Teremos

∀x ∃z (x+ z = 2 + z)

Agora a interpretacao e: para todo x, dado 2 + z, existe um z tal que x+ z = 2 + z. O significadomudou. Utilizando as regras usuais da Aritmetica, esta formula esta dizendo simplesmente que,para todo x, x = 2. O que aconteceu? Colocamos um termo, 2 + z, que continha uma variavel,

150

Page 155: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

z, que ja estava ligada (pelo ∃). Isto sempre mudara o “significado” da sentenca. Entao este tipode substituicao sera proibido. So se podera substituir, em uma formula A, uma variavel y por umtermo t se t for livre para y em A.

Se t for f(w) + 2, podemos substituir y por t nas seguintes formulas

∀x (y < x)∃x1 ∀x2 (f2(x1, x2, y) = 0)∀y (f1(y) < 0)−→(y + 1 = 2)P (y) ∧ ∀x (x < y)−→∃w P (w)

Note que a terceira formula e (∀y(f1(y) < 0))−→(y+1 = 2) e que a terceira e ultima ocorrenciade y e livre nesta formula.

A quarta formula e (P (y) ∧ ∀x (x < y))−→∃w P (w). Substituindo y por f(w) + 2 nao causaproblemas, pois o w deste termo nao fica ligado depois da substituicao:

(P (f(w) + 2) ∧ ∀x (x < f(w) + 2))−→∃w P (w)

Um problema acontece sempre que uma variavel que e livre no termo se torna ligada na formuladepois da substituicao. Note que so podemos substituir uma variavel livre por um termo emuma formula. Nunca substituımos uma variavel ligada (a menos que retiremos o quantificador,mas isto e outra estoria).

Definicao 14.6. Se A e uma formula e t um termo, dizemos que t e livre para y em A senenhuma ocorrencia de y em A ocorre dentro do escopo de um quantificador (∀w, ∃w) onde w euma variavel em t.

Note que uma variavel em um termo e sempre livre, ja que termos nao possuem quantificadores.Uma variavel livre de uma formula so deve ser substituıda por um termo se o termo for livre paraa variavel na formula. Do contrario obtem-se resultados diferentes dos esperados.

Definicao 14.7. Uma teoria de primeira ordem sem axiomas nao logicos e chamada de calculode predicados de primeira ordem.

Existem infinitos calculo de predicados de primeira ordem pois, apesar de todos eles compar-tilharem os axiomas e as regras, os predicados e as funcoes podem variar. Entao um calculo depredicado pode ter como predicados P (x), Q(x, y, z) e como funcao f(x, y, z) enquanto que outrocalculo de predicados pode utilizar R(x, y) e funcao g(x). Um calculo de predicados pode mesmonao ter nenhum predicado e nenhuma funcao. E muito importante notar que, como um calculode predicados nao possui axiomas nao logicos, nenhuma caracterıstica pode ser especificada paraos predicados e as funcoes. Por exemplo, nao se pode especificar que um predicado P (x, y) ereflexivo em um calculo de predicados. Em uma teoria de primeira ordem qualquer, isto pode serfeito utilizando-se um axioma:

∀x ∀y (R(x, y)←→R(y, x))

Da mesma forma, em um calculo de predicados nao se pode especificar as caracterısticas dasfuncoes. Por exemplo, a funcao + da aritmetica possui a propriedade de que x somado a zero e x:

∀x (x+ 0 = x)

151

Page 156: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Teorema 14.1. Qualquer calculo de predicados de primeira ordem e consistente.

Este teorema e muito importante. Ele garante que, se os axiomas nao logicos nao foremutilizados, entao uma teoria de primeira ordem e consistente.

Definicao 14.8. Seja A uma tautologia no CP e A′ uma formula da linguagem de primeira ordem(LPO) obtida de A pela substituicao das variaveis proposicionais por formulas da LPO. Entao A′

e chamada de instancia de tautologia.

Teorema 14.2. Toda formula da LPO que e uma instancia de tautologia e um teorema de T.

Prova. Seja A uma tautologia no CP e A′ uma formula da linguagem de primeira ordem (LPO)obtida de A pela substituicao das variaveis proposicionais por formulas da LPO. Pelo Teoremada Completude (pagina 10.2), A e um teorema do CP. Tome a prova de A no CP e substitua osaparecimentos das variaveis proposicionais pelas formulas correspondentes da LPO. Se esta provautiliza variaveis proposicionais que nao aparecem em A, substitua estas variaveis por formulasquaisquer da LPO. A prova resultante desta transformacao e uma prova de A′ em T, linguagemde primeira ordem. Alem disso, foram utilizados apenas os axiomas e as regras do CP.

Observacao: uma formula ∀xP (x)−→∀xP (x) e um teorema de T pois B−→B e uma tautologiano CP. Mesmo envolvendo o quantificador universal, que nao esta presente no CP, esta formulasera considerada tautologia em T. Da mesma forma, (∀x P (x)) ∧ (∀x P (x))−→(∀x P (x)) e umatautologia e um teorema de T.

A formula ∀x (P (x)−→P (x)) nao e uma instancia de uma tautologia pois nao pode ser obtidapela Definicao 14.8. Mas claramente, esta formula e um teorema.

Definicao 14.9. Uma formula e fechada se nao possui variaveis livres.

Lema 14.1. Sempre que tivermos um teorema ou esquema de teorema A, podemos utilizar A ouqualquer de suas instancias dentro de uma prova, como e feito no meta-teorema a seguir. Isto epermitido porque, na prova, onde aparece A seria possıvel expandir a prova repetindo-se todos ospassos da prova do proprio A:

Prova de A: Prova de B que utiliza A1. A1 1. B1

2. A2 2. B2

... ...

... k. A 99K A prova de A poderia ser inserida aqui

... ...n. A ...

m. B

A proposicao seguinte garante que se modificarmos os nomes das variaveis em um teorema elecontinua teorema.

Definicao 14.10. Uma formula A′ e uma variante de A se A′ pode ser obtida a partir de A pelaaplicacao sucessiva de zero ou mais das seguintes regras:

152

Page 157: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

• troque uma variavel livre x em A por y em A′, sendo que x e y sao meta-variaveis e y naoaparece em A nem em A′;

• troque uma variavel quantificada, ∀x ou ∃x, e todas as variaveis x dentro do escopo destequantificador por y, desde que y nao tenha sido utilizada no escopo de ∀x em A e seja umavariavel nova em A′.

Em resumo, e sempre possıvel mudar os nomes das variaveis desde que elas nao conflitemcom nomes de outras variaveis que aparecam na mesma formula. Como exemplo, uma formula∀xP (x)−→∃xQ(x, c) tem como variantes ∀y P (y)−→∃xQ(x, c) e ∀y P (y)−→∃z Q(z, c) mas nao∀y P (x)−→∃w Q(y, c).

As seguintes formulas sao variantes de A=def ∀x1P (x1)−→∃yQ(x1, y, x2, z).

• ∀x4P (x4)−→∃xQ(x1, x, x2, w)

• ∀xP (x)−→∃yQ(x, y, x3, x2)

• ∀x1P (x1)−→∃zQ(w, z, x2, x1)

• ∀x1P (x1)−→∃yQ(x1, y, x2, z), a propria formula A.

Proposicao 14.1. Seja A′ uma variante da formula A. Entao ` A sse ` A′.

Considerando os lemas e as proposicoes acima, estamos em condicao de expandir a definicaode prova dada na pagina 149.

Definicao 14.11. Uma formula B e uma consequencia de um conjunto Γ de formulas se esomente se ha uma sequencia de formulas B1, B2, ..., Bn tal que B = Bn e cada Bi e um dos ıtensabaixo.

(a) uma tautologia;

(b) uma instancia de um dos axiomas A1-A4;

(c) resultado da aplicacao de uma das regras com Bj e/ou Bk, no qual j, k < i;

(d) um teorema ja provado;

(e) logicamente equivalente a Bj, j < i; isto e, Bi←→Bj e uma tautologia;

(f) uma variante de uma formula Bj, j < i;

(g) uma das formulas de Γ.

Definicao 14.12. Na definicao acima, quando Γ = ∅, a sequencia B1, B2, ..., Bn e uma prova deBn.

Faremos alguns exemplos de deducoes de formulas a partir de um conjunto de formulas.

Exemplo 14.2. Se ` A−→B e x nao e livre em A, entao ` A−→∀x B. Ou, equivalentemente,A−→B ` A−→∀x B.

153

Page 158: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

1. A−→B

2. ¬B−→¬A pois as formulas 1 e 2 sao logicamente equivalentes

3. ∃x ¬B−→¬A pela regra de introducao do ∃

4. A−→¬∃x ¬B pois 3 e 4 sao logicamente equivalentes

5. A−→∀x B

Exemplo 14.3. Se ` A, entao ` ∀x A. Ou A ` ∀x A.

1. A

2. ¬∀x A−→A pois se A e tautologia, X−→A e tautologia

3. ¬∀x A−→∀x A pelo exercıcio anterior

4. ∀x A, pois se ¬X−→X e tautologia, entao X deve ser tautologia.

Exemplo 14.4. Provaremos ` ∀x A−→Ax(t).

1. ¬Ax(t)−→∃x ¬A, axioma da substituicao

2. ¬∃x ¬A−→Ax(t), logicamente equivalente a 1

3. ∀x A−→Ax(t)

Como o termo t pode ser qualquer coisa, inclusive x, temos que ` ∀xA−→A(x) ou ∀xA ` A(x).Entao A ` ∀x A se e somente se ∀x A ` A por este exemplo e 14.3.

Exemplo 14.5. Provaremos C−→(A−→∀x B), C ` ∃x ¬B−→¬A

1. C−→(A−→∀x B), hipotese

2. C, hipotese

3. A−→∀x B, MP 1, 2

4. ¬∀x B−→¬A, logicamente equivalente a 3

5. ¬∀x ¬¬B−→¬A, logicamente equivalente a 4 pela Proposicao 6.4 (que tambem se aplica ateorias de primeira ordem), pois B ≡ ¬¬B

6. ∃x¬B−→¬A, pois pela definicao de ∃, temos que ∃x C e equivalente a ¬∀x¬C. O teoremaobtido pode ser escrito como ∃x ¬B−→¬A utilizando a definicao de ∃.

154

Page 159: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

14.3 Formas Normais

Nesta secao veremos as formas normais da Logica de Primeira Ordem. Elas sao uteis na linguagemProlog, uma linguagem utilizada principalmente em IA.

Definicao 14.13. Uma formula esta na Forma Normal Prenex (FNP) se ela esta na forma

Q1x1Q2x2 . . . Qnxn A

na qual A e uma formula sem quantificadores e Qi e ∀ ou ∃. A e chamada de matriz.

Exemplo 14.6. Estao na FNP: ∀x∀y∀z (x + y < z), ∃x P (x, y), ∃x∃y∀z∀t (P (x, t)−→¬Q(y) ∧R(z, t, x)).

Nao estao na FNP: ∀x¬∀y∀z (x+ y < z), ¬∃x P (x, y), (∀x (x+ 0 = x)) ∧ ∃y (z < y).

Definicao 14.14. Uma formula esta na Forma Normal Prenex Conjuntiva (FNPC) se ela esta naforma

Q1x1Q2x2 . . . Qnxn A

na qual Qi e ∀ ou ∃, A e uma formula sem quantificadores que e uma conjuncao de disjuncoes deformulas atomicas literais. Uma formula atomica literal e uma formula atomica ou a negacao deuma formula atomica.

Exemplo 14.7. Estao na FNPC: ∀x∀y∀z (x + y < z), ∃x1∃x2(P (x) ∧ (Q(y, x) ∨ ¬R(x)) e∀z∀x∀t ((x < y) ∨ P (z, t)) ∧ (z = t ∨ ¬R(t, x)).

Proposicao 14.2. Para cada formula da Logica de Primeira Ordem ha uma formula logicamenteequivalente na forma normal prenex conjuntiva (FNPC).

Nao provaremos esta proposicao. Mas mostraremos como obter a formula na FNPC dada umaformula A. Chamaremos X ′ a formula na FNPC da formula X. Entao pela Proposicao, X ≡ X ′.Assumiremos que A contem apenas os conectivos ¬, ∧, ∨, ∀ e ∃. Ha varios casos a considerar aoconverter A em A′:

(a) se A e da forma ¬B, converta B para FNPC obtendo B′, que e

¬Q1x1Q2x2 . . . Qnxn C

Pode ser facilmente provado que

¬Q1x1Q2x2 . . . Qnxn C ≡ Q1x1Q2x2 . . . Qnxn ¬C

no qual Q e ∀ se Q e ∃ e Q e ∃ se Q e ∀. Entao a formula final e

Q1x1Q2x2 . . . Qnxn ¬C

(b) se A e da forma B ∧ C com B =def Q1x1Q2x2 . . . QnxnD e C =def q1x1q2x2 . . . qmxmE, temosque A ≡ Q1y1Q2y2 . . . Qn+myn+m(D∧E) no qual yi sao variaveis novas, que nao aparecem emnenhuma das formulas B e C;

(c) troque (Q1x1Q2x2 . . . Qnxn B)∨C por Q1y1Q2y2 . . . Qnyn (B ∨C) no qual cada xi foi trocadopor yi, que e uma variavel nova, que nao aparece na formula original;

(d) troque B ∨ (Q1x1Q2x2 . . . Qnxn C) por Q1y1Q2y2 . . . Qnyn (B ∨C) no qual cada xi foi trocadopor yi, que e uma variavel nova, que nao aparece na formula original.

155

Page 160: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

14.4 Relacao entre Sintaxe e Semantica

Esta Secao apresenta as relacoes entre a sintaxe e a semantica. Uma teoria de primeira ordempossui os axiomas A1-A4 da Secao 14.1 que sao verdadeiros em qualquer modelo. Contudo, estesaxiomas nao sao suficientes para expressar as verdades de domınios especıficos. Por exemplo, naose pode provar que 1 + 0 = 1 utilizando-se apenas estes axiomas. Para tanto devem ser feitosaxiomas especıficos para a Aritmetica (ou qualquer outra parte da Matematica).

Os axiomas especıficos para certo domınio como a Aritmetica, teoria dos conjuntos, teoria dosgrupos, geometria euclidiana, etc nao serao considerados, neste texto, “axiomas” de uma teoriade primeira ordem. Eles serao colocados em conjuntos de formulas Γ, o que para todos os efeitospraticos e equivalente a considera-los axiomas de uma teoria de primeira ordem. Assim temos umconjunto ΓP de formulas que caracterizam a Aritmetica, um conjunto LG para a teoria dos grupose assim por diante.

Teorema 14.3. (Correcao) Considere uma linguagem L. Os teoremas em L das teorias deprimeira ordem sao verdadeiros em qualquer estrutura de L (sao logicamente validos).

Comentario: os axiomas sao verdadeiros em qualquer estrutura (logicamente validos) pelaproposicao ??. Pode-se provar que as regras de deducao (pagina 149) preservam a validade dasformulas — dadas formulas logicamente validas como entrada, elas produzem formulas logicamentevalidas. Entao como os axiomas sao verdadeiros e as regras preservam a validade, qualquer teoremadeduzido na LPO e logicamente valido.

Definicao 14.15. Um conjunto de formula Γ e consistente se existe uma formula A tal queΓ 6` A. Isto e, nao se pode deduzir qualquer formula a partir de Γ.

Em outras palavras, dada uma formula qualquer A, se Γ ` A entao Γ 6` ¬A. O que significaque, se Γ ` ¬A, entao Γ 6` A. Mas isto nao significa que se Γ 6` A entao Γ ` ¬A, pois neste caso seA nao e teorema, obrigatoriamente ¬A e teorema. Isto so seria verdade se tivessemos um “sse”:Γ ` A sse Γ 6` ¬A. Conclui-se que um conjunto de formulas consistente nao necessariamente ecompleto: pode existir uma formula A tal que Γ 6` A e Γ 6` ¬A.

O teorema da completude pode tambem ser colocado em uma outra forma, dada abaixo, quee equivalente a forma acima.

Teorema 14.4. (Teorema da Completude de Godel, 1930) Dado um calculo de predicados T queutiliza uma linguagem L, se uma formula fechada (sentenca) A de L e logicamente valida entaoA e um teorema de T.

Isto significa que um calculo de predicados T que utiliza uma linguagem L captura precisamenteas formulas logicamente validas de L. Ou seja, tome todas as estruturas de L. Ha algumas formulasque sao validas em todas as estruturas, o que inclui todos os axiomas das teorias de primeira ordem(pagina 148). Este teorema diz que todas estas formulas sao teoremas de T. Em sımbolos, temos

Se A � A para toda estrutura A de L, entao ` A

O teorema da correcao dado acima garante o contrario, que todos os teoremas de T sao verdadeirosem todas as estruturas. Em sımbolos, temos

Se ` A, entao A � A para toda estrutura A de L.

156

Page 161: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

E sempre importante lembrar que o calculo de predicados T e dado na linguagem L e que adefinicao de formula logicamente valida e feita sobre as estruturas de L.

Teorema 14.5. (Teorema da Completude de Godel, 1930) Dado um conjunto de formulas fechadasΓ e uma formula fechada A em uma linguagem L, entao Γ � A se e somente se Γ ` A.

Este teorema e deduzido a partir do teorema 14.4 e do teorema 14.3 da Correcao.

Ha varias maneiras de se provar que uma formula e logicamente valida, verdadeira em todosos modelos da sua linguagem:

1. fazendo uma deducao formal atraves dos axiomas. Pelo teoremas da Completude e Correcao,uma formula e teorema sse e logicamente verdadeira;

2. fazendo uma prova que utiliza a definicao de satisfabilidade (Definicao 13.8);

3. utilizando um outro metodo de prova equivalente a estes, que nao serao vistos neste curso.Como exemplo, temos tablos, deducao natural e resolucao de primeira ordem.

Para provar que uma formula nao e logicamente valida, deve-se encontrar um modelo em queela nao e verdadeira.

Como exemplo, provaremos que P (c)−→∀xP (x) nao e logicamente valida. Considere o modeloA com universo |A| = {0, 1} e onde P = {0} (este e o predicado do modelo, P = PA). A constantec da linguagem e associada a 0. Entao P (c) e verdadeiro mas ∀xP (x) nao e. Ou seja, qualquer queseja ~a, sequencia em |A|, A � P (c)[~a] mas para nenhuma ~a, |A| � (∀x P (x))[~a]. Isto e, A � P (c)mas A 6� ∀xP (x). Em palavras, P (c) e verdadeiro no modelo A e ∀xP (x) e falso, o que implica queP (c)−→∀x P (x) e falso neste modelo. Nesta prova utilizamos a definicao 13.8 de satisfabilidade ea definicao 13.10 de verdade em uma estrutura.

Uma formula que nao e logicamente valida tambem nao e um teorema (Teorema da Correcao 14.3).Mas provar que uma formula nao e teorema e mais complexo. Se a teoria utilizada for completa;isto e, ou ` A ou ` ¬A para toda formula A sem variaveis livres, entao pode-se provar que A naoe teorema encontrando-se uma prova formal para ¬A.

Uma pergunta interessante sobre modelos e se qualquer conjunto de formulas Γ possui mod-elos de qualquer tamanho. Ou se qualquer conjunto de formulas admite um modelo de tamanhoinfinito. A resposta e nao para ambos os casos. Se Γ contem unicamente a formula

A=def ∀x ∀y (x = y)

entao todos os modelos de Γ contem apenas um unico elemento. Esta conclusao esta baseada nofato de que o sımbolo “=” que aparece na formula acima e interpretado como “=” em um modeloqualquer de Γ e este igual possui a seguinte propriedade, descrita na Definicao 13.2 de estrutura:b e c representam elementos iguais no conjunto universo do modelo (que e uma estrutura) se esomente se b = c, onde este sımbolo “=” e o igual no modelo. Assim, nao podemos ter umaestrutura (ou modelo) composta por todos os triangulos possıveis que satisfacam a formula Adada acima. O universo deste modelo teria todos os possıveis triangulos de todos os tamanhose todos os angulos. Este modelo nao satisfaz a formula A acima porque um triangulo equilateroseria considerado diferente de um triangulo retangulo pela relacao de igualdade “=”.

157

Page 162: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

14.5 Alguns Exemplos de Modelos

Nesta secao apresentaremos alguns exemplos de modelos e os conjuntos de formulas que elessatisfazem. Ha inumeros exemplos na Matematica.

Grupos

Um grupo e um conjunto G e uma operacao ◦ tal que

1. para todo x, y ∈ G, x ◦ y ∈ G. A operacao ◦ e uma funcao

◦ : G2−→G

2. para todo x, y, z ∈ G,

(x ◦ y) ◦ z = x ◦ (y ◦ z)

3. existe um elemento e ∈ G tal que para todo x ∈ G, x ◦ e = x. O elemento e e chamado deelemento neutro ou identidade do grupo;

4. para cada x ∈ G, existe um elemento y ∈ G tal que x ◦ y = e. O elemento y e chamado deinverso de x e e escrito como x−1.

A linguagem LG para grupos utiliza o sımbolo de funcao ◦ de aridade dois e uma constante e.Os axiomas que descrevem grupos sao:

A1 (x ◦ y) ◦ z = x ◦ (y ◦ z)

A2 x ◦ e = x

A3 ∃y (x ◦ y = e)

Neste texto, nao se utiliza axiomas nao logicos em teorias de primeira ordem. Mas isto nao temimportancia. Definimos que as formulas acima, os axiomas de grupos, compoem um conjunto ΓG

de formulas que caracterizam grupos. Entao uma formula e ◦ x = x e teorema se ΓG ` e ◦ x = x.

Algumas observacoes a respeito destes axiomas sao necessarias:

1. nao e necessario colocar nenhum axioma para a especificacao “para todo x, y ∈ G, x◦y ∈ G”.Na definicao de uma estrutura (e de modelo), toda funcao toma elementos do universo eproduz um elemento do mesmo universo;

2. por causa da equivalencia logica A ≡ ∀xA, nao e necessario colocar quantificadores universais(∀) no inıcio dos axiomas;

3. pode-se escrever A1 na notacao usual de funcao: ◦(◦(x, y), z) = ◦(x, ◦(y, z)).

Um grupo G de n elementos sera chamado de grupo de ordem n. Nao necessariamente umgrupo e comutativo; isto e, x ◦ y = y ◦ x para todo x, y ∈ G.

Ha inumeros exemplos de grupos na Matematica. Mostraremos alguns deles:

158

Page 163: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

1. o conjunto Z com a operacao + e elemento neutro 0. Vejamos. Para todo a, b, c ∈ Z,

(a) (a+ b) + c = a+ (b+ c)

(b) a+ 0 = a, zero e o elemento identidade;

(c) b+ (−b) = 0, −b e o inverso de b.

2. os numeros racionais sem o zero, Q − {0}, com a operacao � de multiplicacao e 1 comoelemento neutro. Para todo x, y, z ∈ Q−{0}, temos a) (x+ y) + z = x+ (y+ z), x � 1 = x ex+ 1

x= 1.

3. o conjunto R dos numeros reais com a operacao + e 0 como elemento neutro;

4. o conjunto {0, 1, 2, . . . n− 1} com a operacao + definida como

a+0 = a

a+(b+1) = (a+ b) + 1 se a+ b < n

a+(b+1) = (a+ b)− n se a+ b >= n

onde + e a soma usual em N e + e a operacao deste grupo, chamado de Zn. Normalmenteutilizaremos o sımbolo de soma, +, para Zn.

5. o conjunto das matrizes quadradas de ordem 3 nao singulares (determinante diferente dezero, que possuem inversa) com a operacao de multiplicacao de matrizes. O elemento neutroe a matriz identidade de ordem 3.

Os Numeros Naturais

A Aritmetica pode ser caracterizada pelos axiomas de Peano. A descricao informal e

A1 0 e um numero natural;

A2 cada numero natural x tem um sucessor denominado x′;

A3 0 6= x′ para qualquer natural x;

A4 se x′ = y′, entao x = y;

A5 seja P (x) uma propriedade sobre o numero natural x. Entao se P (0) e se P (x) implicar P (x′),para x qualquer, entao para qualquer numero natural y, P (y). Este e o princıpio da inducao.

A versao em uma linguagem de primeira ordem dos axiomas de Peano e dada abaixo. Utiliza-seuma linguagem LP com uma unica constante 0, os sımbolos de funcao +, � e ′. Este ultimo sımbolosera utilizado como x′ e, quando interpretado nos numeros naturais, significa o sucessor de x, quee x+ 1.

F1 x = y−→(x = z−→y = z)

F2 x = y−→(x′ = y′)

159

Page 164: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

F3 0 6= x′, que e o mesmo que ¬(0 = x′)

F4 x′ = y′−→x = y

F5 x+ 0 = x

F6 x+ y′ = (x+ y)′

F7 x � 0 = 0

F8 x � (y′) = (x � y) + x

F9 (A(0) ∧ (∀x (A(x)−→A(x′))))−→∀x A(x) para qualquer formula A.

Considere que ΓP seja o conjunto de formulas F1-F9. Supoe-se que estas formulas sejamsuficientes para caracterizar a Aritmetica, que e um modelo B no qual valem as “verdades” usuaissobre numeros, como 1 + 1 = 2, ∀x ∃y (x+ 0′ = y) e (x+ 0′′) � y = (x � y) + 0′′ � y. Este modelo temas seguintes caracterısticas:

1. |B| = N = {0, 1, 2, 3, . . . }, o universo do modelo;

2. o sımbolo de funcao unaria ′ da linguagem deve ser interpretado pela funcao s(x) = x + 1do modelo B, onde + e o sımbolo utilizado na Aritmetica usual, nao o sımbolo de funcaoda linguagem LP . Assim, se representarmos uma funcao s(x) pelo seu grafico; isto e, peloconjunto dos pares (x, s(x)) para todo x do domınio, temos que

Grafico(s) = {(0, 1), (1, 2), (2, 3), . . . }

3. o sımbolo de funcao binaria + da linguagem deve ser interpretado pela funcao + do modelo;isto e, pelo + da Aritmetica. O grafico de + possui triplas da forma (a, b, (a+ b)). Assim,

Grafico(+) = {(0, 0, 0), (0, 1, 1), . . . (1, 0, 1), (1, 1, 2), . . . , . . . }

4. o sımbolo de funcao binaria � da linguagem deve ser interpretado pela funcao � do modelo;isto e, pelo � da Aritmetica (multiplicacao). O grafico de � possui triplas da forma (a, b, (a�b)).Assim,

Grafico(�) = {(0, 0, 0), (0, 1, 0), . . . (1, 0, 0), (1, 1, 1), . . . , . . . }

5. a constante 0 da linguagem corresponde ao elemento 0 de |B|.

Note que o que chamamos de Aritmetica usual, o modelo B, e composto pelos conjuntos acimamais as regras da logica classica. Entao assumimos, nao surpreendentemente, as regras da logicaclassica ao nos referirmos as verdades da Aritmetica.

Os conjuntos acima, tanto |B| como os graficos das funcoes contem “. . .” significando queeles nao foram completados. Isto era esperado, ja que os conjuntos sao mesmo infinitos. Mascomo entao confirmar que as formulas do conjunto ΓP sao verdadeiras no modelo B ? So existeuma possibilidade: utilizar informacoes que conhecemos intuitivamente e que nao estao escritas

160

Page 165: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

completamente no papel. Nao podemos escrever completamente o grafico da funcao +, que einfinito, mas atraves de palavras, intuitivamente, conhecemos todas as caracteristicas que estafuncao deve ter. Entao pode-se provar um meta-teorema1 que afirma que as formulas de ΓP saoverdadeiras na Aritmetica, o modelo B.

A discussao acima nos remete a questao “O que e uma prova na Matematica” ? Certamentenao e uma prova sintatica, obtida pelo usos de axiomas e aplicacao das regras MP e Gen. Mas oque e entao ? Para responder a esta pergunta, devemos assumir que, em uma prova Matematica,utiliza-se um conjunto de axiomas e outras formulas ja provadas anteriormente. Por exemplo, emuma prova sobre numeros inteiros, utiliza-se os axiomas acima, mesmo que este fato nao estejaexplıcito na prova. O desenvolvimento da prova se faz principalmente por argumentos semanticos— relembre a definicao de verdade em uma estrutura (pagina 135) e satisfacao (Definicao 13.8na pagina 133). A definicao de verdade utiliza a definicao de satisfacao. Contudo, qualquerargumento pode ser utilizado em uma prova matematica desde que os matematicos concordemcom a sua utilizacao — desde que ela seja razoavel. O que e ou nao razoavel e uma discussaofilosofica que esta fora do escopo deste livro.

De qualquer forma, espera-se que qualquer prova matematica possa ser convertida em umaprova sintatica formal (Definicao 14.11). Em geral, esta prova pode ser feita em uma logicade primeira ordem. Contudo, nem sempre isto e possıvel — pode ser absolutamente necessarioutilizar uma logica de segunda ordem. Neste tipo de logica existem algumas variaveis que, quandointerpretadas em uma estrutura, referem-se a conjuntos de elementos da estrutura. Por exemplo,considere a formula

∀X ∃x (x ∈ X ∧ ∀y ((y ∈ X ∧ ¬(x = y))−→(y < x)))

interpretada em um modelo A da Aritmetica que utiliza o sımbolo < no qual b < c significa “b emenor do que c”. Se esta formula e verdadeira neste modelo, entao qualquer conjunto de elementosde |A| possui um elemento que e menor do que todos os outros.

Apesar da logica de segunda ordem ser necessaria em alguns casos, praticamente toda aMatematica pode ser expressa na logica de primeira ordem.

A Teoria dos Conjuntos

A teoria de conjuntos Zermelo-Fraenkel , (ZF) utiliza seis axiomas [3]. Estes axiomas mais oaxioma da escolha (A7 abaixo) constituem-se na teoria ZFC que constitui base para formalizar todaa Matematica. A partir desta teoria pode-se deduzir todos os axiomas da Aritmetica dados no itemanterior, desde que os sımbolos +, �, ′ e 0 sejam representados de uma certa forma (nao mostrada)utilizando-se somente o sımbolo ∈. Alias, este e o unico predicado utilizado pelos axiomas. Funcoese constantes nao sao necessarios. Contudo, para facilitar o entendimento dos axiomas, utilizaremoso conjunto vazio, ∅, como constante. Nos comentarios a respeito das formulas, interpretamos asformulas dadas em um modelo da teoria dos conjuntos.

A1 ∀z (z ∈ x←→z ∈ y)−→(x = y), axioma da extensionalidade. Este axioma significa o seguinte:se x e y tem os mesmos elementos, eles sao iguais;

1E meta-teorema porque e um teorema sobre a logica de primeira ordem, nao um teorema da teoria de primeiraordem que utiliza a linguagem LP e as formulas de ΓP .

161

Page 166: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

A2 Fϕ−→(∃b ∀y (y ∈ b←→∃x (x ∈ a ∧ ϕ(x, y)))), axioma da substituicao. Fϕ e a formula∀x ∀y ∀z (ϕ(x, y) ∧ ϕ(x, z)−→(y = z)). Este axioma garante que podemos construir umconjunto b que seja a imagem de uma formula ϕ que e usada como uma funcao tendo a comodomınio;

A3 ∃y ∀x (x ∈ y←→∀z (z ∈ x−→z ∈ a)), axioma das partes. Este axioma garante que existe oconjunto das partes de um conjunto a se a existe;

A4 ∃y ∀y (x ∈ y←→∃z (x ∈ z ∧ z ∈ a)), axioma da reuniao. Este axioma garante a existencia deum conjunto que e a uniao de todos elementos de a. Naturalmente, na interpretacao desteaxioma na teoria dos conjuntos usuais, a e composto de conjuntos. Em outras palavras, esteaxioma garante a existencia de {x : ∃z (x ∈ z ∧ z ∈ a)};

A5 ∃y (y ∈ x)−→∃y (y ∈ x ∧ ∀z¬(z ∈ x ∧ z ∈ y)), axioma da regularidade. Este axioma garanteque um conjunto nao esta contido em si mesmo direta ou indiretamente. Este e o maiscomplexo de todos os axiomas de ZF;

A6 ∃w ((∅ ∈ w) ∧ ∀x (x ∈ w−→x ∪ {x} ∈ w)), axioma da infinidade. Este axioma garantea existencia de um conjunto infinito. A saber, {∅, {∅}, {∅, {∅}}, {∅, {∅, {∅}}}, . . .}. Osımbolo ∪ e um meta-predicado. x ∪ y e uma abreviacao de ∃z (w ∈ z←→(w ∈ x ∨w ∈ y));

A7 (∀x (x ∈ z−→¬(x = ∅))∧ (∀x ∀y (x ∈ z ∧ y ∈ z ∧¬(x = y))−→(x∩ y = ∅)))−→∃u ∀x ∃v (x ∈z−→u ∩ x = {v}), axioma da escolha. O sımbolo ∩ e um meta-predicado. x ∩ y significa∃z (w ∈ z←→(w ∈ x ∧ w ∈ y)).

Este axioma garante que, dado um conjunto z que possui como elementos outros conjuntos,existe um conjunto u tal que u possui exatamente um elemento em comum com cada elementode z (que e um conjunto). Exige-se que os elementos de z nao sejam vazios e que dois a doisnao tenham elementos em comum. Estudando a formula,

1. ∀x (x ∈ z−→¬(x = ∅)) garante que todos os elementos de z sejam diferentes de ∅;2. (∀x ∀y (x ∈ z ∧ y ∈ z ∧¬(x = y))−→(x∩ y = ∅)) garante que quaisquer dois elementos

de z, que sao conjuntos, tem interseccao vazia;

3. ∃u ∀x ∃v (x ∈ z−→u∩ x = {v}) garante que existe u que tem exatamente um elementov em comum com cada elemento x de z dado que os itens 1 e 2 acima, quando inter-pretados, sao verdadeiros. Como ∃v aparece depois de ∃x , para cada x de z podemoster um elemento v diferente — de fato, todos eles sao diferentes, ja os elementos de zsao dois a dois disjuntos.

14.6 Exercıcios

14.1. Nas formulas abaixo, que ocorrencias de variaveis sao livres ou ligadas?

(a) ∀xC(x, y)−→∃z(M(z, x) ∧ C(z, w))

(b) H(x) ∧ ∃y∀xC(y, x)

(c) ∀x(∀yH(y)) ∧R(x, y)

162

Page 167: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

(d) R(x, y) ∧ ∃x(R(x, y) ∧H(y))

14.2. Considere uma linguagem LA para a Aritmetica que utiliza sımbolo de predicado binario <,sımbolos de funcao binarias + e � (correspondente a multiplicacao) e constantes 0 e 1. Sobre osesquemas de axioma para a LPO, use a linguagem LA da para fazer:

(a) uma instancia do axioma da igualdade;

(b) uma instancia do axioma do axioma da substituicao;

(c) uma instancia do axioma proposicional;

14.3. Prove sintaticamente que as seguintes formulas sao teoremas.

(a) ∀x A(x)−→A(c), onde a linguagem possui uma constante c;

(b) (x = y)−→(f(x) = f(y)), onde a linguagem possui uma funcao unaria f ;

(c) ¬∃x A(x)←→∀x ¬A(x)

(d) t = t, onde t e um termo qualquer;

14.4. Prove sintaticamente que as seguintes formulas sao teoremas, dadas as hipotese.

(a) ∀x A(x) ` A(c), onde a linguagem possui uma constante c;

(b) A(w) ` ∃x A(x), onde A possui uma variavel livre x e A(w) e a formula A com x substituıdopor w;

(c) A, A ∨B−→C ` C

(d) ∀x A(x), P (c) ` ∃x (A ∧ P (x))

14.5. Prove os seguintes fatos:

(a) ∃x P (x)−→∃x Q(x), P (c) ` ∃x Q(x)

(b) P (x)−→∃y (x = f(y)), ∀y I(f(y) + 1) ` P (x)−→I(x+ 1)

14.6. Passe para a Forma Normal Prenex as seguintes formulas:

1. ¬(∀x ∃y (P (x)−→Q(x, y)))

2. (∀x ∀z (R(x, z)−→R(z, x)) ∧ (∀x x+ 0 = x)

3. (∀x ∀z (R(x, z)−→R(z, x))−→(∀x x+ 0 = x)

4. (∀x ∀z (R(x, z)−→R(z, x)) ∨ (∀x x+ 0 = x)

14.7. Explique o que e sintaxe e o que e semantica na logica de primeira ordem.

14.8. Enuncie o teorema da Correcao para logicas de primeira ordem.

163

Page 168: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

14.9. Faca um conjunto de formulas Γ inconsistente sem que este conjunto contenha formulas daforma A e ¬A.

14.10. Prove sintaticamente que as seguintes formulas sao teoremas considerando-se os axiomasde Peano como premissas. Utilizamos 1 como uma abreviatura para 0′ e n como abreviatura para0′′...′ onde o sımbolo ′ aparece n vezes.

(a) 1 = 1

(b) x+ y � 0 = x

(c) 1 + 0 = 1

(d) 2 = 3−→1 = 2

14.11. Dado um conjunto Γ qualquer, se Γ 6` A, entao necessariamente Γ ` ¬A ?

14.12. Explique, sem provar, o teorema da Completude de Godel: um conjunto de formulasfechadas (sentencas) Γ em uma linguagem L e consistente se e somente se Γ tem modelo em L.

14.13. Explique, sem provar, o teorema da Completude de Godel: dado um conjunto de formulasfechadas Γ e uma formula fechada A em uma linguagem L, entao Γ � A se e somente se Γ ` A.

164

Page 169: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Apendice A

Quadrinhos

165

Page 170: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

166

Page 171: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Apendice B

Nocoes Basicas de Matematica

Este Apendice apresenta duas tecnicas de provas comuns em Matematica e Logica.

B.1 Inducao finita

Inducao finita e uma tecnica de provar teoremas. Suponha que queiramos provar um teorema Tque possua um parametro n. Para provar que T e valido para qualquer valor de n, n ≥ 1, provamosque:

1. T e valido quando n = 1 (item 1);

2. se T for valido para n− 1, entao T sera valido para n (item 2).

Quando n = 1 temos a base da inducao. A prova de que esta tecnica funciona e obvia: T evalido para 1 pelo item 1, para 2 pelo item 2, para 3 pelo item 2, ... A suposicao de que T e validopara n− 1 e chamada “Hipotese de Inducao”(HI). Vejamos alguns exemplos:

Proposicao: sendo Sn = 1 + 2 + 3 + . . .+ n, entao Sn = n(n+1)2

.

Prova: para n = 1, S1 = 1 e S1 = 1(1+1)2

= 1, o que prova a hipotese.

Suponha que a hipotese seja valida para n− 1, isto e,Sn−1 = (n−1)(n−1+1)

2= (n−1)n

2= 1 + 2 + . . .+ (n− 1)

Provaremos que ela e valida para Sn. Sendo Sn = Sn−1 + n, entao

Sn = (n−1)n2

+ n = (n2−n+2n)2

= n(n+1)2

o que prova a hipotese. Neste exemplo, a HI e Sn = n(n+1)2

.

Proposicao: xn − yn e divisıvel por x− y para todos os numeros naturais x, y, n.

Para n = 1, x1− y1 e trivialmente divisıvel por x− y. Suponha que a hipotese seja valida paran − 1, isto e, x − y divide xn−1 − yn−1 para todo x e y. Provaremos que x − y divide xn − yn

167

Page 172: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

utilizando as hipoteses de inducao de que x − y divide xn−1 − yn−1 e x − y divide xn−2 − yn−2.Reescrevendo xn − yn, temos:

xn − yn = (xn−1 − yn−1)(x+ y)− xy(xn−2 − yn−2)

Como o lado direito do sımbolo = e divisıvel por x−y por hipotese de inducao, o lado esquerdotambem o e. Neste exemplo, a HI e “xn − yn e divisıvel por x− y”.

B.2 Prova por Contradicao

Para provar que alguma afirmacao P e verdadeira, podemos supor que o contrario e que e ver-dadeiro; ou seja, “nao P”. Se encontrarmos uma contradicao durante a prova, entao e certo queassumimos algo falso como premissa. No caso, “nao P” e falso, o que significa que P e verdadeiro(nao nao P e igual a P). Vejamos um exemplo.

Queremos provar que√

2 e irracional. Suporemos que√

2 e numero racional. Entao existemdois inteiros a e b tal que

√2 = a

b. Podemos assumir tambem, sem perda de generalidade, que a

e b nao tem fatores em comum (isto e, nao ha um numero inteiro que divide ambos). Lembrando,numeros racionais sao aqueles que podem ser escritos como a

b, com a e b inteiros.

Sendo√

2 = ab, temos que 2 = a2

b2e 2b2 = a2. Entao a2 e um numero par, pois e da forma

2p, sendo que p = b2. Sendo a2 par, entao a e par e portanto pode ser escrito como 2q. Isto e,a = 2q. Logo, 2b2 = (2q)2, 2b2 = 4q2 e b2 = 2q2, o que implica que b2 e par e portanto b e par.Contradicao, pois agora ambos, a e b sao divisıveis por 2, sendo que assumimos que estes numerosnao tem divisores em comum.

Logo podemos concluir que a hipotese inicial, que√

2 e racional, e falsa. Logo√

2 e irracional.

168

Page 173: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Referencias Bibliograficas

[1] Bako, Maria. Why We Need to Teach Logic and How Can We Teach it? Disponıvel emhttp://www.cimt.plymouth.ac.uk/journal/bakom.pdf

[2] Carnielli, W.; Coniglio, M. E.; Bianconi, R. Logica e aplicacoes: Matematica, Ciencia daComputacao e Filosofia (Versao Preliminar - Capıtulos 1 a 5).

[3] Coniglio, Marcelo E. Teoria Axiomatica de Conjuntos: uma Introducao.

[4] Gardner, Martin. The fantastic combinations of John Conway’s new solitaire game“life”. Scientific American, Vol. 223, October 1970, paginas 120-123. Disponıvel emhttp://ddi.cs.uni-potsdam.de/HyFISCH/Produzieren/lis_projekt/proj_gamelife/ConwayScientificAmerican.htm.

[5] Guimaraes, Jose de Oliveira. Matematica Discreta. Disponıvel emhttp://www2.dc.ufscar.br/~jose/courses/index.htm

[6] Hedman, Shawn. A First Course in Logic. Oxford University Press, 2006.

[7] Hofstadter, Douglas R. Godel, Escher, Bach: an Eternal Golden Braid. Vintage Books, 1979.

[8] Mendelson, Elliott . Introduction to Mathematical Logic. Wadsworth Publishing Co., 1997.Nao recomendado para cursos de Graduacao.

[9] Mortari, Cesar. Introducao a Logica. Fundacao Editora da UNESP, 2001.

[10] Shoenfield, Joseph R. Mathematical Logic. Addison-Wesley, 1967. Nao recomendado paracursos de Graduacao.

[11] Cellular automaton. Disponıvel em http://en.wikipedia.org/wiki/Cellular_automaton.

169

Page 174: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

Indice Remissivo

Γ � A, 138Γ � B, 45Γ ` A

calculo proposicional, 73Logica de Primeira Ordem, 150

↓, 65∃, 104, 109∀, 104, 110∧, 25←→, 25∨, 25, 71−→, 25A 6� A, 135A � A, 135, 138A � Γ, 138¬, 25, 716�, 386`, 84↑, 65�, 38, 133`

calculo de predicados, 72|, 65=, 109=def , 42

alternative denial, 65antecedente, 25Aritmetica, 159axiomas

modelo Zoo, 128nao logicos, 150teorias de primeira ordem, 148

axiomas, proprios, 150axiomatizavel, 71

calculo de predicados de primeira ordem, 151calculo proposicional, 71

semantica, 28clausula, 93

completudeteorema, 156, 157

conectivosconjunto adequado de, 57derivados, 25primitivos, 24

conjuncao, 57consequencia logica, 38, 45consequente, 25consistente

calculo de predicados, 152conjunto de formulas, 156

contingencia, 38contradicao, 38correcao

calculo proposicional, 82logica de primeira ordem, 156

decidıvel, 72disjuncao, 57

equivalencia logica, 140equivalencias logicas

calculo proposicional, 47escolha

axioma da, 162estrutura, 117exemplo

semantica de uma Logica de Primeira Or-dem, 125

existe, 109extensionalidade

axioma da, 161

F, 29formula

atomica, 110linguagem de primeira ordem, 110

formula atomica, 109formula de Horn, 91

170

Page 175: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

formulascalculo proposicional, 25

falsaformula, 135

falso, 29FNC, veja forma normal conjuntivaFND, veja forma normal disjuntivaforma normal conjuntiva, 58forma normal disjuntiva, 57Forma Normal Prenex, 155Forma Normal Prenex Conjuntiva, 155funcao de verdade, 34

grupo, 158

Horn, 91

implica logicamente, 38indecidıvel, 72infinidade

axioma da, 162

joint denial, veja negacao conjunta

Logica de Primeira Ordem, 104linguagem

calculo proposicional, 24Logica de Primeira Ordem, 108

literal, 57logicamente equivalente, 38, 140logicamente valida

formula, 139

matriz, 155meta

sımbolo, 148variavel das linguagens de primeira ordem,

111meta-formula, 25meta-variavel, 61modelo, 122, 136

abreviatura, 118conjunto de formulas, 138Fig, 128Num, 129Zoologico, 125

modelosexemplos, 158

Modus ponens, 73

MP, 73

negacao alternativa, 65negacao conjunta, 65

parenteses, 25paradoxo, 4

semantico, 5sintatico, 4

partesaxioma das, 162

Peano, 159precedencia

calculo proposicional, 25linguagem de primeira ordem, 111

provacalculo proposicional, 72

quantificador existencial, 109, 110quantificador universal, 110

regras, 9teorias de primeira ordem, 149

regularidadeaxioma da, 162

relacao, 117entre sintaxe e semantica, 79

resolucao, 93reuniao

axioma da, 162

sımbolo de constante, 108sımbolos de constante, 107sımbolos de funcao, 107, 108sımbolos de predicado, 104, 108satisfacao, 133satisfabilidade

calculo proposicional, 42sequencia, 131sintaxe, 71

Logica de Primeira Ordem, 117, 147sistema formal, 8Smullyan, 31sse, 73sub-formula, 36substituicao, 45

axioma da, 162

tabelas verdade, 30

171

Page 176: L ogica para Computa˘c~ao - The Cyan Language – Home ... para Computacao.pdf · 9 Sintaxe do C alculo Proposicional 70 ... L ogica e a disciplina que estuda o racioc nio dedutivo,

tautologia, 37instancia de, 152

teorema, 72completude, 83deducao, 75

teoria, 71consistente, 84

teoria de conjuntos, 161teoria de primeira ordem, 117, 148teoria formal, 71termo, 109

universo de uma estrutura, 117

V, 29variavel

linguagem de primeira ordem, 108variante, 152verdadeira

formula, 135, 138verdadeiro, 29vocabulario, 107

Zermelo-Fraenkel, 161ZF, 161ZFC, 161zoologico, 125

172