Teoria da Computação Ficha de exercícios

Documentos relacionados
Computação Fiável Indução - exercícios básicos

Teoria da Computação Técnicas de Demonstração

Teoria da Computação Programação e Demonstração em Coq Ficha de exercícios

Teoria da Computação Exemplo de relatório para o trabalho n o 2

Cálculo Diferencial e Integral I

sumário 1 introdução e conceitos básicos 1 2 noções de lógica e técnicas de demonstração introdução à matemática discreta...

Lista de Exercícios 9 (Extra): Soluções Grafos

Aula 1: Introdução ao curso

Teoria da Computação

Compiladores. Simão Melo de Sousa. Computer Science Department University of Beira Interior, Portugal. S. Melo de Sousa Compiladores

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

Problema A Codificação Símbolos Dado um inteiro n, n é N representação de inteiros 0,1,...,b - 1 numa base b Dado um grafo G, G é conexo?

Matemática I. 1 Propriedades dos números reais

ELEMENTOS DE MATEMÁTICA DISCRETA Exame de Segunda Data 18/01/2011

2.1 Sucessões. Convergência de sucessões

Universidade Federal de Santa Maria Departamento de Matemática Curso de Verão Lista 1. Números Naturais

complemento para a disciplina de Matemática Discreta versão 1 - Jerônimo C. Pellegrini Relações de Equivalência e de Ordem

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

Pedro Vasconcelos DCC/FCUP. Programação Funcional 5 a Aula Definições recursivas

Indução Matemática. George Darmiton da Cunha Cavalcanti CIn - UFPE

Produto interno e produto vetorial no espaço

Criptografia e Segurança das Comunicações. das Comunicações Bases Matemáticas - Relações e Ordens

Matemática Discreta 11/12 Soluções

Lógica Computacional

Conjuntos parcialmente ordenados, totalmente ordenados e bem ordenados

Teoria da Computação

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

Teoria da Computação

Slides de apoio: Funções I

O Cálculo λ sem Tipos

Teoria intuitiva de conjuntos

Teoria da Computação Aula - Tecnicas de Demonstração

Modelos de Computação

5. Considere os seguintes subconjuntos do espaço vetorial F(R) das funções de R em R:

1 Números Reais (Soluções)

Referências e materiais complementares desse tópico

Pedro Vasconcelos DCC/FCUP. Programação Funcional 3 a Aula Definição de funções

MATEMÁTICA DISCRETA CONCEITOS PRELIMINARES

Exercícios de Teoria da Computação Computabilidade

Teoria das Linguagens. Linguagens Formais e Autómatos (Linguagens)

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

Modelos de Computação Folha de trabalho n. 8

CARACTERÍSTICA DE UM ANEL

(Ciência de Computadores) 2005/ Diga quais dos conjuntos seguintes satisfazem o Princípio de Boa Ordenação

Reticulados e Álgebras de Boole

Um pouco da linguagem matemática

Gramáticas e Linguagens independentes de contexto

Exercícios: Árvores. Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C

Sobre Equações Recursivas e Construções de Ponto Fixo Parte I

1.1 Conjuntos parcialmente ordenados (c.p.o. s)

Teoria dos Conjuntos MATEMÁTICA DISCRETA CONCEITOS PRELIMINARES. Fundamentos de Lógica Técnicas Elementares de Prova A NOÇÃO DE CONJUNTO

Universidade Federal do ABC Centro de Matemática, Computação e Cognição Análise na Reta (2017) Curso de Verão

Teoria da Computação Gramáticas, Linguagens Algébricas e Autómatos de Pilha

Lógica. Fernando Fontes. Universidade do Minho. Fernando Fontes (Universidade do Minho) Lógica 1 / 65

Lógica Matemática 1. Semana 7, 8 e 9. Material Previsto para três semanas

Teoria da Computação Frequência. Universidade da Beira Interior

Cálculo Diferencial e Integral I

Lista de Exercícios CT-200 Primeiro Bimestre Carlos Henrique Quartucci Forster Estagiário: Wesley Telles. Revisão de Teoria de Conjuntos

Programação Funcional Aulas 5 & 6

