Semântica Axiomática

Tamanho: px
Começar a partir da página:

Download "Semântica Axiomática"

Transcrição

1 Semântica Axiomática

2 O estilo axiomático presta-se particularmente à prova e raciocínio sobre propriedades dos programas, e à sua verificação, i.e. à prova de correcção dos programas face às suas especificações. A ferramenta semântica que estudaremos é a Lógica de Floyd-Hoare

3 Correcção Parcial A Lógica de Floyd-Hoare lida com triplos de correcção parcial da forma {P} C {Q} em que C é um programa e P e Q são propriedades do programa. P designa-se por pré-condição e Q por pós-condição.

4 Correcção Parcial Significado de {P} C {Q}: se C termina quando executado a partir de um estado S em que P se verifica, então, se C terminar, Q verifica-se. O que esta asserção não especifica: que C termine a partir do estado S o que acontece se C não terminar daí a parcialidade desta noção de correcção.

5 Linguagem Lógica {P} C {Q} Qual a sintaxe e poder expressivo da linguagem utilizada para descrever as propriedades P e Q? A linguagem lógica deverá conter pelo menos as conectivas disponíveis na linguagem em estudo.

6 mas precisaremos agora de conectivas lógicas como conjunção, disjunção, e negação: L ::= b E bop E L lop L lop {,,, } Asserções poderão ainda conter quantificadores,

7 Regras de Inferência para a Correcção Parcial {P }skip{p } {P }C 1 {Q} {Q}C 2 {R} {P }C 1 ; C 2 {R}

8 {P B}C 1 {Q} {P B}C 2 {Q} {P }if B then C 1 else C 2 {Q} {Q[E/l]} l := E {Q}

9 Invariantes de ciclo Uma propriedade P diz-se um invariante do ciclo while B do C se puder ser inferido. {P B}C{P } A que se deve a presença de B na pré-condição?

10 Note-se que se o ciclo while B do C terminar, P é verdadeiro depois da sua execução, e B só pode ser falso. {P B}C{P } {P }while B do C{P B} Porque não se inclui B na pré-condição?

11 Regras Lógicas: Consequência P = P {P }C{Q } Q = Q {P }C{Q} Permite fortalecer a pré-condição e/ou enfraquecer a pós-condição

12 Correcção da Semântica Axiomática Dados um comando C e predicados P e Q tais que o triplo de correcção parcial seguinte {P }C{Q} é derivável na Lógica de Hoare, seja s um estado que satisfaz P, e C [C ](s) = s., Então s satisfaz Q.

13 Interpretação de Asserções A semântica de uma linguagem lógica de predicados é bem conhecida de outras disciplinas. Identificando-se estados e valorações, a interpretação das asserções será uma extensão da interpretação das expressões booleanas da linguagem. Exemplo: [!l 1 =!l 2 ]s = (E [!l 1 ](s) = E [!l 2 ](s))

14 Interpr. de Triplos de Hoare [{P }C{Q}] = true se para todos os estados s e s tais que [P ](s) = true e C [C ](s) = s se tem [Q](s ) = true. [{P }C{Q}] = false em todos os outros casos

15 Correcção da Semântica Axiomática (v.2) Dados um comando C e predicados P e Q tais que o triplo de correcção parcial seguinte {P }C{Q} é derivável na Lógica de Hoare, então [{P }C{Q}] = true. (prova indutiva nas regras da Lógica de Hoare)

16 Lógica de Floyd-Hoare Complementos

17 Asserções Especiais Naturalmente, para uma dada pós-condição Q, temos interesse em saber qual a pré-condição mais fraca que garante essa pós-condição, uma vez que ela pode depois ser fortalecida. Caso extremo: {true} C {Q} significa que sempre que C termina, Q é satisfeito. A pré-condição é a mais fraca possível.

18 Asserções Especiais Simetricamente, para uma pré-condição P temos interesse em conhecer a pós-condição mais forte por ela garantida, que pode depois ser enfraquecida. Caso extremo {P} C {false} quando executado a partir de um estado em que P se verifica, C não termina. A pós-condição é a mais forte possível.

19 Asserções Especiais {P} C {true} e {false} C {Q} Asserções axiomaticamente válidas, correspondem à pós-condição mais fraca possível, e à pré-condição mais forte possível

20 Variáveis Auxiliares É útil poder referir numa pós-condição o valor que uma variável tinha no início do programa. Por exemplo para especificar o comportamento de um programa swap que troca os valores de duas variáveis: {!l1=x!l2=y} swap {!l1=y!l2=x} As variáveis auxiliares x e y permitem exprimir isto. Ex: escrever swap e provar a validade da asserção

21 Especificações Complexas A especificação de programas com alguma complexidade leva-nos à introdução de predicados e/ou funções na linguagem de asserções. Um exemplo típico é o do cálculo de uma grandeza matemática definida recursivamente, como a exponenciação: exp (n,0) = 1 exp (n,k+1) = n * exp (n, k)

22 {!l 2 0} calcexp {!l 3 = exp (!l 1,!l 2 )} Exercício: escrever calcexp e provar a sua correcção PROBLEMA: existe uma solução trivial! A especificação acima deve ser corrigida

23 {!l 2 0} calcexp {!l 3 = exp (!l 1,!l 2 )} Exercício: escrever calcexp e provar a sua correcção PROBLEMA: existe uma solução trivial! A especificação acima deve ser corrigida: {!l1=x!l2=y!l2 0} calcexp {!l 3 = exp (!l 1,!l 2 )!l 1 =x!l 2 =y}

