Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br Lógica para Computação (IF61B) Sistemas Dedutivos Um Sistema Dedutivo (SD) tem por objetivo obter, a partir de um conjunto de fórmulas Γ dado, chamado de teoria, outras fórmulas que sejam consequência lógica de Γ; Quando um SD infere uma fórmula A a partir de Γ escreve-se Γ ⊢ 𝐴; este elemento chama-se sequente, e é constituído do antecedente (ou hipóteses) Γ e do consequente (ou conclusão) A. 2 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Sistemas Dedutivos Existem vários procedimentos para realizar inferências: 1. Método axiomático; 2. Sistema de dedução natural; 3. Método dos tableaux analíticos; 4. ... 3 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Sistemas Dedutivos 1. Objetiva-se construir Sistemas Dedutivos que sejam: Corretos, isto é, que produzam apenas conclusões que são consequência lógica das hipóteses dadas: se Γ ⊢ 𝐴 então Γ ⊨ 𝐴 2. Completos, isto é, que sejam capazes de produzir todas as inferência válidas: se Γ ⊨ 𝐴 então Γ ⊢ 𝐴 4 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Método Axiomático É o SD mais antigo, tendo sido usado desde a apresentação da Geometria Euclidiana; Aqui será tratada apenas o método axiomático para a Lógica Proposicional Clássica; O método possui 2 elementos: 1. Axiomas, constituídos por fbf à quais se atribui um status de “verdade básica”; 2. Regras de inferência, que indicam como obter novas fórmulas a partir das fórmulas já inferidas. 5 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Método Axiomático A substituição de um átomo p por uma fórmula B em uma fórmula A, representada por A[p:=B] é definida por: 1. p[p:=B]=B; 2. q[p:=B]=q, se q p; 3. (A) [p:=B]= (A [p:=B]); 4. (A1 A2) [p:=B]= (A1 [p:=B]) (A2 [p:=B]); 5. (A1 A2) [p:=B]= (A1 [p:=B]) (A2 [p:=B]); e 6. (A1 A2) [p:=B]= (A1 [p:=B]) (A2 [p:=B]). 6 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Método Axiomático Exemplo de substituição: Substituição de p por (r s) em (p (p q)): (p (p q))[p := (rs)] = (p[p:=(rs)](pq) [p:=(rs)]) = ((rs)(p[p:=(rs)q[p:=(rs))) = ((rs)((rs)q)) Se B é resultante da substituição de um ou mais átomos da fórmula A, diz-se que B é uma instância de A. 7 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Método Axiomático Axiomas da lógica proposicional clássica: 1. 2. 3. p (q p) (p (q r)) ((p q) (p r)) p (q (p q)) 4. (p q ) p 5. (p q ) q 6. p (p q) 7. q (p q) 8. (p r) ((q r) ((p q) r)) 9. (p q) ((p q) p) 10. p p 8 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Método Axiomático Regra de inferência (Modus Ponens): a partir de A B e de A infere-se B; Uma dedução é uma sequência de fórmulas A1, A2 … An tal que cada fórmula de sequência é: 1. Uma instância de axioma; ou 2. Pode ser deduzida das fórmulas anteriores pela aplicação das regras de inferência. Um teorema é uma fórmula A para a qual existe uma dedução A1, A2 … An = A. Neste caso escreve-se ⊢ 𝐴. 9 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Método Axiomático 1. Exemplo de teorema: (p ((p p) p)) ((p (p p)) (p p)) (instância do ax.2 com p:=p, q:=(pp) e r:= p; 2. (p ((p p) p)) 3. ((p (p p)) (p p)) (modus ponens de 1 e 2) 4. (p (p p)) (instância do ax. 1 com p:=p, q:=p) 5. (pp) (modus ponens de 3 e 4) (instância do ax. 1 com p:=p, q:=(pp)) 10 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Método Axiomático 1. Exemplo de teorema: (p p) ((q p) (p p)) (instância do ax.1 com p:=(p p) e q:=(qp)) 2. p p (axioma 10) 3. (q p) (p p) (modus ponens de 1 e 2) 4. (q p) (p p) (((q p) (pp)) q) (instância do ax. 6 com p:= (q p) (p p) e q:=q) 5. (((q p) (pp)) q) (modus ponens de 3 e 4) 11 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Método Axiomático O método axiomático possui a propriedade da substituição uniforme, isto é, se A é um teorema e se B é uma instância de A, então B também é um teorema. (((p q p) (p p)) (p q)) é um teorema, pois esta formula é obtida do teorema (((q p) (p p)) q) pela substituição q:= p q. 12 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Método Axiomático Diz-se que a fórmula A é dedutível a partir de uma teoria se há uma dedução, ou seja sequência de fórmulas A1, A2 … An = A tal que cada fórmula na sequência é: 1. uma fórmula de ; 2. uma instância de um axioma; ou 3. pode ser obtida das fórmulas anteriores por meio das regras de inferência. 13 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Método Axiomático O Teorema da Dedução: Γ, 𝐴 ⊢ 𝐵 se e somente se Γ ⊢ 𝐴 𝐵 Exemplos de aplicação: pg. 39 Exercícios: pg. 40 14 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Método Axiomático Exemplo de dedução: p𝑞, p𝑟 ⊢ 𝑝 q r Usando o Teorema da Dedução: p𝑞, p𝑟, 𝑝 ⊢ q r 15 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Método Axiomático 1. p𝑞 (hipótese) 2. p𝑟 (hipótese) 3. 𝑝 (hipótese) 4. 𝑞 (modus ponens de 1 e 3) 5. 𝑟 (modus ponens de 2 e 3) 6. 𝑞(r (q r)) (instância do axioma 3) 7. r (q r) (modus ponens de 4 e 6) 8. (q r) (modus ponens de 5 e 7) 16 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Dedução Natural Método proposto por Gentzen; Não há axiomas; As inferências são baseadas em regras de inferência em que hipóteses podem ser introduzidas e descartadas para consolidação da prova; Para cada conectivo há uma regra para inserção e para remoção do conectivo. 17 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Dedução Natural Regras de Inferência: Para a implicação (): A B B [A]i A (E) … (I)i B _ A B 18 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Dedução Natural Para a disjunção (): __A__(I) _ B A B [A]i (I) A B A B [B]j … … (E)i,j C C C Para a conjunção (): A__B (I) A B (E) _A B _(E) A B A B 19 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Dedução Natural Para a negação (): A A (I) [A]i … A A (E) [A]i … (I)I A (E)i O símbolo representa contradição. 20 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Dedução Natural Exemplos de dedução natural: pgs. 43, 44, 45; Definição formal: pg. 46; Exercícios: pg. 47; Prática com a ferramenta JAPE: http://www.cs.ox.ac.uk/people/bernard.sufrin/pe rsonal/jape.org/ 21 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Tableaux Analíticos É um procedimento de decisão: permite determinar a validade de um sequente, ou seja, se B1, …,Bn ⊢ A1,…,Am ou não; Os métodos axiomático e da dedução natural permitem determinar se Γ ⊢ A, e não se Γ ⊬ 𝐴; observe ainda que Γ ⊬ 𝐴 não implica Γ ⊢ A; O método dos tableaux analíticos é baseado em refutação: para provar Γ ⊢ A mostra-se que {A} ⊢ 22 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Tableaux Analíticos Utiliza fórmulas marcadas pelos símbolos T (true) e F (false), por exemplo T A e F B ; O passo inicial para um sequente B1, …,Bn ⊢ A1,…,Am é a criação do tableau inicial: T B1 … T Bn F A1 … F Am 23 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Tableaux Analíticos Em seguida usam−se as regras de expansão e : T F F T AB AB AB A 1 T A F A T A F A 2 T B F B F B 24 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Tableaux Analíticos Em seguida usam−se as regras de expansão e : F T T F 1 AB AB AB A F T F T 2 A A A A F B T B T B 25 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Tableaux Analíticos Uma expansão é indicada pela adição de 1 e 2 ao fim dos ramos que contém ; Uma expansão é indicada por uma bifurcação em dois ramos, iniciados por 1 e 2; Um ramo sem mais fórmulas a serem expandidas é dito saturado; Como o processo de expansão reduz o tamanho das fórmulas, o processo de expansão sempre termina; 26 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Tableaux Analíticos Um ramo é fechado se contém um par de fórmulas conjugadas TA e FA; Um ramo fechado não precisa mais ser expandido; Um tableaux está fechado se todos seus ramos estão fechados; Um sequente B1, …,Bn ⊢ A1,…,Am foi deduzido pelo método dos tableaux analíticos se existir um tableau fechado para ele; Portanto uma dedução ⊢ A neste método corresponde a construir um tableau fechado para FA. 27 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Tableaux Analíticos Exemplo: ⊢ p p 1. F p p 2. Fp ,1 3. F p ,1 4. Tp , 3 5. X (fechamento) 2,4 28 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Tableaux Analíticos Exemplo: p q , q r ⊢ p r 1. T p q 2. T q r 3. F p r 4. Tp , 3 5. Fr , 3 6. Fp 7. X 8. , 1 Tq Fq Tr X X , 2 29 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Tableaux Analíticos Exemplo: p , p q r ⊢ r 1. Tp 2. T p q r 3. Fr Fpq 4. 5. Fp 6. X Fq Tr , 2 X , 4 Se o tableau não é fechado, o ramo aberto indica uma valoração V que é um contra-exemplo, no caso T p, F r e F q, ou ainda V (p)=1, V (q)=0 e V (r)=0. 30 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Tableaux Analíticos Mais exemplos… Exercícios (pg. 55). 31 Prof. Celso A A Kaestner 05/05/2014 Lógica para Computação (IF61B) Correção e Completude Sistema dedutivo correto: se Γ ⊢ 𝐴 então Γ ⊨ 𝐴 Sistema dedutivo completo: se Γ ⊨ 𝐴 então Γ ⊢ 𝐴 Os métodos vistos são corretos e completos para a Lógica Proposicional; Exercícios pg. 62. 32 Prof. Celso A A Kaestner 05/05/2014