n. 28 RELAÇÕES BINÁRIAS ENTRE CONJUNTOS

Primeira Prova de Linguagens de Programação - DCC024B -

Análise e Síntese de Algoritmos

Tópicos de Matemática Elementar

antissimétrica: para todos x, y A, x y e y x implica que x = y; transitiva: para todos x, y, z A, x y e y z implica que x z.

Análise Léxica II. Eduardo Ferreira dos Santos. Setembro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 30

Apontamentos de Matemática Discreta

O Princípio de Indução Matemática

Análise e Síntese de Algoritmos. Problemas NP-Completos CLRS, Cap. 34

Matemática para Ciência de Computadores

Semana 3 MCTB J Donadelli. 1 Técnicas de provas. Demonstração indireta de implicação. indireta de. Demonstração por vacuidade e trivial

Fundamentos de Programação

MAT TEORIA DOS CONJUNTOS 1 o SEMESTRE 2014 BACHARELADO - IME

Matemática Discreta para Ciência da Computação

CÁLCULO I. Lista Semanal 01 - Gabarito

Curso: MAT 221- CÁLCULO DIFERENCIAL E INTEGRAL IV Professor Oswaldo Rio Branco de Oliveira Período: Segundo Semestre de 2008

Pedro Vasconcelos DCC/FCUP. Programação Funcional 16 a Aula Árvores equilibradas

1 Conjuntos, Números e Demonstrações

Compilador JSLlight 1 ra Parte: Analisadores léxico e sintactico

Demonstrações. Terminologia Métodos

CONJUNTO DOS NÚMEROS INTEIROS

Teoria da Computação. Exercícios. 1 Máquinas de Registos Ilimitados 2013/2014

Inteligência Artificial

Lista de exercícios 1

Denição 1 Dados conjuntos A e B dizemos que A B se para todo a A, a B. Denição 2 Dados conjuntos A e B dizemos que A = B se A B e B A.

Programação Funcional - Introdução a Cálculo Lambda

Relações binárias. Laura Goulart. 7 de Março de 2018 UESB. Laura Goulart (UESB) Relações binárias 7 de Março de / 1

Capítulo 0: Conjuntos, funções, relações

UNIVERSIDADE DE SÃO PAULO ICMC SCC 202 Algoritmos e Estrutura de Dados I - 2º Semestre 2010 Profa. Sandra Maria Aluísio;

if not(isinstance(a, int)) or a < 0: raise ValueError ("misterio: arg nao e inteiro nao negativo") else: return misterio_aux(a, a + 1)

Compiladores Ficha de exercícios práticos

Geradores e relações

Questão 1: Seja V o conjunto de todos os pares ordenados de números reais. Denamos a adição e a multiplicação por escalar em V por

Textos de apoio às aulas práticas. Jaime Ramos, Francisco Miguel Dionísio

Mudança de base. Lista de exercícios. Professora: Graciela Moro

PCC104 - Projeto e Análise de Algoritmos

b) Recursividade 4 - Sejam a,b,c inteiros, supostamente comprimentos dos lados dum triângulo. Escreva uma função tri que devolva:

Lista 2 - Bases Matemáticas

I Lista de Álgebra Linear /02 Matrizes-Determinantes e Sistemas Prof. Iva Zuchi Siple

MA71B - Geometria Analítica e Álgebra Linear Profa. Dra. Diane Rizzotto Rossetto. LISTA 5 - Espaços Vetoriais

Transcrição:

Teoria da Computação Ficha de exercícios Simão Melo de Sousa Ano lectivo 2004/2005 1 Conjuntos, Relações, Ordens e Conjuntos ordenados Exercício 1 Considere o conjunto Sal dos ordenados duma empresa X. Nesta empresa, os ordenados são compostos por duas partes: o salário S e o valor dos prémios P. Assim, um ordenado é um par (S, P ) onde S R + e P R +. Dois ordenados (a, b) e (c, d) são iguais quando os dois campos dos ordenados são iguais. Isto é: (a, b) = (c, d) (a = c b = d) Determine (e justique) se as relações binárias R 1, R 2, R 3 R 4 e R 5 ( Sal Sal) seguintes são ordens largas: 1. (a, c)r 1 (b, d) (a b) (c d) 2. (a, c)r 2 (b, d) (a b) (c d) 3. (a, c)r 3 (b, d) (a < b) ((a = b) (c d)) 4. (a, c)r 4 (b, d) (a + c) (b + d) 5. (a, c)r 5 (b, d) (a b) (c d) 1