24 Correcção Total Questão: quais as dificuldades inerentes ao tratamento de uma noção de correcção total? A única forma de se definir uma regra de inferência para lidar com a terminação de um ciclo é através da introdução de um variante de ciclo uma grandeza numérica não-negativa e decrescente em todas as iterações do ciclo.

25 Correcção Total As asserções de correcção total escrevem-se normalmente como [P] C [Q] [P B V=n] C [P V<n] P B V 0 [P] while B do C [P B] As restantes regras são iguais às de correcção parcial.

26 Se já se provou a correcção parcial, para provar a correcção total basta provar que o programa termina, ou seja [P] C [true] Exercício: Provar a correcção total do programa que calcula a exponenciação

Nelma Moreira. Departamento de Ciência de Computadores da FCUP. Aula 12

Nelma Moreira. Departamento de Ciência de Computadores da FCUP. Aula 12 Fundamentos de Linguagens de Programação Nelma Moreira Departamento de Ciência de Computadores da FCUP Fundamentos de Linguagens de Programação Aula 12 Nelma Moreira (DCC-FC) Fundamentos de Linguagens

Leia mais

Como podemos provar que este programa termina com x = 100. Correr o programa seguindo a sua semântica operacional é uma opção.

Como podemos provar que este programa termina com x = 100. Correr o programa seguindo a sua semântica operacional é uma opção. Verificação Automática de Programas Consideremos o seguinte programa para calcular 100 m=1 m: x:=0; y:=1; (while y!=101 do x:=x+y;y:=y+1) Como podemos provar que este programa termina com x = 100 m=1 m.

Leia mais

Semântica Operacional

Semântica Operacional Semântica Conceitos Semântica é o estudo do significado. Incide sobre a relação entre significantes, tais como palavras, frases, sinais e símbolos, e o que eles representam, a sua denotação. Semântica

Leia mais

SEMÂNTICA 02/09/2013. Conceitos de LPs - Semântica

SEMÂNTICA 02/09/2013. Conceitos de LPs - Semântica UNIVERSIDADE ESTADUAL DE SANTA CRUZ CURSO: CIÊNCIA DA COMPUTAÇÃO DISCIPLINA: CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO DOCENTE: ROGÉRIO VARGAS DISCENTE: MARIANNA NOVAES Semântica SEMÂNTICA Semântica é a área

Leia mais

Lógica de Hoare. Abordagem que usaremos: aplicar o método de Hoare sobre uma linguagem de programação imperativa simplificada.

Lógica de Hoare. Abordagem que usaremos: aplicar o método de Hoare sobre uma linguagem de programação imperativa simplificada. Lógica de Hoare Método axiomático para provar que determinados programas são corretos. Introduzido em 1969 por Charles Antony Richard Hoare. Também utilizado para especificar a semântica de linguagens

Leia mais

3 Cálculo de Hoare. 3.1 Semântica Axiomática de Linguagens de Programação

3 Cálculo de Hoare. 3.1 Semântica Axiomática de Linguagens de Programação Cálculo de Hoare 31 3 Cálculo de Hoare 3.1 Semântica Axiomática de Linguagens de Programação As técnicas para as semânticas operacional e denotacional de linguagens de programação são fundamentadas na

Leia mais

SEMÂNTICA. Rogério Rocha. rode = program simples = var x : int := 3 in x := x + 5 end.

SEMÂNTICA. Rogério Rocha. rode = program simples = var x : int := 3 in x := x + 5 end. SEMÂNTICA program simples = var x : int := 3 in x := x + 5 end. rode =? Rogério Rocha Roteiro Introdução Sintaxe Semântica Dinâmica (Métodos formais) Operacional Axiomática Denotacional Estática Conclusão

Leia mais

1 Lógica de primeira ordem

1 Lógica de primeira ordem 1 Lógica de primeira ordem 1.1 Sintaxe Para definir uma linguagem de primeira ordem é necessário dispor de um alfabeto. Este alfabeto introduz os símbolos à custa dos quais são construídos os termos e

Leia mais

Sintaxe e Semântica. George Darmiton da Cunha Cavalcanti.

Sintaxe e Semântica. George Darmiton da Cunha Cavalcanti. Sintaxe e Semântica George Darmiton da Cunha Cavalcanti (gdcc@cin.ufpe.br) Tópicos Introdução O problema de descrever a sintaxe Métodos formais para descrever a sintaxe Gramáticas de atributos Descrevendo

Leia mais

Integridade e Completude Para o sistema dedutivo de Hoare, vamos considerar duas propriedades usuais em sistemas lógicos:

Integridade e Completude Para o sistema dedutivo de Hoare, vamos considerar duas propriedades usuais em sistemas lógicos: Integridade e Completude Para o sistema dedutivo de Hoare, vamos considerar duas propriedades usuais em sistemas lógicos: Integridade: Cada regra deve preservar validade. O que implica (por indução nas

Leia mais

5 Implementação do Corretor de Programas

5 Implementação do Corretor de Programas Implementação do Corretor de Programas 67 5 Implementação do Corretor de Programas 5.1 Introdução Para validar as idéias expostas anteriormente, faz-se necessário implementar um corretor de programas com

Leia mais

Afirmações Matemáticas

Afirmações Matemáticas Afirmações Matemáticas Na aula passada, vimos que o objetivo desta disciplina é estudar estruturas matemáticas, afirmações sobre elas e como provar essas afirmações. Já falamos das estruturas principais,

Leia mais

Fundamentos 1. Lógica de Predicados

Fundamentos 1. Lógica de Predicados Fundamentos 1 Lógica de Predicados Predicados e Quantificadores Estudamos até agora a lógica proposicional Predicados e Quantificadores Estudamos até agora a lógica proposicional A lógica proposicional

Leia mais

Lógica Computacional

Lógica Computacional Lógica Computacional Lógica de Operadores Booleanos Interpretações Tautológicas, Lógicas e Analíticas Funcionalidade / Tabelas de Verdade dos Operadores Booleanos Consequências Tautológica, Lógica e Analítica

Leia mais

Linguagem com sintaxe e semântica precisas: lógica. Mecanismo de inferência: derivado da sintaxe e da

Linguagem com sintaxe e semântica precisas: lógica. Mecanismo de inferência: derivado da sintaxe e da istemas de Apoio à Decisão Clínica, 09-1 1 Linguagem com sintaxe e semântica precisas: lógica. Mecanismo de inferência: derivado da sintaxe e da semântica. Importante: distinguir entre os fatos e sua representação

Leia mais

Lógica. Professor Mauro Cesar Scheer

Lógica. Professor Mauro Cesar Scheer Lógica Professor Mauro Cesar Scheer Objetivos Reconhecer e manipular com os símbolos formais que são usados no Cálculo Proposicional (CPC) e Cálculo de Predicados (CP). Determinar o valor de verdade de

Leia mais

Cálculo proposicional

Cálculo proposicional O estudo da lógica é a análise de métodos de raciocínio. No estudo desses métodos, a lógica esta interessada principalmente na forma e não no conteúdo dos argumentos. Lógica: conhecimento das formas gerais

Leia mais

Programas em L1 pertencem ao conjunto de árvores de sintaxe abstrata definido pela gramática abstrata abaixo:

Programas em L1 pertencem ao conjunto de árvores de sintaxe abstrata definido pela gramática abstrata abaixo: 1 Semântica Operacional e Sistemas de Tipos Vamos definir a semântica operacional de uma série de linguagens no estilo conhecido por semântica operacional estrutural chamado também de semântica operacional

Leia mais

Matemática discreta e Lógica Matemática

Matemática discreta e Lógica Matemática AULA 1 - Lógica Matemática Prof. Dr. Hércules A. Oliveira UTFPR - Universidade Tecnológica Federal do Paraná, Ponta Grossa Departamento Acadêmico de Matemática Ementa 1 Lógica Sentenças, representação

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação Fabio Mascarenhas - 2015.2 http://www.dcc.ufrj.br/~fabiom/lp Introdução Quais das expressões abaixo têm o mesmo significado? (vector-ref a 42) Introdução Quais das expressões

Leia mais

Indução. Método de Prova por Indução. Jon Barwise e John Etchemendy, Capítulo: 16

Indução. Método de Prova por Indução. Jon Barwise e John Etchemendy, Capítulo: 16 Indução Método de Prova por Indução Referência: Capítulo: 16 Language, Proof and Logic Jon Barwise e John Etchemendy, 2008 1 Indução Métodos de prova já vistos relacionam-se diretamente com as propriedades

Leia mais

JavaScript (Elementos de Programação e Programação Básica)

JavaScript (Elementos de Programação e Programação Básica) Linguagem de Programação para Web JavaScript (Elementos de Programação e Programação Básica) Prof. Mauro Lopes 1 Objetivos Iniciaremos aqui o nosso estudo sobre a Linguagem de Programação JavaScript. Apresentaremos

Leia mais

Formas Normais para Lógicas Modais

Formas Normais para Lógicas Modais GoBack Formas Normais para Lógicas Modais Cláudia Nalon http://www.cic.unb.br/docentes/nalon nalon@{cic.unb.br, unb.br} Universidade de Brasília Instituto de Ciências Exatas Departamento de Ciência da

Leia mais

Linguagens Lógicas. Aluno: Victor Rocha

Linguagens Lógicas. Aluno: Victor Rocha Linguagens Lógicas Aluno: Victor Rocha Roteiro Introdução Cálculo de Predicados Proposições Conectores Lógicos Variáveis Tipos de Cláusulas fatos regras Banco de Dados Prolog Fatos em Prolog Questões Unificação

Leia mais

Fundamentos 1. Lógica de Predicados

Fundamentos 1. Lógica de Predicados Fundamentos 1 Lógica de Predicados Predicados Estudamos até agora a lógica proposicional Predicados Estudamos até agora a lógica proposicional A lógica proposicional têm possibilidade limitada de expressão.

Leia mais

Nesta aula... Iteração indefinida. 1 Decisões em Python. 2 Funções lógicas. 3 Recursão. 4 Iteração. 5 Ciclo for ou while?

Nesta aula... Iteração indefinida. 1 Decisões em Python. 2 Funções lógicas. 3 Recursão. 4 Iteração. 5 Ciclo for ou while? Nesta aula... 1 2 3 4 indefinida 5 Valores lógicos: booleanos Tipo do Python para guardar os valores lógicos, verdadeiro e falso: booleano (George Bool, matemático inglês) Valores lógicos podem ter apenas

Leia mais

Introdução ao Curso. Área de Teoria DCC/UFMG 2019/01. Introdução à Lógica Computacional Introdução ao Curso Área de Teoria DCC/UFMG /01 1 / 22

Introdução ao Curso. Área de Teoria DCC/UFMG 2019/01. Introdução à Lógica Computacional Introdução ao Curso Área de Teoria DCC/UFMG /01 1 / 22 Introdução ao Curso Área de Teoria DCC/UFMG Introdução à Lógica Computacional 2019/01 Introdução à Lógica Computacional Introdução ao Curso Área de Teoria DCC/UFMG - 2019/01 1 / 22 Introdução: O que é

Leia mais

LFA. Provas formais; Indução; Sintaxe e Semântica Teoria dos Conjuntos

LFA. Provas formais; Indução; Sintaxe e Semântica Teoria dos Conjuntos LFA Provas formais; Indução; Sintaxe e Semântica Teoria dos Conjuntos Técnicas de Demonstração Um teorema é uma proposição do tipo: p q a qual, prova-se, é verdadeira sempre que: p q Técnicas de Demonstração

Leia mais

Lógica proposicional. Capítulo 1

Lógica proposicional. Capítulo 1 Capítulo 1 Lógica proposicional 1.1 Introdução A lógica proposicional, à qual este capítulo é dedicado, pode ser vista como a parte da lógica que se ocupa do estudo do comportamento dos conectivos lógicos

Leia mais

introdução de um novo valor semântico de erro; e A[E 2 ]s 0 erro erro se B [b]s = erro

introdução de um novo valor semântico de erro; e A[E 2 ]s 0 erro erro se B [b]s = erro Propriedades de segurança Na semântica que consideramos todas as expressões avaliam para um determinado valor e os comandos executam sem provocarem s. Vamos considerar algumas alterações que aproximem

Leia mais

Lógica Computacional

Lógica Computacional Lógica Computacional Frases Quantificadas Quantificadores e Variáveis Fórmulas Bem Formadas: Sintaxe e Semântica Formas Aristotélicas 21 Outubro 2013 Lógica Computacional 1 Frases Quantificadas - Existem

Leia mais

Verificação Formal de Software Aula 22

Verificação Formal de Software Aula 22 Verificação Formal de Software Sandra Alves & Nelma Moreira Verificação Formal de Software Aula 22 Contratos e Recursão mútua Até este ponto não distinguimos programas de comandos; Vamos definir formalmente

Leia mais

Introdução à Programação em Python Notebook 12 - Verificação de programas

Introdução à Programação em Python Notebook 12 - Verificação de programas Introdução à Programação em Python Notebook 12 - Verificação de programas Carlos Caleiro, Jaime Ramos Dep Matemática, IST - 2016 6 de Dezembro de 2016 Verificação de programas imperativos Averificaçãodeprogramaséumtópicoabsolutamentecrucialeminúmerasaplicaçõescujocorrectofuncionamento

Leia mais

Apresentação do curso

Apresentação do curso Folha 1 Matemática Básica Humberto José Bortolossi Departamento de Matemática Aplicada Universidade Federal Fluminense Apresentação do curso Parte 1 Parte 1 Matemática Básica 1 Parte 1 Matemática Básica

Leia mais

Introdução. História. História 18/03/2012. Lógica para Ciência da Computação. O que é Lógica?

Introdução. História. História 18/03/2012. Lógica para Ciência da Computação. O que é Lógica? IFMG-Formiga Introdução Lógica para Ciência da Computação O que é Lógica? É a formalização de linguagem e raciocínio, além de meios para expressar (dar significado) a essas formalizações. Profª. Danielle

Leia mais

LÓGICA I ANDRÉ PONTES

LÓGICA I ANDRÉ PONTES LÓGICA I ANDRÉ PONTES 4. Lógica Proposicional A Linguagem da Lógica Proposicional Letras Proposicionais: P, Q, R, S, T,... Conectivos Lógicos: Símbolos auxiliares: (, ), = Conectivo Leitura Símbolo Símbolos

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Professor: Diego Oliveira Conteúdo 05: Linguagem Java Conteúdo da Aula Linguagem Java Tipos Primitivos Operadores Aritiméticos Operadores Lógicos Precedência de Operadores

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Diferentes computadores podem ter diferentes arquiteturas e os diversos tipos de linguagem de programação.

Leia mais

CAPÍTULO 4 - OPERADORES E EXPRESSÕES

CAPÍTULO 4 - OPERADORES E EXPRESSÕES CAPÍTULO 4 - OPERADORES E EXPRESSÕES 4.1 - OPERADORES ARITMÉTICOS Os operadores aritméticos nos permitem fazer as operações matemáticas básicas, usadas no cálculo de expressões aritméticas. A notação usada

Leia mais

Conhecimento e Raciocínio Lógica Proposicional

Conhecimento e Raciocínio Lógica Proposicional Conhecimento e Raciocínio Lógica Proposicional Agente Baseado em Conhecimento ou Sistema Baseado em Conhecimento Representa conhecimento sobre o mundo em uma linguagem formal (KB) Raciocina sobre o mundo

Leia mais

Lógica de Predicados. Quantificadores

Lógica de Predicados. Quantificadores Lógica de Predicados Quantificadores Conteúdo Correção de Exercícios Operações Lógicas Quantificadores Rosen (pg 33) Tradução Português Lógica Rosen (pg 42) Exercícios Determinar o conjunto verdade em

Leia mais

Notas Sobre Correcção de Algoritmos

Notas Sobre Correcção de Algoritmos Notas Sobre Correcção de Algoritmos José Bernardo Barros Departamento de Informática Universidade do Minho 1 Introdução Um programa pode ser definido como um mecanismo (ou máquina) de transformação de

Leia mais

Sistemas Inteligentes

Sistemas Inteligentes Sistemas Inteligentes Aula 21/10 Agentes Lógicos Agente Baseado em Conhecimento Agentes Baseados em Conhecimento ou Agentes Lógicos. Podem lidar mais facilmente com ambientes parcialmente observáveis.

Leia mais

Linguagem de Programação I Prof. Tiago Eugenio de Melo.

Linguagem de Programação I Prof. Tiago Eugenio de Melo. Linguagem de Programação I Prof. Tiago Eugenio de Melo tmelo@uea.edu.br www.tiagodemelo.info 1 Sumário Introdução Conceitos preliminares Introdução Variáveis Comandos Condicionais 2 Por que aprender a

Leia mais

Módulo: PYTHON. Felipe Oliveira

Módulo: PYTHON. Felipe Oliveira Módulo: PYTHON Felipe Oliveira Tudo Blzinha? https://pip.pypa.io/en/stable/installing/ Ctrl + S Variáveis Palavras reservadas! Operadores Aritméticos Operadores básicos Operação Operador adição +

Leia mais

Semântica Denotacional

Semântica Denotacional Semântica Denotacional Uma introdução ISBN 0-321-19362-8 Semântica denotacional é um método formal para definir a semântica de linguagens de programação. Interessa a: projetista de linguagens, quem escreve

Leia mais

Introdução à Programação I

Introdução à Programação I Introdução à Programação I Programação Estruturada Álgebra Booleana e Expressões Compostas Material da Prof. Ana Eliza Definição: Chama-se proposição todo o conjunto de palavras ou símbolos que exprimem

Leia mais

Programação em Lógica. UCPEL/CPOLI/BCC Lógica para Ciência da Computação Luiz A M Palazzo Maio de 2010

Programação em Lógica. UCPEL/CPOLI/BCC Lógica para Ciência da Computação Luiz A M Palazzo Maio de 2010 Programação em Lógica UCPEL/CPOLI/BCC Lógica para Ciência da Computação Luiz A M Palazzo Maio de 2010 Roteiro Introdução Conceitos Básicos Linguagens Lógicas Semântica de Modelos Semântica de Prova Programação

Leia mais

USANDO UM MÉTODO INDUTIVO PARA RESOLVER PROBLEMAS. Bruno Maffeo Departamento de Informática PUC-Rio

USANDO UM MÉTODO INDUTIVO PARA RESOLVER PROBLEMAS. Bruno Maffeo Departamento de Informática PUC-Rio USANDO UM MÉTODO INDUTIVO PARA RESOLVER PROBLEMAS Bruno Maffeo Departamento de Informática PUC-Rio MÉTODO INDUTIVO O método indutivo para resolver problemas aqui empregado inspira-se na formulação mais

Leia mais

Aula Prática 2. Paradigmas da Programação I / Programação Funcional

Aula Prática 2. Paradigmas da Programação I / Programação Funcional Aula Prática 2 Paradigmas da Programação I / Programação Funcional ESI/MCC 1 o ano (2005/2006) Nesta aula pretende-se introduzir os conceitos seguintes: valores e expressões; tipos básicos e tipos compostos;

Leia mais

Fundamentos 1. Lógica de Predicados

Fundamentos 1. Lógica de Predicados Fundamentos 1 Lógica de Predicados Predicados Estudamos até agora a lógica proposicional Predicados Estudamos até agora a lógica proposicional A lógica proposicional têm possibilidade limitada de expressão.

Leia mais

Agentes Baseados em Conhecimento

Agentes Baseados em Conhecimento Raciocínio Lógico Agentes Baseados em Conhecimento Conhecem alguma coisa sobre o mundo. Podem raciocinar para decidir sobre suas possíveis ações. São capazes de aceitar novas tarefas metas explícitas.

Leia mais

3 AULA. Valorações e Tabelas de Verdade LIVRO. META: Apresentar tabelas de verdade para classificar proposições lógicas.

3 AULA. Valorações e Tabelas de Verdade LIVRO. META: Apresentar tabelas de verdade para classificar proposições lógicas. 1 LIVRO Valorações e Tabelas de Verdade META: Apresentar tabelas de verdade para classificar proposições lógicas. OBJETIVOS: Ao fim da aula os alunos deverão ser capazes de: Aplicar valorações de um conjunto

Leia mais

Técnicas de projeto de algoritmos: Indução

Técnicas de projeto de algoritmos: Indução Técnicas de projeto de algoritmos: Indução ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo dbeder@usp.br 08/2008

Leia mais

Cálculo de Predicados

Cálculo de Predicados Cálculo de Predicados (Lógica da Primeira Ordem) Prof. Tiago Semprebom, Dr. Eng. Instituto Federal de Educação, Ciência e Tecnologia Santa Catarina - Campus São José tisemp@ifsc.edu.br 18 de maio de 2013

Leia mais

3 Cálculo Proposicional

3 Cálculo Proposicional 3 Cálculo Proposicional O Cálculo Proposicional é um dos tópicos fundamentais da Lógica e consiste essencialmente da formalização das relações entre sentenças (ou proposições), de nidas como sendo frases

Leia mais

01/09/2014. Capítulo 1. A linguagem da Lógica Proposicional

01/09/2014. Capítulo 1. A linguagem da Lógica Proposicional Capítulo 1 A linguagem da Lógica Proposicional 1 Introdução O estudo da Lógica é fundamentado em: Especificação de uma linguagem Estudo de métodos que produzam ou verifiquem as fórmulas ou argumentos válidos.

Leia mais

Conceitos básicos de programação

Conceitos básicos de programação Constantes class Exemplo { static void Main() { float fahr, celsius; int lower, upper, step; lower = 0; /* limite inferior da tabela de temperaturas */ upper = 300; /* limite superior */ step = 20; /*

Leia mais

Lógica Computacional

Lógica Computacional Lógica Computacional Consequência Tautológica e Lógica em Frases Quantificadas Leis de de Morgan Separação de Quantificadores Consequências Analíticas e Método Axiomático 24 Outubro 2017 Lógica Computacional

Leia mais

1 TEORIA DOS CONJUNTOS

1 TEORIA DOS CONJUNTOS 1 TEORIA DOS CONJUNTOS Definição de Conjunto: um conjunto é uma coleção de zero ou mais objetos distintos, chamados elementos do conjunto, os quais não possuem qualquer ordem associada. Em outras palavras,

Leia mais

Lógica Computacional

Lógica Computacional Lógica Computacional Consequência Tautológica e Lógica em Frases Quantificadas Leis de de Morgan Separação de Quantificadores Consequências Analíticas e Método Axiomático 3 Novembro 2016 Lógica Computacional

Leia mais

Agenda. Complexidade Não Determinista A classe NP. A classe Co-NP Reduções de tempo polinomial. Definida por. Exemplos em:

Agenda. Complexidade Não Determinista A classe NP. A classe Co-NP Reduções de tempo polinomial. Definida por. Exemplos em: A Classe NP Agenda Complexidade Não Determinista A classe NP Definida por aceitação em tempo polinomial por NTM s instâncias positivas com provas de tamanho polinomial aceitação por verificadores em tempo

Leia mais

2 AULA. Conectivos e Quantificadores. lógicas. LIVRO. META: Introduzir os conectivos e quantificadores

2 AULA. Conectivos e Quantificadores. lógicas. LIVRO. META: Introduzir os conectivos e quantificadores 1 LIVRO Conectivos e Quantificadores Lógicos META: Introduzir os conectivos e quantificadores lógicos. OBJETIVOS: Ao fim da aula os alunos deverão ser capazes de: Compreender a semântica dos conectivos

Leia mais

APÊNDICE B ESPECIFICAÇÃO ALGÉBRICA DEFINIÇÕES E NOTAÇÃO

APÊNDICE B ESPECIFICAÇÃO ALGÉBRICA DEFINIÇÕES E NOTAÇÃO APÊNDICE B ESPECIFICAÇÃO ALGÉBRICA DEFINIÇÕES E NOTAÇÃO APÊNDICE B: Especificação Algébrica: Definições e Notação. 342 Def. B.1 : Família Indexada. Uma família F de conjuntos A indexada por I é uma função

Leia mais

Programação I Apresentação

Programação I Apresentação Programação I Apresentação Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br Referências JUNIOR, D. P.; NAKAMITI, G. S.; ENGELBRECHT, A. de M. E.; BIANCHI, F. Algoritmos e Programação

Leia mais

MATEMÁTICA DISCRETA CONCEITOS PRELIMINARES

MATEMÁTICA DISCRETA CONCEITOS PRELIMINARES MATEMÁTICA DISCRETA CONCEITOS PRELIMINARES Newton José Vieira 21 de agosto de 2007 SUMÁRIO Teoria dos Conjuntos Relações e Funções Fundamentos de Lógica Técnicas Elementares de Prova 1 CONJUNTOS A NOÇÃO

Leia mais

Inteligência Artificial. Prof. Tiago A. E. Ferreira Aula 15 Agentes que Raciocinam Logicamente

Inteligência Artificial. Prof. Tiago A. E. Ferreira Aula 15 Agentes que Raciocinam Logicamente Inteligência Artificial Prof. Tiago A. E. Ferreira Aula 15 Agentes que Raciocinam Logicamente 1 Bem-vindos ao Mundo do Wumpus Wumpus Agente caçador de tesouros 2 Codificação do Mundo do Wumpus 4 3 fedor

Leia mais

anti-simétrica, com elemento mínimo e tal que, dados n, n, n N, se

anti-simétrica, com elemento mínimo e tal que, dados n, n, n N, se 1 Sistema dedutivo T 1.1 Árvores e árvores etiquetadas Informalmente, uma árvore é uma estrutura constituída por um conjunto de elementos, designados nós, ordenados de um modo particular. Quando se faz

Leia mais

Lógica proposicional

Lógica proposicional Lógica proposicional Sintaxe Proposição: afirmação que pode ser verdadeira ou falsa Proposições podem ser expressas como fórmulas Fórmulas são construídas a partir de símbolos: De verdade: true (verdadeiro),

Leia mais

IME, UFF 10 de dezembro de 2013

IME, UFF 10 de dezembro de 2013 Lógica IME, UFF 10 de dezembro de 2013 Sumário.... Considere o seguinte argumento Um problema de validade (1) p q q r r s s t p t (1) é válido ou não? A resposta é sim... Uma demonstração Uma demonstração

Leia mais

I1, I2 e In são instruções simples ou estruturadas da linguagem Pascal.

I1, I2 e In são instruções simples ou estruturadas da linguagem Pascal. Capítulo 4 TESTES, ESCOLHAS E MALHAS DE REPETIÇÃO 1. INTRODUÇÃO Em muitos exemplos e exercícios realizados nos capítulos anteriores, não foram raras as vezes em que fizemos uso de elementos disponíveis

Leia mais

LÓGICA FUZZY. Adão de Melo Neto

LÓGICA FUZZY. Adão de Melo Neto LÓGICA FUZZY Adão de Melo Neto INTRODUÇÃO CONCEITO OBJETIVO PRINCÍPIO LÓGICAS: CLÁSSICA x DIFUSA CONJUNTO FUZZY GRAU DE PERTINÊNCIA FUNÇÃO DE PERTINÊNCIA MODIFICADORES TERMINOLOGIA OPERAÇÕES SOBRE CONJUNTOS

Leia mais

Lógica Computacional Frequência. Universidade da Beira Interior

Lógica Computacional Frequência. Universidade da Beira Interior Lógica Computacional Frequência Duração: 2 horas Universidade da Beira Interior Segunda-Feira 9 de Janeiro de 2017 Prova sem consulta de material pedagógico. É proibido o uso de calculadora e de telemóvel.

Leia mais

Programação Introdução

Programação Introdução PROGRAMAÇÃO Programação Introdução Prof. Dr. Adriano Mauro Cansian 1 Introdução Para armazenar um algoritmo na memória de um computador e para que ele possa, em seguida, comandar as operações a serem executadas,

Leia mais

Introdução O problema geral de descrever sintaxe Métodos formas de descrever sintaxe Gramática de atributos Semântica dinâmica

Introdução O problema geral de descrever sintaxe Métodos formas de descrever sintaxe Gramática de atributos Semântica dinâmica Capítulo 3 Descrevendo sintaxe e semântica ISBN 0-321-19362-8 Tópicos Introdução O problema geral de descrever sintaxe Métodos formas de descrever sintaxe Gramática de atributos Semântica dinâmica Copyright

Leia mais

NHI Lógica Básica (Lógica Clássica de Primeira Ordem)

NHI Lógica Básica (Lógica Clássica de Primeira Ordem) NHI2049-13 (Lógica Clássica de Primeira Ordem) página da disciplina na web: http://professor.ufabc.edu.br/~jair.donadelli/logica O assunto O que é lógica? Disciplina que se ocupa do estudo sistemático

Leia mais

Lógica e Metodologia Jurídica

Lógica e Metodologia Jurídica Lógica e Metodologia Jurídica Argumentos e Lógica Proposicional Prof. Juliano Souza de Albuquerque Maranhão julianomaranhao@gmail.com Quais sentenças abaixo são argumentos? 1. Bruxas são feitas de madeira.

Leia mais

Aula 7 Estruturas de Repetição Cleverton Hentz

Aula 7 Estruturas de Repetição Cleverton Hentz Aula 7 Estruturas de Repetição Cleverton Hentz Sumário de Aula Estruturas de Repetições while do for 2 Introdução Nesta aula iremos introduzir outra tipo de estrutura importante na descrição de um algoritmos,

Leia mais

Aula prática 4. Comandos de Desvio. Resumo. 1 Comandos de Desvio Condições mutuamente exclusivas... 2

Aula prática 4. Comandos de Desvio. Resumo. 1 Comandos de Desvio Condições mutuamente exclusivas... 2 Programação de Computadores I UFOP DECOM 2013 2 Aula prática 4 Comandos de Desvio Resumo Nesta aula você irá resolver problemas que requerem uma decisão com base em um teste, ou condição. Para implementar

Leia mais

CES-11. Noções de complexidade de algoritmos. Complexidade de algoritmos. Avaliação do tempo de execução. Razão de crescimento desse tempo.

CES-11. Noções de complexidade de algoritmos. Complexidade de algoritmos. Avaliação do tempo de execução. Razão de crescimento desse tempo. CES-11 Noções de complexidade de algoritmos Complexidade de algoritmos Avaliação do tempo de execução Razão de crescimento desse tempo Notação O Exercícios COMPLEXIDADE DE ALGORITMOS Importância de análise

Leia mais

Lógica Computacional

Lógica Computacional Aula Teórica 5: Semântica da Lógica Proposicional António Ravara Simão Melo de Sousa Departamento de Informática, Faculdade de Ciências e Tecnologia, Universidade Nova de Lisboa Departamento de Informática,

Leia mais

Intuição da sintaxe de L2 (35)

Intuição da sintaxe de L2 (35) 2.2 A Linguagem L2 2.2 A Linguagem L2 A linguagem L2 é uma extensão de L1 com funções recursivas, memória (acesso e atualização de variáveis), sequência de comandos ( ; ) e laço de repetição while. Primeiro,

Leia mais

Lógica Computacional

Lógica Computacional Aula Teórica 13: Dedução Natural em Lógica Proposicional António Ravara Simão Melo de Sousa Departamento de Informática, Faculdade de Ciências e Tecnologia, Universidade Nova de Lisboa Departamento de

Leia mais

Lógica. Cálculo Proposicional. Introdução

Lógica. Cálculo Proposicional. Introdução Lógica Cálculo Proposicional Introdução Lógica - Definição Formalização de alguma linguagem Sintaxe Especificação precisa das expressões legais Semântica Significado das expressões Dedução Provê regras

Leia mais

Aula 2, 2014/2 Sintaxe da Lógica dos Conectivos

Aula 2, 2014/2 Sintaxe da Lógica dos Conectivos Notas de aula de Lógica para Ciência da Computação Aula 2, 2014/2 Sintaxe da Lógica dos Conectivos Renata de Freitas e Petrucio Viana Departamento de Análise, IME UFF 27 de agosto de 2014 Sumário 1 Sintaxe

Leia mais

Alfabeto da Lógica Proposicional

Alfabeto da Lógica Proposicional Ciência da Computação Alfabeto da Lógica Sintaxe e Semântica da Lógica Parte I Prof. Sergio Ribeiro Definição 1.1 (alfabeto) - O alfabeto da é constituído por: símbolos de pontuação: (, ;, ) símbolos de

Leia mais

Aula 2: Linguagem Proposicional

Aula 2: Linguagem Proposicional Lógica para Computação Primeiro Semestre, 2015 Aula 2: Linguagem Proposicional DAINF-UTFPR Prof. Ricardo Dutra da Silva Linguagens naturais, como o nosso Português, podem expressar ideias ambíguas ou imprecisas.

Leia mais

2 Lógica Fuzzy. 2 Lógica Fuzzy. Sintaxe da linguagem

2 Lógica Fuzzy. 2 Lógica Fuzzy. Sintaxe da linguagem 2 Lógica Fuzzy 2.1 Cálculo proposicional (lógica proposicional) 2.2 Lógica de Predicados 2.3 Lógica de múltiplos valores 2.4 Lógica Fuzzy Proposições fuzzy Inferência a partir de proposições fuzzy condicionais

Leia mais

15/03/2018. Professor Ariel da Silva Dias Aspectos sintáticos e semânticos básicos de linguagens de programação

15/03/2018. Professor Ariel da Silva Dias Aspectos sintáticos e semânticos básicos de linguagens de programação Professor Ariel da Silva Dias Aspectos sintáticos e semânticos básicos de linguagens de programação Conjunto de regras que definem a forma da linguagem; Como as sentenças podem ser formadas como sequências

Leia mais

Cálculo proposicional

Cálculo proposicional O estudo da lógica é a análise de métodos de raciocínio. No estudo desses métodos, a lógica esta interessada principalmente na forma e não no conteúdo dos argumentos. Lógica: conhecimento das formas gerais

Leia mais

Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema

Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema ALGORITMIA Resolução De Problemas Em Informática Docente: Ana Paula Afonso 2000-2001 Resolução de Problemas 1. Analisar o problema Conhecer o bem o problema Descrever o problema: subdividir, detalhar 2.

Leia mais

Fundamentos de programação

Fundamentos de programação Fundamentos de programação Expressões lógicas Operadores lógicos e relacionais Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Controle de execução Até o momento, nossos algoritmos

Leia mais

Matemática para Ciência de Computadores

Matemática para Ciência de Computadores Matemática para Ciência de Computadores 1 o Ano - LCC & ERSI Luís Antunes lfa@ncc.up.pt DCC-FCUP Complexidade 2002/03 1 Teoria de Conjuntos Um conjunto é uma colecção de objectos/elementos/membros. (Cantor

Leia mais

Raciocínio Lógico. Negação da Conjunção e Disjunção Inclusiva (Lei de Morgan) Professor Edgar Abreu.

Raciocínio Lógico. Negação da Conjunção e Disjunção Inclusiva (Lei de Morgan) Professor Edgar Abreu. Raciocínio Lógico Negação da Conjunção e Disjunção Inclusiva (Lei de Morgan) Professor Edgar Abreu www.acasadoconcurseiro.com.br Raciocínio Lógico NEGAÇÃO DE UMA PROPOSIÇÃO COMPOSTA Agora vamos aprender

Leia mais

Lógica Computacional DCC/FCUP 2017/18

Lógica Computacional DCC/FCUP 2017/18 2017/18 Raciocínios 1 Se o André adormecer e alguém o acordar, ele diz palavrões 2 O André adormeceu 3 Não disse palavrões 4 Ninguém o acordou Será um raciocínio válido? Raciocínios Forma geral do raciocínio

Leia mais

Introdução à Logica Computacional. Aula: Lógica Proposicional -Sintaxe e Representação

Introdução à Logica Computacional. Aula: Lógica Proposicional -Sintaxe e Representação Introdução à Logica Computacional Aula: Lógica Proposicional -Sintaxe e Representação Agenda Resolução de exercício da aula 1 Definições Proposição simples Conectivos Proposição composta Sintaxe Exercício

Leia mais

Lógica Computacional

Lógica Computacional Aula Teórica 9: Forma Normal Conjuntiva Departamento de Informática 21 de Março de 2011 O problema Como determinar eficazmente a validade de uma fórmula? Objectivo Determinar a validade de raciocínios

Leia mais

Verificação Formal de Software Aula 18

Verificação Formal de Software Aula 18 Verificação Formal de Software Nelma Moreira Verificação Formal de Software Aula 18 Cálculo de Correção parcial H [skip p ] [ass p ] {φ} skip {φ} [comp p ] {φ[e/x]} x := E {φ} [if p ] {φ} C 1 {η} {η} C

Leia mais

Sumário. Os Enigmas de Sherazade I Ele fala a verdade ou mente? I I Um truque com os números... 14

Sumário. Os Enigmas de Sherazade I Ele fala a verdade ou mente? I I Um truque com os números... 14 Sumário Os Enigmas de Sherazade... 13 I Ele fala a verdade ou mente?... 13 I I Um truque com os números... 14 Capítulo 1 Lógica de Primeira Ordem-Proposicional... 15 Estruturas Lógicas... 15 I Sentenças...

Leia mais