Exercício 2 Sejam Par o conjunto dos inteiros pares e Impar o conjunto dos inteiros ímpares. Considere a relação binária R seguinte sobre N : x Par y Par x y x R y x Impar y Impar x y x Par y Impar 1. Demonstre que R é uma relação de ordem larga 2. Será R total ou parcial? Justique. 3. Dê o diagrama de Hasse (pelo menos um esboço) desta relação. Exercício 3 Seja R E E uma relação binária sobre o conjunto E, mostre que se R 2 R então R é transitiva. Exercício 4 Uma pre-ordem R sobre um conjunto E é uma relação binária transitiva sobre R (em particular R E E). Demonstre que, neste caso, Id E (R R 1 ) é uma relação de equivalência. Exercício 5 Apresenta os diagramas de Hasse de todas relações de ordem possíveis num conjunto de três elementos. Determine quais dessas ordens são reticulados. Exercício 6 Denir o grafo da relação de ordem larga parcial R 1 associada ao diagrama de Hasse da gura 1. Desenha o diagrama de Hasse associado ao grafe da relação de ordem estrita parcial R 2 da gura 2. Exercício 7 (Relações de ordem) Demonstre que as relações seguintes são ordens largas: a relação maior ou igual sobre os reais; a relação é divisível por sobre os inteiro naturais ( a, b N.a b c.b = a.c) 2

Figura 1: Diagrama de Hasse da relação de ordem larga parcial R 1 Figura 2: Grafo da relação de ordem estrita parcial R 2 3

a relação de inclusão sobre as partes dum conjunto C, tal que (C) > 1. Neste caso, o que acontece à ordem se (C) 1? Serão essas ordens parciais ou totais? Exercício 8 Num monóide livre A, a relação prexo prefixo é a relação denida da seguinte forma: Sejam u = u 1... u n uma palavra de n letras e v = v 1... v m uma palavra de m letras tais que n m. u é prexo de m, notado u prefixo v se i n, u i = v i. Demonstre que prefixo é uma relação de ordem larga. Exercício 9 Sejam (C 1, 1 ) e (C 2, leq 2 ) dois conjuntos ordenados. O produto lexicográco, designado por (C 1 C 2, 1 2 ), é o conjunto ordenado onde 1 2 é denido por x 1 1 y 1 (x 1 = y 1 x 2 2 y 2 ). Mostre que o produto lexicográco de ordens totais é uma ordem total. Exercício 10 Mostre que se um subconjunto C de C tem um único elemento maximal então este elemento não é necessariamente o máximo de C ; O que acontece se C for totalmente ordenado? Exercício 11 Seja C o conjunto {1; 2; 3;... ; 20} ordenado pela relação de divisibilidade. Dena o diagrama de Hasse associado; Sejam A, B, C, D e E os conjuntos seguintes {1; 2; 4; 8}, {2; 3; 5; 7}, {2; 3; 6; 9}, {1; 12} e {3; 5; 8; 9}. Determine para cada um deles, caso existirem, os elementos seguintes: majorantes, minorantes, elementos máximos, mínimos, maximal, minimal, limite superior e nalmente limite inferior. 4

Figura 3: Diagrama de Hasse de (C, ). Exercício 12 Considere o conjunto ordenado (C, ) da gura 4. Dene os majorantes, minorantes, elementos máximos, mínimos, maximal, minimal, limite superior e nalmente limite inferior dos subconjuntos: {2, 4, 5, 3, 6} {6, 7} {2, 4, 6, 9} 2 Conjuntos Bem Ordenados e Indução Bem Fundada Exercício 13 Seja f a função OCaml seguinte: let rec f x = if (x<1) then 0 else if (x=1) then 1 else (f (x-2))*(f (x-1))/2 5

Demonstre, usando a indução bem fundada, que n N. (f n) termina. Exercício 14 Diga, dos conjuntos ordenados seguintes, quais são os conjuntos ordenados bem fundados. No caso negativo apresenta uma justicação formal (um contra-exemplo por exemplo). Considere como a relação de ordem habitual e como a relação de divisibilidade (i.e. a b a divide b); 1. (N, ); 2. (Z, ) ; 3. (N, ) ; 4. (R, ) ; 5. ({2n n N }, ) 6. ({2 n n N }, ) 7. C conjunto, ( (C), ) Exercício 15 Sejam (A, A ) e (B, B ) dois conjuntos ordenados por ordens largas totais e bem fundadas (diz-se, neste caso, que A e B são boas ordens). Seja (A B, L ) o conjunto A B ordenado pela ordem lexicográca L i.e. (a, b) L (c, d) { (a <A c) (a = c) (b B d) onde (a < A c) (a A c) (a c). Demonstre que (A B, L ) é bem fundado. Exercício 16 Sejam (A, A ) e (B, B ) dois conjuntos ordenados bem fundados. Seja (A B, A B ) o conjunto A B ordenado pela ordem produto A B i.e. (a, b) A B (c, d) ((a A c) (b B d)). Demonstre que (A B, A B ) é igualmente bem fundado. Para tal considere a denição da noção de ordem bem fundada e verique que A B respeita bem esta denição (uma demonstração possível é proceder por contradição). 6

Exercício 17 Seja d a função OCaml seguinte: 1 let rec d x y = 2 if x < y then 0 3 else if y = 0 then x 4 else ( d (x - y ) y ) +1 ;; 1. Diga, brevemente, o que calcula a função d. 2. Demonstre, por indução bem fundada, que a função d termina. Exercício 18 1. Mostre que n N.(n+1) 2 (n+2) 2 (n+3) 2 +(n+4) = 4 2. Deduzir que qualquer inteiro m pode ser escrito como soma e diferença dos quadrados 1 2, 2 2, 3 2,..., n 2 para um determinado n. Isto é: m N. n N. ɛ 1,... ɛ n { 1, 1}.m = ɛ 1.1 2 + ɛ 2.2 2 +... + ɛ n.n 2 Exercício 19 Seja A o monóide livre gerado a partir do alfabeto A. Mostre que u, v A, u.v = v.u w A. p, q N.u = w p v = w q 3 Reticulados, CPOs e Pontos Fixos Exercício 20 Seja D o conjunto das funções parciais de N para N. Seja fun a função recursiva de D denida por fun [f f(0) = 1, f(1) = 2, f(n + 2) = f(n + 1) + f(n)] 1. Dene o operador de ponto xo F fun f x associado à função fun. 2. Calcule fun 0, fun 1, fun 2, fun 3 e fun 4. 7

Exercício 21 Seja E um conjunto, seja T = (E E) (conjunto das partes de E E) ordenado pela relação de inclusão ( ), seja R uma relação binária sobre E e seja f a função de (E E) em (E E) denida por: f(x) = Id E R.X: 1. mostre que f é contínua; 2. mostre que o mais pequeno ponto xo de f é R Exercício 22 Seja E o conjunto dos algarismos entre 0 e 9 utilizados num painel de publicidade com base em cristais líquidos assim como o algarismo vazio. O conjunto E é: Seja R a relação binária sobre E denida por: se a = b a R b ou se b obtido de a ligando pelo menosuma barra do sistema de vizualização porcristais líquidos Assume que R é uma relação de ordem larga. 1. Dê o diagrama de Hasse da relação R. 2. Mostre formalmente que (E, R) forma um reticulado. Exercício 23 Considere os diagramas de Hasse de conjuntos ordenados da gura 4. Diga (e justique) desses conjuntos ordenados quais são reticulados ou não. 8

Figura 4: Diagramas de Hasse de conjuntos ordenados Exercício 24 Seja D o conjunto das funções parciais de N para N. Seja fun a função recursiva de D denida por fun [f f(0) = 2, f(1) = 5, f(n + 2) = f(n + 1) f(n)] 1. Dene o operador de ponto xo F fun f x associado à função fun. 2. Calcule fun 0, fun 1, fun 2, fun 3 e fun 4. Exercício 25 Mostrar que um conjunto ordenado (C, ) é um reticulado se e só se qualquer subconjunto nito não vazio de C tem um limite superior e um limite inferior. Exercício 26 Demonstre que o conjunto ordenado (N, ) é um reticulado. Determine, em particular, o que são as operações e constantes,, e ; Será este reticulado distributivo? complementado? Exercício 27 Dado um conjunto C, demonstre que o conjunto ordenado ( (C), ) é um reticulado completo. O que são os elementos e? 9

Exercício 28 Mostre que qualquer função contínua é monótona. Exercício 29 Seja f uma aplicação contínua dum reticulado completo (C, ) para ele próprio. Seja k = inf({f n ( ) n N}) Mostre que f(k) k Mostre que, para todo o ponto xo y de f, y k; Mostre que {f( ) n N} é uma cadeia de C. Exercício 30 Considere o conjunto (C C) ordenado pela relação de inclusão. Seja R uma relação binária sobre C e seja f a aplicação de (C C) para (C C) denida por f(x) = Id C R.X. Mostre que esta aplicação é contínua e que o seu mais pequeno ponto xo é R 4 Denições Indutivas Exercício 31 Demonstre por indução que n N. (3 3.n+2 +2 n+4 ) é divisível por 5. Exercício 32 Uma árvore binária é equilibrada se, para cada nodo, a diferença de altura entre a sub-árvore esquerda e a sub-árvore direita é no máximo 1. 1. Dar uma denição indutiva do conjunto AV L A das árvores binárias equilibradas de elementos dum conjunto A. 2. Qual é o principio de indução associado a esta denição indutiva? 3. Dene a função altura sobre as árvores binárias equilibradas que diga qual é o comprimento do maior ramo da árvore em parâmetro (considere que a altura da árvore vazia é 0 e que a altura da arvore que só tem um nodo é 1). 4. Dene a função nodos sobre as árvores binárias equilibradas que devolve o número de nodos da árvore em parâmetro; 10

5. Demonstre por indução estrutural que a AV L A. altura(a) nodos(a) Exercício 33 O objectivo deste exercício é a denição indutiva do conjunto das datas válidas. Uma data válida é um terno (d, m, a) onde d e a são inteiros que representam respectivamente o dia e o ano, e m uma palavra representando um mês (como a palavra Fevereiro que representa o mês de Fevereiro). Imagine que exista uma relação ternária val(d, m, a) que seja verdade se o dia d é um dia possível para o mês m e o ano a. Por exemplo não temos val(29, F evereiro, 2001) porque 2001 não é um ano bissexto, também não temos val(31, Setembro, 2001) nem val(0, Setembro, 2001) porque Setembro só tem 30 dias e porque não existe o dia 0. 1. Dena indutivamente o conjunto Mês dos meses. 2. Dena indutivamente o conjunto Data das datas válidas. Exercício 34 Seja f : N N N, a função recursiva denida por: n + 1 se m = 0 f(m, n) f(m 1, 1) se n = 0 m 0 f(m 1, f(m, n 1)) se n > 0 m > 0 demonstre por indução estrutural a propriedade: k N, f(1, k) = k + 2; demonstre por indução que k N, f(2, k) = 2 k + 3. Exercício 35 Explique brevemente a diferença entre a noção de função recursiva e a noção de função estruturalmente recursiva. Exercício 36 (Denições Indutivas) Denir os seguintes conjuntos indutivos: 11

1. A parte N 3 de N dos inteiros múltiplos de três 2. A parte L A do monoide livre B (onde o alfabeto B é A { [, ], : }) das listas de elementos de um conjunto A. Fornecer igualmente a denição constructiva do conjunto considerado. 3. A parte AB A do monoide livre B (onde o alfabeto B é A { (, ),, }) das árvores de elementos de um conjunto A 4. A parte D do monoide livre A (onde o alfabeto A é {(, )}) das expressões bem "parenteseadas"(conhecida por Linguagem de Dyck. Por exemplo ()(()()), ()() e ((())) são palavras da linguagems de Dyck, mas ((), ()) e ())( não são palavras da linguagem. 5. A parte A do monoide livre A (sendo A um alfabeto qualquer) Exercício 37 (Denição construtiva de conjuntos indutivos) Seja A um alfabeto, dene-se AB A,n, (n N) por AB A,0 = { } (1) AB A,n+1 = AB A,n {(a, g, d) a A e g, d AB A,n } (2) 1. Mostrar que AB A,ω (= n N AB A,n) é o conjunto AB A. 2. Para A = {a, b, c}, exibir AB A,2 3. Exibir uma árvore binária que não pertença a AB A. Porque nunca será ela gerado por AB A,ω? Exercício 38 (Altura de elementos de conjuntos indutivos) Qual é a altura de 18 nos conjuntos indutivo dos inteiros, dos inteiros pares, dos inteiros múltiplos de três? Exercício 39 (Indução sobre os naturais) Seja o polinómio p(x) = 1 3 x3 1 2 x2 + 1 6 x 12

1. Denir p(x + 1) p(x) 2. Mostrar que para todo o n N, p(x) N Exercício 40 (Demonstrações na linguagem de Dyck) Mostrar que qualquer palavra da linguagem de Dyck tem tantas parêntesis esquerdas como parêntesis direitas. Exercício 41 (Terão os princípios de indução sentido?) Encontrar o erro no raciocínio seguinte: "Em qualquer grupo de pessoas, todas as pessoas têm a mesma idade" Demonstração: Por indução sobre o número de pessoas no grupo (em N ). Caso base num grupo de uma pessoa, todas as pessoas tem a mesma idade, trivialmente. Caso do passo indutivo Hipótese de indução: todas as pessoas tem a mesma idade em qualquer grupo de n pessoas. Seja G um grupo de n + 1 pessoas, sejam G 1 e G 2 os grupos das n primeiras e últimas pessoas de G. Todas as pessoas de G 1 e de G 2 têm a mesma idade, por hipótese. Logo a primeira pessoa de G 1 tem a mesma idade do que a segunda pessoa de G 1, essa segunda pessoa de G 1 é a primeira pessoa de G 2 e tem a mesma idade do que a última de G 2, logo a primeira pessoa de G ( G 1, / G 2 ) tem a mesma idade do que a última pessoa de G ( G 2, / G 1 ). Logo, todas as pessoas de G têm a mesma idade. Conclusão Fica então demonstrado que em qualquer grupo de pessoas, todas as pessoas têm a mesma idade Exercício 42 (Funções denidas em conjuntos indutivos) 1. Denir a função subtermo(t) que devolve o conjuntos dos subtermos de um termo t T 2. Denir a função altura(a) que devolve a altura de uma árvore a AB A 13

3. Denir a função nós(a) que devolve o número de nós da árvore parâmetro a AB A 4. Denir a função folhas(a) que devolve o número de folhas da árvore parâmetro a AB A 5. Denir a função pot(x, n) que devolve x n (n N) 6. Denir a função pertence(x, l) que devolve 1 se x( A) pertence a l( L A ), 0 senão 7. Denir a função comprimento(l) que devolve o tamanho da lista l( L A ) 8. Denir a função inverte(l) que devolve a lista inversa a lista l( L A ) (a lista em que os elementos estão em ordem inversa em comparação a l) 9. Denir a função concat(l 1, l 2 ) que concatenas a lista l 2 a lista l 1 (l 1, l 2 L A ) Exercício 43 (Árvores Binárias Estritas) Uma árvore binária é estrita se não tiver um nó com um só lho e se não for a árvore vazia. 1. Dar a denição indutiva de ABs A, o conjunto das árvores binárias estritas. 2. Mostrar que em ABs A se tem n(x) = 2 f(x) 1 em que x é um elemento de ABs A, n a função que devolve o número de nós de uma árvore, e f a função que devolve o número de folhas de uma árvore. Exercício 44 (Linguagem de termos e conjuntos indutivos) a) Denir a linguagem T de termos baseada no alfabeto F = F 0 F 2 onde F 0 = {c} e F 2 = {f}. 14

b) Dado a interpretação h em N seguinte, h(c) = 1 (3) h f (n, m) = n + m (4) que conjunto X é denido por X = {h (t) t T }? c) Será a denição de X, correspondente a T, ambígua? Exercício 45 (Denições de conjuntos indutivos não ambíguas a partir de funções indu Seja N = N/{0} Seja a denição seguinte de modulo(n, m) no conjunto indutivo N N por { n se n < m modulo(n, m) = modulo((n m), m) senão Esta denição dene modulo como uma função apesar de N N ser denido ambiguamente. Extrair uma denição não ambígua de N N que corresponde a função modulo. Exercício 46 (Denições indutivas parametrizadas) Denir maxelem(a) e minelem(a), a AB A, as funções que devolvem o maior e menor elemento ( A) da árvore a Denir o conjunto das árvores ABo A das árvores ordenadas Provar que o percurso inxo de uma árvore ordenada a devolve sempre a lista crescente dos elementos de a 5 Dedução Natural Exercício 47 Demonstre, em dedução natural, as seguintes tautologias: ((P Q) R) ((P R) (Q R)) ((P Q) R) (( R P ) Q) 15

((A C) (B D)) (A B) (C D) (A B) ( A B) ((P Q) R) (( R P ) Q) (A A) ((A B) (A B)) 6 Cálculo λ Exercício 48 Um termo λ é β fortemente normalizável quando todas reduções β conduzem a uma forma normal (i.e. não existe nenhuma possibilidade de haver uma sequência innita de redução β). Serão os seguintes termos β fortemente normalizável? No caso positivo, apresente a forma normal, no caso negativo justique. (λx.(λy.y x)z)v (λu.y)((λz.(z z))(λx.(x x))) Exercício 49 O combinador Y λf.((λx.f(x x))(λx.f(x x))) pertence a família dos combinadores de ponto xo. De facto f Λ. (Y f) = f(y f). O nome desta família liga os seus elementos a noção de ponto xo. Comente, exemplique e justique esta armação. Procura por exemplo comparar Y ao operador de ponto xo F f. Exercício 50 Assuma que, no sistema numérico de Church, as funções if, is_one is_zero, pred, succ e times estejam denidas. Dena a função recursiva ocaml seguinte (utilize o combinador Y ). 16

let rec f x = if (x<1) then 0 else if (x=1) then 1 else (f (x-2))*(f (x-1)) Exercício 51 Assuma que, no sistema numérico de Church, as funções if, is_one is_zero, pred, succ, times e div2 estejam denidas: 1. dena a função recursiva ocaml seguinte (utilize o combinador Y ) let rec f x = if (x<1) then 0 else if (x=1) then 1 else (f (x-2))*(f (x-1))/2 2. dê o termo λ que no sistema numérico de Church codica o inteiro 3; 3. reduza (f 3) Exercício 52 Se considerarmos os termos λ como programas, qual é a importância do teorema de Conuência quando relacionada com a noção de execução? Exercício 53 Assuma que, no sistema numérico de Church, as funções if, is_one is_zero, pred, succ, times e div2 estejam denidas: 1. dena a função recursiva seguinte (utilize o combinador Y ) 17

1 let rec f x = 2 if ( x <1) 3 then 0 4 else 5 if ( x =1) 6 then 1 7 else ( f ( x -2))*( f ( x -1))/2 2. dê o termo λ que no sistema numérico de Church codica o inteiro 3; 3. reduza (f 3) Exercício 54 Terão os seguintes termos uma forma normal? positivo, apresente a forma normal, no caso negativo justique. No caso 1. (λx.(x x))(λx.(x x)) 2. ((λx y z. x(y z))(λu v.(u(u v))))(λu v.(u(u v))) Exercício 55 Diga, no sistema numérico de Church, o que calcula o seguinte termo λ f: f λa b c. a(b c) Sugestão: 1. experimenta reduzir a aplicação de f aos inteiros de Church que codi- cam 2 e 3 (respectivamente λfx.f(fx) e λfx.f(f(fx))); 2. depois de determinada a β-forma normal, diga que inteiro esta codica. Conclua. 18

7 OCaml Exercício 56 Sejam C um conjunto, R C C uma relação binária sobre C e R + o fecho transitivo de R. Diz-se que R é arborescente quando x C. (R + x x). Assumindo a existência da a implementação em OCaml das funções de base da teoria dos conjuntos e das relações, dena uma função que teste se uma relação R é arborescente ou não. Exercício 57 Dada uma lista l = [x 0 ; x 1 ; x 2 ;... ; x n ], Dene uma função booleana tem_ponto_fixo que devolve verdade (true) se existe um valor i tal que x i = i (i.e. existe um valor v da lista tal que está na posição v), e falso (false) senão. Por exemplo: (tem_ponto_fixo [3;5;2;6])=true porque 2 esta na posição 2 da lista. Exercício 58 Considere o tipo OCaml das relações binárias denido no trabalho prático. Seja op: 'a relacao 'a relacao um operador contínuo sobre relações binárias. Dene em OCaml a função fixpoint que calcula o ponto xo de op. Exercício 59 Dene em Ocaml a função capicua que verique que uma lista (o parâmetro da função) é uma capicua ou não. Por exemplo (capicua [1; 2; 4; 5; 5; 4; 2; 1]) devolve true. 8 Coq Exercício 60 Dene em Coq a função capicua que verique que uma lista (o parâmetro da função) é uma capicua ou não. Por exemplo (capicua [1; 2; 4; 5; 5; 4; 2; 1]) devolve true. Exercício 61 Sejam A e B dois conjuntos (A, B Set) split: dado uma lista l( list (A B)) = [(a 1, b 1 );...; (a n, b n )] de pares, a função split aplicada a l devolve o par de listas ([a 1 ;...; a n ], [b 1 ;...; b n ]). 19

combine: dado duas listas l( list A) = [a 1 ;...; a n ] e l ( list B) = [b 1 ;...; b m ], a função combine aplicada as listas l e l devolve [(a 1, b 1 );...; (a p, b p )], em que p = min(n, m). 1. Dê a denição Coq das funções combine e split; 2. Duma certa forma, sombine e split são inversas uma da outra. Assim a aplicação de split seguida de combine é a função identidade. Dê o enunciado Coq de tal propriedade; 3. Terá a composição inversa (combine seguida de split) a mesma propriedade? Justique. Exercício 62 Sejam A e B dois conjuntos (A, B Set) split: dado uma lista l( list (A B)) = [(a 1, b 1 );...; (a n, b n )] de pares, a função split aplicada a l devolve o par de listas ([a 1 ;...; a n ], [b 1 ;...; b n ]). combine: dado duas listas l( list A) = [a 1 ;...; a n ] e l ( list B) = [b 1 ;...; b m ], a função combine aplicada as listas l e l devolve [(a 1, b 1 );...; (a p, b p )], em que p = min(n, m). 1. Dê a denição Coq das funções combine e split; 2. Duma certa forma, sombine e split são inversas uma da outra. Assim a aplicação de split seguida de combine é a função identidade. Dê o enunciado Coq de tal propriedade; 3. Terá a composição inversa (combine seguida de split) a mesma propriedade? Justique. Exercício 63 Considere as seguintes denições Coq: 1 2 Variable A : Set. 3 Variable R : A A Prop. 4 5 Inductive Rlinha : ( A A Prop ) := 6 R_0 : ( x : A ) ( Rlinha x x ) 7 R_n : ( x,y, z : A ) ( R x y ) ( Rlinha y z ) ( Rlinha x z ). 20

1. Que relação particular codica a relação Rlinha? 2. Qual é o principio de indução associado a Rlinha? 3. Que enunciado Coq teria de demonstrar se quisesse provar que Rlinha era transitiva? Exercício 64 Considerando as declarações Coq seguintes: 1 Variable A : Set. 2 3 Inductive E : Set := 4 F : A E 5 N : A E E E. 1. Diga o que o conjunto indutivo E representa. Sugestão: Compara E ao conjunto AB A ; 2. Determine o princípio de indução associado à denição de E; 3. Dene uma função COQ que calcule o número de construtores F presentes num termo t de E. 21