UNIVERSIDADE ESTADUAL DE CAMPINAS INSTITUTO DE FILOSOFIA E CIÊNCIAS HUMANAS DEPARTAMENTO DE FILOSOFIA Normalização Forte via Ordinal Natural Daniel Durante Pereira Alves Orientação Profa. Dr.a Ítala Maria Loffredo D'Ottaviano CAMPINAS 1999 Daniel Durante PereiraAlves Normalização Forte via Ordinal Natural Tese de Doutorado apresentada ao Departamento de Filosofia do Instituto de Filosofia e Ciências Humanas da Universidade Estadual de Campinas sob a orientação da Prof.a. Dra. Ítala Maria Loffredo D'Ottaviano. Este exemplar corresponde à redação final da tese defendida e aprovada pela Comissão Julgadora em 01/09/1999 Banca: Prof.a. Dra. Ítala Maria Loffredo D'Ottaviano Prof. Dr. Cosme Damião Bastos Massi Prof. Dr. Luiz Carlos Pinheiro Dias Pereira Prof. Dr. Ruy de Queiroz Prof. Dr. Walter Alexandre Carnielli Prof. Dr. Hércules de Araujo Feitosa Prof. Dr. Marcelo Esteban Coniglio Setembro / 1999 FICHA CATALOGRÁFICA ELABORADA PELA BIBLIOTECA DO IFCH – UNICAMP Esta tese foi desenvolvida com bolsa da FAPESP. Alves, Daniel Durante Pereira AL 87 n Normalização Forte via ordinal natural / Daniel Durante Pereira Alves. - Campinas, SP : [s. n.], 1999. Orientador: Ítala Maria Loffredo D'Ottaviano. Tese (doutorado) – Universidade Estadual de Campinas, Instituto de Filosofia e Ciências Humanas. 1. Lógica simbólica e matemática. 2. Filosofia. 3. Cálculo de predicados. 4. Metamatemática. 5. Cálculo lambda. I. D'Ottaviano, Ítala Maria Loffredo. II. Universidade Estadual de Campinas. Instituto de Filosofia e Ciências Humanas. III. Título. Aos meus pais João e Arlete Obrigado meu pai e minha mãe, o amor e apoio incondicional que sempre me deram são o meu maior privilégio Obrigado meus irmãos e amigos queridos, todos vocês são parte importante de mim Obrigado Gabi, você está e estará sempre no meu coração Obrigado CAPES, FAPESP e FAEP pelo apoio financeiro essencial Obrigado Cosme e Luiz Carlos pela ajuda e incentivo fundamentais Obrigado Ítala, minha amiga querida, por sua confiança, carinho e cuidado Obrigado Paula, sob a luz dos teus dias eu sou simplesmente feliz. Índice Introdução ............................................................................................................................................ 1 Capítulo I – Dedução natural e pior seqüência de redução .................................. 11 1. Regras de inferência e derivações – caracterização informal ........................................................... 14 2. Sistemas de dedução natural ............................................................................................................. 15 3. Definições e convenções gerais ......................................................................................................... 20 4. Reduções......................................................................................................................................... .... 22 5. Pior seqüência de redução para C' .................................................................................................... 28 Capítulo II – Finitude e unicidade da atribuição numérica o(π ) ....................... 33 1. Segmento-α ........................................................................................................................................ 36 2. Subárvores ......................................................................................................................................... 59 3. Seqüência estrela ............................................................................................................................... 68 4. A atribuição numérica o(π) ............................................................................................................... 82 Capítulo III – O ordinal o(π ) diminui com as reduções e coincide com o comprimento lp(π ) da pior seqüência de redução para π ...... 85 1. Resultados auxiliares ......................................................................................................................... 89 2. Resultados sobre derivações nas quais F(π) não é OMπ ................................................................... 101 3. Resultados sobre derivações com F(π) multiplicativa ..................................................................... 117 4. Resultados gerais ............................................................................................................................... 141 Capítulo IV – O cálculo lambda tipificado λ⊃ e a noção de fórmulas como tipos . 161 1. Tipos e termos .................................................................................................................................... 164 2. Convenção de variáveis e substituição .............................................................................................. 168 3. Reduções ............................................................................................................................................ 171 4. A Estratégia perpétua ........................................................................................................................ 178 5. A Noção de fórmulas como tipos ....................................................................................................... 181 Capítulo V – Os ordinais naturais de Howard, Vrijer e Beckmann ............... 199 1. O artigo Howard [1968]...................................................................................................................... 202 2. O artigo Vrijer [1987]......................................................................................................................... 224 3. O artigo Beckmann [1998]................................................................................................................. 240 Capítulo VI – Normalização forte para λ⊃ via ordinal natural ........................... 251 1. O comprimento da pior seqüência, se finito, diminui com as reduções ........................................... 253 2. Finitude e unicidade de o(M) ............................................................................................................ 264 3. Finitude da pior seqüência – o(M)=LF∞(M) ...................................................................................... 283 4. Comparação entre o nosso método e os artigos discutidos no Capítulo V ................................... 310 Capítulo VII – Estendendo os resultados para outros sistemas ....................... 319 1. Normalização forte para M e I via ordinal natural ............................................................................ 321 2. Normalização forte via ordinal natural para sistemas de lógica modal ........................................... 378 Considerações finais ..................................................................................................................... 381 Bibliografia ......................................................................................................................................... 389 Índice remissivo .............................................................................................................................. 399 Introdução A nascente teoria de conjuntos do final do século XIX representava uma poderosa ferramenta para a redefinição rigorosa de muitos conceitos matemáticos que, apesar de extensamente utilizados, ainda não eram totalmente claros e provocavam controvérsias. A descoberta de paradoxos nesta teoria levou David Hilbert à formulação de seu famoso programa formalista. Em linhas gerais, podemos dizer que o programa de Hilbert buscava obter provas de consistência para formalizações das partes essenciais da matemática, por métodos que seriam evidentes e seguros, devido ao seu caráter elementarmente combinatório e finitário. Estes métodos evidentes e seguros constituiriam uma nova teoria matemática, que Hilbert batizou de Teoria da Prova (Beweistheorie). É sabido que os resultados de Gödel sobre incompletude mostraram a impossibilidade de se realizar totalmente o programa de Hilbert, da maneira como ele foi proposto. Apesar disso, muitos pesquisadores da época persistiram em procurar formalizações para partes relevantes da matemática e buscar provas de consistência para essas formalizações. O melhor exemplo histórico desse tipo de investigação é o artigo de 1935 de Gehard Gentzen, que hoje é considerado o marco inicial da Teoria da Prova. A esta época, o sistema hilbertiano para a lógica clássica de primeira ordem já estava estabelecido como o sistema formal mais adequado para expressar as deduções lógicas próprias da prática matemática, de modo que as "formalizações para partes relevantes da matemática" poderiam ser escritas como teorias axiomáticas deste sistema. Além disso, baseado nos trabalhos de Brower, Heyting[1930] já havia apresentado uma formalização, também hilbertiana, para a lógica intuicionista de primeira ordem. Gentzen[1935], no entanto, argumentou que as deduções presentes nas provas formalizadas pelos sistemas lógicos hilbertianos estavam longe de expressar o tipo de dedução que, na prática, era usado em provas matemáticas. Tentando aproximar ao máximo a dedução lógica formalizada da dedução praticada pelos matemáticos, Gentzen criou a Dedução Natural como um novo tipo de formulação para sistemas lógicos, e introduziu os sistemas de dedução natural NK e NJ, para a lógica clássica e lógica intuicionista de primeira ordem, respectivamente. Gentzen definiu formalmente, para estes sistemas, a noção de prova normal, como sendo uma prova sem partes desnecessárias, na qual qualquer conceito que faça parte da prova é um conceito que está contido no resultado final desta e é parte essencial para a 3 obtenção deste resultado. 1 Através de uma análise das propriedades estruturais das provas normais, Gentzen percebeu que seria bastante simples provar, não só a consistência dos seus sistemas lógicos (NK e NJ), como também a consistência da teoria elementar dos números, sem indução completa, se ele conseguisse provar que qualquer prova formalizada em NK e NJ poderia ser transformada em uma prova normal (Teorema de Normalização). Por não conseguir provar o Teorema de Normalização para NK, Gentzen criou o Cálculo de Seqüentes, como um outro tipo de formulação para sistemas lógicos, e introduziu os sistemas LK e LJ, respectivamente para a lógica clássica e lógica intuicionista de primeira ordem. Gentzen então demonstrou que qualquer prova formalizada em LK ou LJ poderia ser transformada em uma prova normal (Teorema da Eliminação do Corte ou Hauptsatz), conseguindo portanto demonstrar, finitariamente, a consistência dos seus sistemas lógicos LK e LJ, e a consistência da teoria elementar dos números, sem indução completa, formalizada nestes sistemas. Esta prova do Hauptsatz, que é a versão em cálculo de seqüentes do Teorema de Normalização, e as provas de consistência dela derivadas, enquadravam-se perfeitamente ao tipo de prova exigido pelo programa de Hilbert e podem ser consideradas como os resultados inaugurais da Teoria da Prova. Através de um aperfeiçoamento do Hauptsatz, Gentzen[1938] obteve outro importante resultado. Provou a consistência da teoria elementar dos números, com indução completa – a aritmética de primeira ordem – quando formalizada em LK e LJ, por um método que, apesar de não finitário, concentrou todo o seu caráter infinitário em um único ponto: indução sobre boas ordens com tipo de ordem transfinito menor que ε0. Ou seja, Gentzen não só reduziu a um único argumento o caráter transfinito de sua prova de consistência, como também limitou seu tratamento transfinito a ordinais menores que ε0. Este resultado, que já extrapola os limites do programa de Hilbert, uma vez que não é estritamente finitário, também pode ser considerado como um resultado inaugural do que hoje é chamado análise ordinal de teorias formais. Fazer a análise ordinal de uma teoria significa, em linhas gerais, identificar o "tamanho" dos recursos infinitos necessários à prova de consistência desta teoria. 1 Cf. Gentzen[1935], p. 69. 4 Hoje, divide-se a Teoria da Prova em dois ramos distintos, a Teoria Geral da Prova 2 , que tem por fim investigar as propriedades estruturais e combinatórias de provas formalizadas, e que tem por métodos principais o Hauptsatz e a normalização; e a Teoria Redutiva da Prova 3 , cujo principal objetivo é obter, através do estudo das provas formalizadas de uma teoria, uma "interpretação" desta teoria em uma outra que, de acordo com certos critérios, é mais elementar que a teoria original. Um exemplo deste tipo de resultado é a famosa Interpretação Dialectica, introduzida por Gödel[1958], que traduz a aritmética intuicionista de primeira ordem em uma teoria de funcionais de tipos finitos. Este resultado de Teoria Redutiva da Prova impulsionou o estudo de um outro tipo de sistema formal, o Cálculo Lambda Tipificado, que hoje é extensamente utilizado em variadas áreas do conhecimento e que, entre outras coisas, pode ser utilizado como mais um tipo de notação para provas formalizadas em sistemas de dedução natural, constituindo-se em mais uma ferramenta da Teoria Geral da Prova para o estudo das propriedades estruturais e combinatórias de deduções formalizadas. Além das provas de consistência do programa de Hilbert e das análises ordinais de teorias formais, existem hoje outras motivações para o desenvolvimento da Teoria Geral da Prova. Algumas delas com implicações bastante práticas, como por exemplo o estudo de questões relativas à programação lógica e à dedução automática. No primeiro caso, deduções formalizadas são usadas como ferramentas para computar e, no segundo, sistemas de computação são usados para efetuar deduções. Em ambos os casos, as propriedades estruturais e combinatórias de deduções formais desempenham um importante papel. Voltando ao problema da forma normal de deduções formalizadas, que representa uma questão central em Teoria Geral da Prova, podemos separar os seguintes resultados possíveis de serem obtidos para um sistema formal S. (1) Teorema da Forma Normal: toda dedução formalizada em S possui uma forma normal. 4 2 Também conhecida como Teoria Estrutural da Prova (Structural Proof Theory). 3 Também conhecida como Teoria Interpretativa da Prova (Interpretational Proof Theory). 4 Sejam π e π' formalizações em um sistema S para as deduções Γ− φ e ∆− φ respectivamente. Dizemos que π' é forma normal de π quando π' está na forma normal e ∆ ⊂ Γ. 5 (2) Teorema de Normalização Fraca: para qualquer dedução formalizada em S, podemos obter efetivamente sua forma normal através de uma seqüência finita de operações chamadas reduções. (3) Teorema de Normalização Forte: (a) Normalização Forte (Finitude): todas as seqüências de reduções para qualquer dedução formalizada em S são finitas e terminam em uma dedução na forma normal; (b) Church-Rosser (Unicidade): a forma normal obtida através das seqüências de reduções é única para cada dedução formalizada em S. 5 Apesar de Gentzen não ter encontrado uma prova de normalização para NK, hoje sabemos que todos os resultados acima são válidos para NK, NJ e para muitos outros sistemas formais que foram posteriormente criados a partir dos trabalhos de Gentzen. No entanto, para a grande maioria das aplicações dos resultados em Teoria Geral da Prova, os métodos de obtenção destes resultados são tão importantes quanto os próprios resultados. Por exemplo, se estamos interessados em provar a consistência de uma teoria matemática formal S, é de interesse fundamental sabermos que tipo de teoria matemática estamos assumindo em nossa prova de consistência de S. Além disso, para o caso das aplicações em computação que mencionamos, é óbvio que os métodos efetivos e construtivos têm muito mais interesse do que métodos não construtivos. É possível separar as demonstrações encontradas na literatura para o Teorema de Normalização Forte em dois grupos distintos: as provas semânticas e as provas sintáticas. Podemos resumir o método das provas semânticas da seguinte forma: define-se uma 5 Prawitz[1971] introduziu a expressão Teorema de Normalização Forte como sendo constituída pelos Itens (3a) e (3b) acima, ou seja, para Prawitz, normalização forte significa que todas as seqüências de redução terminam na mesma forma normal. No entanto, o termo Normalização Forte também é usado na literatura referindo-se apenas ao Item (3a), sobre a finitude das seqüências de reduções, enquanto que o Item (3b) é conhecido como o Teorema da Unicidade da Forma Normal ou Teorema de Church-Rosser, em referência aos autores da primeira prova de um resultado deste tipo. Como estes dois resultados não são interdependentes e, muitas vezes, são provados separadamente, vamos utilizar nesta tese a expressão Teorema de Normalização Forte apenas para o Item (3a), sendo que o Item (3b) será referido como Teorema de Church-Rosser. 6 propriedade P aplicável às deduções formalizadas em um certo sistema formal S, e prova-se que, se P é válida para uma dedução π, então π é fortemente normalizável. A normalização forte é obtida provando que todas as deduções formalizadas em S satisfazem P. Há na literatura várias propriedades P de provas semânticas de normalização forte, como por exemplo a validade forte, de Prawitz[1971], a convertibilidade, de Tait[1967], e a computabilidade, de Martin-Löf[1971], entre outras. A desvantagem destas provas semânticas reside no fato de que elas demonstram algo a mais do que simplesmente normalização forte. Elas demonstram que P, que é mais forte que normalização forte, é válida para toda dedução formalizada. Assim, algumas das propriedades estruturais que seriam conseqüência exclusiva de normalização forte, mas não necessariamente de P, não podem ser percebidas através deste tipo de prova. Uma destas propriedades, por exemplo, seria um limite para o comprimento das seqüências de reduções das deduções formalizadas. As provas sintáticas para o Teorema de Normalização Forte evitam o passo indireto representado pela definição da propriedade P. Em Pereira[1974], Girard[1987] e Massi[1989] obtém-se normalização forte, sintaticamente, através de um mapeamento das seqüências de redução em um sistema formal auxiliar, que satisfaz normalização forte. Um outro método sintático para obtenção de normalização forte, que podemos encontrar em Gandy[1980] e Vrijer[1987], é o método do ordinal natural. Por este método obtém-se normalização forte através da definição de uma atribuição numérica finita que relaciona provas formalizadas com números naturais, de modo que o número 0 (ou 1) é atribuído a provas que estejam na forma normal. Em seguida, prova-se que esta atribuição numérica possui a propriedade de diminuir com as reduções. Se temos uma atribuição numérica que relaciona as provas formalizadas com números naturais e se esta atribuição diminui com as reduções, então é claro que todas as seqüências de redução para qualquer prova formalizada são finitas e terminam em uma prova na forma normal. Um resultado extra que o método de normalização forte via ordinal natural fornece, consiste no fato de que esta atribuição numérica que diminui com as reduções, o ordinal natural, representa um limitante superior para o comprimento das seqüências de redução para as deduções formalizadas de S. O objetivo principal desta tese é introduzir um método de obtenção de normalização forte via ordinal natural, aplicável a sistemas de dedução natural e cálculo lambda tipificado, no qual a atribuição numérica utilizada, por coincidir com o comprimento de 7 uma seqüência de redução específica – a pior seqüência de redução – representa o menor limitante superior para o comprimento das seqüências de redução para as deduções formalizadas. O compromisso principal do método que introduziremos é o de que ele seja construtivo e elementar, produzido apenas através da análise de propriedades estruturais e combinatórias das deduções formalizadas, sem apelo a nenhuma ferramenta matemática sofisticada. Juntamente, faremos um estudo de alguns artigos presentes na literatura que também obtêm normalização forte via ordinal natural. Destacamos neste estudo o artigo Howard[1968], que realiza uma análise ordinal da interpretação dialectica de Gödel para a aritmética intuicionista de primeira ordem. Sobre este artigo revelamos um fato não apontado pelo autor: uma prova sintática do Teorema de Normalização Forte para o sistema de cálculo lambda tipificado λ⊃ é conseqüência de seus resultados. A motivação inicial para a realização deste trabalho surgiu em um curso sobre Teoria da Prova ministrado pelo Prof. Dr. Cosme Damião B. Massi em 1994, que a esta época era professor visitante do Departamento de Filosofia da UNICAMP. Em sua tese de doutoramento, Massi[1990] obteve uma prova sintática, porém condicional, dos Teoremas de Normalização Forte e Church-Rosser para o sistema de dedução natural para a lógica clássica de primeira ordem C', introduzido em Prawitz[1965]. Ele definiu uma seqüência de redução maximamente não econômica para as deduções formalizadas em C' (a pior seqüência de redução) e provou que, na hipótese do comprimento lp(π) desta pior seqüência de redução para uma dedução π ser finito, então: (a) lp(π) diminui com as reduções e (b) existe uma dedução pertencente à pior seqüência de redução para π que também pertence à pior seqüência de redução para π', dedução obtida a partir de π através de uma redução qualquer. Assumindo como hipótese que lp(π) é finito para toda dedução π, o Item (a) do teorema de Massi leva a uma prova trivial do Teorema de Normalização Forte para C', e o Item (b) leva a uma prova trivial do Teorema de Church-Rosser. A nossa motivação principal foi então provar que lp(π) é finito para toda dedução formalizada π, tornando assim incondicionais as provas de Normalização Forte e Church-Rosser de Massi. A estratégia que utilizamos para obter este resultado consistiu em redefinir lp(π) de uma maneira que fosse possível provar sua finitude. Definimos para isso a atribuição numérica o(π) e provamos que o(π) associa um número natural a cada dedução π formalizada em C'. Em seguida provamos que o(π)= lp(π), obtendo assim a finitude de lp(π) 8 para toda dedução π. Com isso retiramos a hipótese condicional dos resultados de Massi, atingindo nosso objetivo primeiro. Além disso mostramos, independentemente dos resultados de Massi, que o(π) diminui com as reduções, e com isso obtivemos uma prova independente do Teorema de Normalização Forte via ordinal natural para C', consolidando assim o nosso método. Durante o desenvolvimento destes resultados, foi-nos apontado pelo Prof. Dr. Luiz Carlos P. D. Pereira a existência de um artigo (Vrijer[1987]) no qual havia uma prova de normalização forte para um sistema de cálculo lambda tipificado que utilizava uma estratégia bastante semelhante à nossa. Vrijer definiu uma atribuição numérica para termos de cálculo lambda tipificado, que diminui com as reduções e coincide com o comprimento de uma seqüência de redução específica – a seqüência obtida através da estratégia perpétua, definida por Barendregt[1990]. A descoberta deste artigo nos levou a outros, onde também foram encontradas definições de atribuições numéricas finitas que diminuem com as reduções e, como conseqüência destas definições, provas do Teorema de Normalização Forte via ordinal natural. A título de comparar o nosso método com o método de Vrijer e dos outros artigos, desenvolvemos os nossos resultados para o mesmo sistema de cálculo lambda tipificado destes artigos. Por fim, apresentamos extensões do nosso método para alguns sistemas de dedução natural de lógicas intuicionistas e modais. Esta tese está dividida em sete capítulos. No Capítulo I são apresentados os principais pré-requisitos necessários ao desenvolvimento do nosso método para os sistemas de dedução natural. Fazemos uma rápida introdução à dedução natural, onde as notações e noções mais gerais, tais como as de forma normal e redução, são definidas. Além disso apresentamos os seguintes sistemas de dedução natural, originalmente introduzidos por Prawitz[1965]: o sistema M para a lógica minimal, o sistema I para lógica intuicionista e os sistemas C e C' para a lógica clássica, sendo que em C' os operadores para disjunção e quantificador existencial não são símbolos primitivos. Também no Capítulo I apresentamos a definição da pior seqüência de redução e o resultado de Massi sobre esta seqüência que discutimos acima. No Capítulo II iniciamos efetivamente o desenvolvimento do nosso método. Uma longa série de definições e resultados sobre propriedades estruturais e combinatórias de 9 derivações 6 do sistema C' é apresentada. Esta série culmina com a definição da atribuição numérica o(π) e com a prova de que o(π) relaciona univocamente cada derivação π de C' com um número natural. No Capítulo III provamos que, para toda derivação π de C', o(π) diminui com as reduções e é igual ao comprimento lp(π) da pior seqüência de redução para π. Com estes resultados completamos o nosso método para o sistema C', obtendo as provas de normalização forte, Church-Rosser e algumas outras propriedades interessantes envolvendo o(π) e lp(π). Como pré-requisito para estudarmos os outros artigos que obtêm normalização forte via ordinal natural e também para desenvolvermos o nosso método no sistema formal utilizado nestes artigos, no Capítulo IV apresentamos uma introdução ao sistema de cálculo lambda tipificado λ⊃ e introduzimos a importante noção de fórmulas como tipos, que relaciona estes sistemas com sistemas de dedução natural. Por fim, discutimos as linhas gerais da questão sobre transferência de provas de normalização entre estes dois tipos de sistemas formais. No Capítulo V apresentamos um estudo sobre três artigos, Howard[1968], Vrijer[1987] e Beckmann[1998], nos quais também encontramos o método do ordinal natural. No Capítulo VI desenvolvemos completamente o nosso método para o sistema de cálculo lambda tipificado λ⊃ e o comparamos com o método dos artigos estudados. No Capítulo VII, voltamos aos sistemas de dedução natural e apresentamos extensões do nosso método para os sistemas M e I de lógica minimal e lógica intuicionista, e para sistemas de lógica modal. Por último, nas considerações finais, discutimos possíveis desenvolvimentos futuros a partir dos resultados obtidos neste trabalho. 6 Derivações, como será visto no Capítulo I, representam deduções formalizadas por sistemas de dedução natural. 10 Capítulo I Dedução Natural e Pior Seqüência de Redução Os Sistemas de Dedução Natural, desenvolvidos independentemente por Jaškowski e Gentzen no início dos anos 30, representam um método de formalização para sistemas lógicos distinto do método dos sistemas hilbertianos, desenvolvidos por Frege, Russell e Hilbert. Segundo Gentzen[1935], apesar de "consideráveis vantagens formais", a formalização da dedução lógica proposta por estes autores distanciou-se das formas de dedução usadas na prática matemática. Gentzen desejava que seus sistemas formais expressassem ao máximo o tipo de raciocínio que se faz nas provas matemáticas. Como resultado, ele produziu os sistemas de dedução natural NK, para a lógica clássica de primeira ordem, e NJ, para o cálculo de predicados intuicionista de Heyting. 7 Informalmente falando, podemos pensar em um sistema de dedução natural como sendo constituído por uma linguagem formal e por um conjunto de regras de inferência estreitamente relacionadas com os símbolos lógicos desta linguagem. Com apenas uma exceção (a constante do absurdo ⊥, que possui apenas uma regra associada), a cada operador lógico da linguagem relacionamos dois tipos de regras: as regras de introdução e as regras de eliminação. Estas regras expressam as propriedades lógicas de cada operador e representam as ferramentas de cálculo mais básicas do sistema. A regra de introdução para um operador lógico habilita o sistema a inferir fórmulas que tenham este operador como símbolo principal, enquanto que a regra de eliminação para um operador habilita o sistema a inferir algo de fórmulas que tenham este operador como símbolo principal. O objetivo deste capítulo é introduzir sucintamente os principais pré-requisitos necessários à compreensão dos resultados referentes aos sistemas de dedução natural presentes nesta tese. O capítulo está dividido em cinco seções. Na primeira seção, introduzimos informalmente os conceitos de regra de inferência e derivação. Na segunda seção, os sistemas de dedução natural para a lógica clássica de primeira ordem C e C', e os sistemas M e I para as lógicas de primeira ordem minimal e intuicionista, respectivamente, são formalmente apresentados. Em seguida, na terceira seção, apresentamos as principais 7 Nesta tese trataremos de dois sistemas lógicos distintos baseados nos trabalhos de Brower sobre o intuicionismo: o que foi introduzido por Heyting[1930], conhecido como lógica intuicionista de Heyting, ou simplesmente lógica intuicionista, e o sistema conhecido como lógica minimal, historicamente atribuído a Johansson[1936], mas que já tinha sito proposto por Kolmogorov[1925]. 13 convenções de notação e as definições usuais mais importantes que utilizaremos, como as de fórmula máxima e derivação normal. Na quarta seção, os conceitos de redução e seqüência de redução são expostos; e, finalmente, na quinta seção, é definida a pior seqüência de redução para o sistema C' e é apresentado o principal resultado a ela relativo que utilizaremos nesta tese. 8 §1 Regras de Inferência e Derivações Caracterização Informal As regras de inferência de um sistema de dedução natural descrevem as deduções mais simples através das quais podemos inferir uma conclusão de um conjunto de premissas. São escritas na forma φ φ φ ξ 1 ... 2 n , onde uma ou mais premissas, representadas por φ1, ..., φn, são separadas de uma conclusão, representada por ξ, por um traço. Uma derivação representa uma dedução formalizada em um sistema de dedução natural e corresponde ao encadeamento, em forma de árvore, de aplicações de regras de inferência. Uma derivação é, portanto, algo da forma: F ED C BA 1 1 onde cada traço representa a aplicação de uma regra que tem como premissas as fórmulas imediatamente acima do traço e como conclusão a fórmula imediatamente abaixo do traço. A derivação acima realiza uma dedução de F, a última fórmula da derivação, que é chamada de raiz. Chamamos de hipóteses da derivação as fórmulas que não são conseqüência da aplicação de nenhuma regra (A, B e E no exemplo acima). As hipóteses são, portanto, as 8 Exposições sistemáticas e completas sobre Dedução Natural são apresentadas em Gentzen[1935], Prawitz[1965] e Prawitz[1971]. A definição e os resultados sobre a pior seqüência de redução para C' estão todos em Massi[1990]. 14 primeiras fórmulas sobre as quais aplicamos regras em uma derivação. A derivação continua, pela aplicação de novas regras às conseqüências das hipóteses, até chegarmos à raiz, que é a fórmula deduzida. Durante a aplicação das regras, algumas hipóteses podem ser cortadas ou descartadas. Hipóteses são cortadas para indicar que a dedução expressada na derivação não depende dessas hipóteses. Os rótulos "1", ao lado do traço da última regra da derivação do exemplo e sobre a hipótese A, indicam que a aplicação desta regra cortou aquela hipótese. Dessa forma, derivações formalizam deduções do tipo Γ−A, onde o conjunto das fórmulas que aparecem como hipóteses não cortadas na derivação é subconjunto de Γ, e A é a última fórmula (raiz) da derivação. A derivação do exemplo acima formaliza as deduções Γ− F, para todo Γ tal que {B, E} ⊂ Γ. §2 Sistemas de Dedução N atural Os sistemas de Dedução Natural que apresentaremos aqui foram todos formalizados em Prawitz[1965] tendo por base a seguinte linguagem, que é introduzida nos termos usuais, e possui um conjunto enumerável de: ♦ parâmetros (a, b, ..., a1, b1, ...), ♦ variáveis (x, y, ..., x1, y1, ...), ♦ símbolos de predicados n-ários (P, Q, ..., P1, Q1, ...), ♦ símbolos de funções n-árias (f, g, ..., f1, g1, ...). A linguagem do sistema C' possui ainda os seguintes operadores lógicos: ♦ conjunção (∧), implicação (⊃), quantificador universal (∀)e constante do absurdo (⊥). A linguagem dos sistemas C, M e I possui, além dos operadores lógicos de C', os seguintes: ♦ disjunção (∨) e quantificador existencial (∃). Os termos e fórmulas da linguagem são definidos, indutivamente, da maneira usual.

(b) A indicação que aparece entre parênteses, depois de cada regra, é o "nome" da regra, que contém o conectivo e o tipo da regra (introdução ou eliminação). (c) As regras (∀I) e (∃E) possuem restrições concernentes ao parâmetro a, chamado de parâmetro próprio da regra (∀I) ou (∃E) em que ocorre, sobre as quais falaremos mais adiante. Apesar de ainda não termos caracterizado totalmente os sistemas, vejamos, como ilustração, um exemplo simples de demonstração em dedução natural de um teorema do fragmento positivo da lógica clássica de primeira ordem. 1.2.3 EX EMPLO: −∀x(Fx ∧ Gx) ⊃ (∀xFx ∧ ∀xGx) Prova: ∀x(Fx ∧ Gx) 1 (∀E) ∀x(Fx ∧ Gx) 1 (∀E) Fa ∧ Ga (∧Ed) Fb ∧ Gb (∧Ee) Fa (∀I) Gb (∀I) ∀xFx ∀xGx (∧I) ∀xFx ∧ ∀xGx (⊃I) . 1 ∀x(Fx ∧ Gx) ⊃ (∀xFx ∧ ∀xGx) Iniciamos a derivação com duas hipóteses, nas quais aplicamos regras de inferência, e seguimos aplicando novas regras até chegarmos à fórmula desejada. Os símbolos entre parênteses ao lado do traço de cada aplicação de regra identificam a regra que aquela aplicação representa. Note que a última regra da derivação possui o "rótulo" 1, que é o mesmo rótulo que aparece nas hipóteses da prova. Esta notação, como já vimos, é usada para relacionar hipóteses cortadas com as aplicações de regra que as cortaram. De acordo com a descrição da regra (⊃I), a aplicação da regra marcada por 1 corta as duas únicas hipóteses da derivação. Portanto, esta derivação deduz ∀x(Fx∧Gx)⊃(∀xFx∧∀xGx) do vazio. Logo, ∀x(Fx∧Gx)⊃(∀xFx∧∀xGx) é teorema. 17 1.2.4 OBSERVAÇÃO: É importante distinguirmos claramente fórmula de ocorrência de fórmula em uma derivação. Quando nos referimos, por exemplo, indistintamente a ∀x(Fx∧Gx), estamos nos referindo a uma fórmula da linguagem dos nossos sistemas. No momento em que escrevemos as fórmulas em uma derivação, cada "fórmula" grafada é na verdade uma ocorrência de fórmula, que juntamente com sua forma tem uma posição específica na derivação. Quando dizemos, por exemplo, a ocorrência mais à esquerda de ∀x(Fx∧Gx) na derivação do Exemplo 1.2.3, estamos nos referindo a uma ocorrência de fórmula. Em geral chamaremos ocorrências de fórmulas simplesmente de ocorrências, e as fórmulas relacionadas a estas ocorrências de formas das ocorrências. 1.2.5 DEFIN IÇÃO: Ocorrência Dependente Dizemos que uma ocorrência de fórmula A em uma derivação depende das hipóteses que ocorrem acima de A que não foram cortadas por nenhuma regra de inferência que precede A. 1.2.5.1 OBSERVAÇÃO: Na derivação do Exemplo 1.2.3, Fa, por exemplo, depende da hipótese ∀x(Fx∧Gx) mais à esquerda da derivação, pois esta hipótese ocorre acima de Fa e, apesar de ser cortada, não é cortada por regra que precede A. Por outro lado, a raiz da derivação, ∀x(Fx ∧ Gx) ⊃ (∀xFx ∧ ∀xGx), não depende de nenhuma hipótese, pois as duas únicas foram cortadas por uma regra que precede esta ocorrência. 1.2.6 RESTRIÇÕES: Restrições à Aplicação das Regras de Inferência (a) Restrição para a regra (∀I): O parâmetro a não pode ocorrer em nenhuma hipótese da qual A(a) dependa. (b) Restrição para a regra (∃E): O parâmetro a não ocorre em B nem em nenhuma hipótese da qual a premissa menor B dependa, com exceção apenas para as hipóteses A(a) que são cortadas pela regra. 18 1.2.7 CON VEN ÇÕES: Sobre Parâmetros Próprios Para simplificar certos detalhes formais, assumiremos os resultados sobre parâmetros próprios de Prawitz[1965], que garantem que sempre podemos ter derivações que respeitem as seguintes restrições: 9 (a) Um parâmetro em uma derivação é parâmetro próprio de no máximo uma regra (∀I) ou (∃E). (b) O parâmetro próprio de uma regra (∀I) só pode aparecer em fórmulas que ocorram acima da conclusão da regra (∀I) em questão. (c) O parâmetro próprio de uma regra (∃E) só pode aparecer em fórmulas que ocorram acima da premissa menor da regra (∃E) em questão. 1.2.8 DEFIN IÇÃO: O Sistema de Lógica Minimal M As regras de inferência descritas em 1.2.2 determinam o sistema de dedução natural para a lógica intuicionista minimal de primeira ordem, abreviado por M. Como a negação é dada pela abreviação ¬A = df A⊃⊥, as únicas regras de M que lidam com a negação são casos especiais das regras (⊃I) e (⊃E) aplicados a A⊃⊥. Utilizando a abreviação acima podemos escrever estas regras como: (¬I) A ]A[ ¬ ⊥ (¬E) ⊥ ¬AA 1.2.9 DEFIN IÇÃO: O Sistema de Lógica Intuicionista I O sistema de primeira ordem I para a lógica intuicionista de Heyting é determinado pelas regras descritas em 1.2.2 e pela regra do absurdo intuicionista (⊥I) definida por: (⊥I) A ⊥ onde A é diferente de ⊥. 10 19 9 Para maiores detalhes ver Prawitz[1965], pp. 27 a 29. 1.2.10 DEFIN IÇÃO: O Sistema de Lógica Clássica C O sistema C para a lógica clássica de primeira ordem é determinado pelas regras de inferência descritas em 1.2.2 acrescidas pela regra do absurdo clássico (⊥C) definida por: (⊥C) [ ]¬ ⊥ A A onde A é diferente de B⊃⊥ (ou seja, de ¬B). 11 1.2.11 DEFIN IÇÃO: O Sistema de Lógica Clássica C' O sistema C' para a lógica clássica de primeira ordem é obtido a partir do sistema C desconsiderando-se os símbolos lógicos (∨), (∃) e suas respectivas regras de inferência. 12 §3 Definições e Convenções Gerais Apresentaremos aqui as definições e convenções mais gerais sobre dedução natural que utilizaremos no decorrer deste texto. 1.3.1 N OTAÇÕES: Convenções U suais (a) A letra grega π, com ou sem índices superiores ou inferiores, denotará derivações. A letra grega Σ, com ou sem índices superiores ou inferiores, denotará seqüências de derivações, incluindo a seqüência vazia. (b) O símbolo ≡ é usado como indicação de identidade sintática entre derivações. 10 Na versão deste sistema apresentada em Prawitz[1971] exige-se também que A seja atômico. No entanto estamos utilizando a versão apresentada em Prawitz[1965] que não faz esta restrição. 11 É fácil ver que esta restrição não limita o sistema. Cf Prawitz[1965], pp 20 e 21. 12 Não é difícil demonstrar que C' também realiza a lógica clássica. Basta tomarmos ∃ e ∨ como símbolos definidos da maneira usual, e criarmos derivações em C' que produzam os mesmos efeitos que as regras envolvendo ∃ e ∨ produzem. 20 (c) A notação r(π) denota a ocorrência final de π (a ocorrência deduzida em π), a qual chamamos de raiz da derivação π. (d) A notação denota uma derivação π onde r(π)= A. π A (e) A notação A ... n21 πππ denota uma derivação na qual estamos focalizando a última aplicação de regra, que pode possuir uma ou mais premissas, as quais são deduzidas pelas derivações π1 ... πn. (f) As hipóteses de uma derivação também serão chamadas de top-fórmulas da derivação. (g) A notação denota uma derivação π onde Γ é um subconjunto específico das top-fórmulas de π. Se todas as ocorrências pertencentes a Γ forem ocorrências da mesma fórmula A, então pode ser escrito como . Se Γ for um conjunto unitário com uma ocorrência A, então pode ser escrito como , denotando uma derivação π na qual A é uma top-fórmula de π. Γ π Γ π Γ π [ ]A π A π 13 (h) Dado , chamaremos as ocorrências de fórmula pertencentes a Γ de hipóteses destacadas de . Γ π Γ π (i) Sejam e derivações. A notação [ denota a derivação obtida através da substituição de cada hipótese destacada de pela derivação . A 1π [ ]A π2 π π 1 2 ]A [ ]A π2 π1 A (j) As notações πta e Σt a denotam o resultado de substituir todas as ocorrências do parâmetro a pelo termo t em todas as ocorrências de fórmula em π e Σ respectivamente. (k) Em uma regra de eliminação (αE), a premissa que possui o operador lógico α que é eliminado é chamada premissa maior (PM). As outras premissas, se houver, são chamadas premissas menores (pm). 13 Note que Γ não é um conjunto de fórmulas, mas de ocorrências de fórmulas em uma certa derivação π. 21 Por exemplo, na regra (⊃E) A A B B ⊃    , A⊃B é PM e A é pm. (l) A conclusão da aplicação de uma regra em uma derivação também chamamos de ocorrência gerada pela aplicação da regra na derivação. (m) Chamamos as top-fórmulas de uma derivação que não foram cortadas por nenhuma aplicação de regra, de top-fórmulas abertas ou hipóteses abertas. (n) Denotaremos por n[A](π) o número de hipóteses destacadas de . [ ]A π 1.3.2 DEFIN IÇÃO: Fórmula Máxima (FM) Dizemos que uma ocorrência de fórmula φ numa derivação π é fórmula máxima em π, denotada por FMπ, quando φ for conseqüência de regra de introdução ou do absurdo e premissa maior de regra de eliminação. A noção fundamental de forma normal pode agora ser definida formalmente de modo bastante simples. 1.3.3 DEFIN IÇÃO: Derivação N ormal Uma derivação π é normal ou está na forma normal, quando nenhuma ocorrência de fórmula em π é fórmula máxima. §4 Reduções As reduções que apresentaremos nesta seção foram definidas com o objetivo principal de eliminar fórmulas máximas das derivações, de modo a transformar derivações quaisquer em derivações normais. Vamos inicialmente definir formalmente as reduções para em seguida falarmos um pouco mais sobre elas. 22 As reduções definidas nesta seção estão divididas em 2 grupos diferentes: as reduções operacionais, definidas em 1.4.1 a 1.4.8, e as reduções permutativas, definidas em 1.4.9 e 1.4.10. 14 Dizemos que π' é uma redução imediata de π, ou que π se reduz imediatamente a π', e denotamos π → π', quando π' é obtida de π por uma das 10 maneiras abaixo (1.4.1 a 1.4.10): 1.4.1 ∧-redução π ≡ π π π 1 1 2 2 1 2 3 A A A A Ai ∧ → π' ≡ (i= 1, 2). 3 i i A π π OBSERVAÇÃO: Mesmo que A1 e A2 sejam ocorrências da mesma fórmula, não existe ambigüidade na redução, pois em π deve estar expresso qual regra de eliminação da conjunção foi utilizada ((∧Ed) ou (∧Ee)). 1.4.2 ⊃-redução-1 π ≡ π π π 1 2 3 A A B A B B k k [ ] ⊃ → π' ≡ . π π π 1 2 3 [A] B 1.4.3 ⊃-redução-2 π ≡ π π π 1 2 3 A B A B B ⊃ → π' ≡ . π π 2 3 B 14 Todas as reduções que apresentaremos aqui foram introduzidas em Prawitz[1965]. 23 1.4.4 ∀-redução π ≡ π π 1 2 A A A ( ( ( a x x t ) ) ) ∀ → π' ≡ . ( ) ( ) π π 1 2 t a tA 1.4.5 ∨-redução-1 (a) π ≡ k 4 k 3 3 k 2 2 32 i 1 B B ]A[ B ]A[ AA A π ππ ∨ π → π' ≡ (i= 2, 3); 4 i i 1 B ]A[ π π π (b) π ≡ k 4 k 3 3 k 2 2 32 1 B B ]A[ B ]A[ AA π ππ ∨ ⊥ π → π' ≡ 4π 2 2 1 B ]A[ π ⊥ π . 1.4.6 ∨-redução-2 (a) π ≡ k 4 k 3 32 32 1 B B ]A[ BAA C π ππ ∨ π → π' ≡ , onde C ≡ A 4 2 B π π 2 ou C ≡ ⊥; (b) π ≡ k 4 3 k 2 2 32 3 1 B BB ]A[ AA A π ππ ∨ π → π' ≡ . 4 3 B π π 24 1.4.7 ∃-redução-1 π ≡ k 3 k)a( 2 )x(x )a( 1 B B ]A[ A A π π ∃ π → π' ≡ . 3 2 )a( 1 B ]A[ π π π 1.4.8 ∃-redução-2 π ≡ 3 2 (x)x (a) 1 B BA A π π ∃ π → π' ≡ . 3 2 B π π 1.4.9 ∃-permutação π ≡ → π' ≡ , 5 4 )x(x 21 D A AB π Σ ∃ ππ 5 )x(x 41 2 D DB A π ∃ Σπ π onde A é premissa maior de regra de eliminação e Σ4 pode ocorrer à esquerda de A. 1.4.10 ∨-permutação π ≡ → π' ≡ B , 5 4 321 D A AACB π Σ ∨ πππ 5 441 32 D DDC AA π ∨ ΣΣπ ππ onde A é premissa maior de regra de eliminação e Σ4 pode ocorrer à esquerda de A. 1.4.11 DEFIN IÇÃO: Seqüência de Redução Uma seqüência de redução para uma derivação π é uma seqüência de derivações π1, ..., πi, πi+1, ... tal que: (1) π1 é π; (2) Cada πi+1 é uma redução imediata de πi. 25 1.4.12 N OTAÇÕES: (a) A notação π → π' indica que existe uma seqüência de redução de comprimento finito n (1< n< ω) na qual π é π1 e π' é πn. Diremos neste caso que π se reduz a π'. (b) A notação π → R π' denota que π ≡ π' ou π → π'. 1.4.13 DEFIN IÇÕES: N ormalização (a) Uma derivação π é normalizável se π → R π' tal que π' é derivação normal. (b) Um sistema de dedução natural satisfaz normalização fraca se toda derivação deste sistema é normalizável. (c) Uma derivação π é fortemente normalizável l se toda seqüência de redução para π é finita e termina em uma derivação normal. (d) Um sistema de dedução natural satisfaz normalização forte se toda derivação deste sistema é fortemente normalizável. (e) Um sistema de dedução natural possui a propriedade de Church-Rosser se toda seqüência de redução finita para qualquer derivação π termina na mesma forma normal. Ou seja, se a forma normal para uma derivação, quando existe, é única. 1.4.14 COMEN TÁRIO: Justificando o Sistema C' Considere a derivação π ≡ A A B B A B B ∧ ⊃ . Note que π representa a seguinte dedução: A, A∧B− B. Note também que A⊃B é uma fórmula máxima segundo a Definição 1.3.2. Se observarmos as regras de inferência descritas em 1.2.2 e o exemplo acima, podemos perceber o que foi chamado em Prawitz[1965] de princípio de inversão entre as regras de introdução e eliminação para cada conectivo. Para ilustrar o princípio de inversão Prawitz diz: "A aplicação de uma regra de eliminação essencialmente apenas restaura o que já havia sido estabelecido se a premissa maior desta aplicação fosse inferida pela aplicação de uma regra de introdução." 15 15 Cf. Prawitz[1965], p 33. 26 Uma fórmula máxima, como A⊃B do exemplo acima, representa exatamente esta situação. O que já havia sido estabelecido antes da introdução que gerou a fórmula máxima do nosso exemplo era exatamente: A B B ∧ , que formaliza a dedução A∧B− B, mas também formaliza a dedução do exemplo: A, A∧B− B. A constatação do princípio da inversão sugere que para cada dedução deve haver uma derivação que a realize, na qual não ocorram fórmulas máximas que sejam conseqüência de introdução. Nos teoremas de normalização, em geral, estabelecemos que a partir de uma derivação qualquer, podemos obter uma derivação normal da mesma dedução. Ou seja, queremos obter derivações em que não ocorram fórmulas máximas de nenhum tipo. Visando isso, Prawitz introduziu as reduções como métodos de eliminação de fórmulas máximas para obtenção de derivações normais: para eliminar as fórmulas máximas que sejam conseqüência de regra de introdução ou de ⊥I, Prawitz criou as reduções operacionais (1.4.1 a 1.4.8), que são fortemente inspiradas no princípio de inversão. Para resolver problemas específicos com fórmulas máximas cujos conectivos principais são ∃ e ∨, Prawitz criou as reduções permutativas. Já para as fórmulas máximas conseqüência da regra do absurdo (⊥C), justamente por elas não obedecerem ao princípio de inversão, uma vez que não existem regras de introdução e eliminação associadas à constante do absurdo, as reduções representam um problema de difícil solução. A solução de Prawitz tanto para o problema das reduções do absurdo quanto para as reduções permutativas, que não são intuitivamente claras, foi restringir a lógica clássica a certos conectivos não problemáticos (∧, ⊃, ∀ e ⊥) através da criação do Sistema C'. Prawitz demonstrou que, para cada derivação π em C', podemos obter uma outra, π#, que representa a mesma dedução, onde toda aplicação da regra do absurdo clássico (⊥C) tem como conseqüência uma fórmula atômica. 16 Neste caso, nenhuma conseqüência de (⊥C) pode ser premissa maior de regra de eliminação, pois sendo atômica, não possui conectivo para ser eliminado. Portanto, π# é uma derivação em que não ocorrem fórmulas máximas que sejam conseqüência da regra do absurdo clássico. 16 Cf. Prawitz[1965], pp 39 e 40. 27 Daqui para frente, sempre que nos referirmos a uma derivação de C', estaremos nos referindo a uma derivação já transformada, em que todas as regras (⊥C) possuem conseqüência atômica. Dessa forma, as únicas reduções relevantes ao sistema C' são as reduções operacionais dos conectivos presentes neste sistema (1.4.1 a 1.4.4), que são intuitivamente claras e mais simples de lidar. O resultado principal desta tese, que desenvolveremos nos Capítulos II e III, será obtido para o sistema C', e portanto tem relação apenas com as reduções 1.4.1 a 1.4.4. As demais reduções só serão utilizadas quando propusermos uma extensão deste resultado para os sistemas M e I, no Capítulo VII desta tese. §5 Pior Seqüência de Redução para C' A definição de pior seqüência de redução para derivações em C' que iremos enunciar e utilizar foi introduzida em Massi[1990], Capítulo VII. A pior seqüência de redução para uma derivação π é, intuitivamente, aquela que leva em consideração todas as fórmulas máximas que podem ser geradas a partir das fórmulas máximas já existentes em π. Isso quer dizer que, para cada "possível" fórmula máxima φ de π, existe um passo da pior seqüência para π que realiza a redução de φ. Apresentaremos agora duas definições necessárias à definição da pior seqüência. 1.5.1 DEFIN IÇÃO: F(π) Seja π uma derivação em C'. Denotamos por F(π) a primeira ocorrência de fórmula máxima de π, de baixo para cima e mais à direita. 1.5.2 DEFIN IÇÃO: Fórmula Máxima Principal FP(π) A fórmula máxima principal de π, representada por FP(π), é definida por indução no número de ocorrências de fórmulas máximas em π, da seguinte maneira: (1) Base: A única fórmula máxima de π é FP(π); 28 (2) Se π é da forma π ≡ π π π 1 2 3 A B A B B ⊃ , tal que (i) A⊃B é F(π); e (ii) A regra (⊃I) mostrada não corta top-fórmula de π então: ♦ FP(π)= A⊃B , se π1 for normal; FP(π1) , se π1 não for normal . (3) Se π é da forma π ≡ π π π 1 2 3 A A B A B B k k [ ] ⊃ , onde (i) A⊃B é F(π); e (ii) A é cortada pela regra (⊃I) mostrada, então ♦ FP(π)= A⊃B; (4) Se π é da forma π ≡ π π π 1 1 2 2 1 2 3 A A A A Ai ∧ (1 ≤ i ≤ 2), onde A1∧A2 é F(π), então, para (1 ≤ j ≤ 2 e j ≠ i) temos que: ♦ FP(π)= A1∧A2 , se πj for normal; FP(πj) , se πj não for normal . 29 (5) Se π é da forma π ≡ π π 1 2 A A A ( ( ( a x x t ) ) ) ∀ , onde ∀xA(x) é F(π), então: ♦ FP(π)= ∀xA(x). 1.5.2.1 OBSERVAÇÃO: É imediato, pela definição acima, que para cada derivação não normal π existe uma e apenas uma ocorrência de fórmula φ tal que φ= FP(π). Ou seja, FP(π) existe e é única para toda derivação não normal π. 1.5.3 DEFIN IÇÃO: Pior Seqüência de Redução A pior seqüência de redução para uma derivação π em C' é uma seqüência de derivações denotadas por π°0, π°1, π°2,... , tal que: (1) π°0 é π; (2) Cada π°i+1 é obtido de π°i pela redução de FP(π°i); (3) A última derivação da seqüência, quando existe, é normal. 1.5.3.1 OBSERVAÇÕES: (a) A notação π →p π' indica que π' ≡ π°1. (b) A notação π →p π' indica que existe 1 ≤ i< ω tal que π' ≡ π°i. Neste caso, dizemos que π se reduz da pior forma a π'. A notação π →p R π' indica que π ≡ π' ou π → p π'. (c) Note que se π é normal, então π ≡ π°0 é a única derivação da pior seqüência de redução para π. (d) Também utilizaremos a notação π° para π°1. (e) Denotaremos o comprimento da pior seqüência de redução para π por lp(π). (f) Como, pela Observação 1.5.2.1, para cada derivação não normal π, FP(π) é único, então, por isso e por (c), para cada derivação π, a pior seqüência de redução é única. 30 (g) É imediato, pela unicidade da pior seqüência que: (π°n)°m ≡ π°n+m. Ou seja, o (m+ 1)-ésimo termo da pior seqüência para π°n é exatamente o (n+ m+ 1)-ésimo termo da pior seqüência para π. (h) Denotaremos por πP a última derivação da pior seqüência de redução para π, quando esta for finita. (i) Para quaisquer m,n< lp(π)< ω é claro que (π°m)P ≡ (π°n)P ≡ πP, pois a pior seqüência é única e π°m e π°n pertencem à pior seqüência para π. (j) Também pela unicidade da pior seqüência de redução temos: π ≡ Σ ⇒ πP ≡ ΣP. 1.5.4 TEOREMA: Admita que lp(π)< ω para toda derivação π. Se π se reduz imediatamente a π' (π → π'), então lp(π')< lp(π) e existe uma derivação π# tal que π →p R π# e π' → p R π#. PROVA: Ver Massi[1990], pp. 90 a 105. ♦ 1.5.5 OBSERVAÇÃO: O teorema anterior estabelece que, na hipótese do comprimento para a pior seqüência de redução, lp(π), ser finito, temos lp(π')< lp(π) para toda derivação π' redução imediata de π. Isso significa que, se provarmos que lp(π) é finito para toda derivação π, então lp(π), ou qualquer outra atribuição que seja igual a lp(π) para toda derivação π, representa um ordinal natural para derivações em C'. Além disso, o teorema anterior estabelece outro fato bastante importante. Se admitirmos lp(π)< ω para toda derivação π, a unicidade da forma normal é um corolário imediato de sua segunda parte. Dessa forma, provar a finitude de lp(π) para toda derivação π implica não apenas que o Teorema de Normalização Forte é corolário do Teorema 1.5.4, mas também que o Teorema Church-Rosser, da unicidade da forma normal, é corolário do Teorema 1.5.4. Voltaremos a estas considerações no Capítulo III desta tese, depois de termos demonstrado a finitude da pior seqüência de redução para toda derivação π. 31 Capítulo II Finitude e Unicidade da Atribuição Numérica o(π) Neste capítulo introduziremos a atribuição numérica o(π) que associa univocamente cada derivação π de C' a um número natural (finito) que possui a propriedade de diminuir com as reduções. Esta atribuição representa o nosso ordinal natural do sistema C', que será o índice de indução para uma prova trivial do Teorema de Normalização Forte. Como introduziremos neste capítulo muitas propriedades puramente estruturais das derivações de C', em muitas ocasiões utilizaremos exemplos e comentários informais como ilustração. A atribuição o(π) pode ser entendida como uma contagem exata de todas as "possíveis" fórmulas máximas de uma derivação. Isso significa somar todas as fórmulas máximas atuais a todas as fórmulas máximas que podem surgir em qualquer seqüência de redução para a derivação. Se nossa atribuição o(π) representa de fato este número, então é esperado que ela diminua com as reduções, pois se π → π', ainda que esta redução tenha criado em π' muitas novas fórmulas máximas que não ocorriam em π, com certeza a fórmula máxima reduzida não existe em π' e, então, o número de todas as possíveis fórmulas máximas de π, o(π), é no mínimo uma unidade maior que o(π'). Dessa forma, a nossa definição de o(π) tem que ser pautada por dois compromissos fundamentais: (a) representar de fato uma contagem de todas as possíveis fórmulas máximas para uma derivação π e, portanto, diminuir com as reduções; (b) ser produzida de uma maneira tal que seja possível provar sua finitude. Podemos dizer que o comprimento da pior seqüência de redução de Massi, lp(π), cumpre satisfatoriamente, por si só, apenas o primeiro compromisso, mas não o segundo. A definição de o(π) que proporemos aqui, por sua vez, cumpre de fato os dois objetivos. Além disso, como provaremos que o(π)= lp(π) para toda derivação π, a nossa definição de o(π) pode ser interpretada como uma maneira alternativa de contarmos o número de todas as possíveis fórmulas máximas de uma derivação π. Maneira esta que nos propiciou a prova de sua finitude. Neste capítulo apenas definiremos formalmente a atribuição o(π) e provaremos sua finitude e unicidade para toda derivação π. A prova de que o(π) diminui com as reduções e a prova do Teorema de Normalização Forte e dos outros resultados que obtemos como conseqüência deste desenvolvimento, apresentaremos no capítulo seguinte. 35 O capítulo está dividido em 4 seções principais. Na primeira delas, apresentamos a noção de segmento-α, que é uma das mais importantes propriedades estruturais do nosso desenvolvimento, sobre a qual está alicerçado boa parte do nosso método. Vários outros conceitos relacionados com este também são definidos. Além disso, introduzimos algumas propriedades e os primeiros resultados envolvendo as noções apresentadas. Ainda na primeira seção, no Comentário 2.1.16, fazemos uma breve exposição informal do método de obtenção de o(π), com o intuito apenas de esclarecer e situar o leitor. Na segunda seção, outra noção importante é apresentada: a noção de subárvore. Vários resultados envolvendo esta noção e os conceitos anteriormente apresentados serão aqui desenvolvidos. Na terceira seção, introduzimos as noções de multiplicação estrela e seqüência estrela, e provamos a finitude e unicidade da seqüência estrela de toda derivação π. Na quarta e última seção, com todo o aparato até aqui desenvolvido, conseguimos finalmente definir formalmente a atribuição numérica o(π) e em seguida demonstramos sua finitude e unicidade para toda derivação π. §1 Segmento-α A definição de segmento-α é ponto de partida e chave para a definição de o(π). É através dela que teremos condições de identificar e computar as possíveis novas fórmulas máximas que poderão surgir a partir da redução das atuais. Ela pode ser entendida, intuitivamente, como uma maneira de identificar certas ocorrências de fórmulas que "gravitam" em torno das fórmulas máximas de uma derivação, e que representam as ocorrências que têm possibilidade de se tornarem fórmulas máximas, caso as fórmulas máximas sobre as quais elas gravitam sejam reduzidas. Faremos agora uma série de definições técnicas necessárias à definição de segmento-α. 36 2.1.1 DEFIN IÇÃO: Premissa Esquerda e Direita Eπ(φ) e Dπ(φ) Considere a seguinte derivação: π ≡ 3 21 C BA π ππ , lembrando que C BA é uma aplicação de regra de inferência em π. Dizemos que A, a premissa esquerda da aplicação da regra, é a premissa esquerda de C em π, e denotamos por: A= Eπ(C). Analogamente, B é a premissa direita de C em π, denotada por: B= Dπ(C). Se π é do tipo: π ≡ 3 1 B A π π , dizemos que A, a única premissa de B, é a premissa direita de B em π (A= Dπ(B)), e que Eπ(B) não está definida. 2.1.1.1 OBSERVAÇÕES: (a) Se A é premissa de B em π, dizemos que A ocorre imediatamente acima de B em π e que B ocorre imediatamente abaixo de A em π. (b) Dizemos que φ ocorre à esquerda de ψ em π se π é da forma π ≡ 3 21 C BA π ππ , onde φ ocorre em π1 e ψ ocorre em π2. Se φ= A= r(π1) e ψ= B= r(π2), então dizemos que φ ocorre imediatamente à esquerda de ψ em π. 2.1.2 DEFIN IÇÃO: Ramo Uma seqüência A1, ... , An de ocorrências de fórmulas em uma derivação π é um ramo se estiverem satisfeitas as seguintes condições: (1) A1 é top-fórmula; (2) Ai é premissa de Ai+1, para cada (i< n); (3) An é r(π). 37 2.1.2.1 OBSERVAÇÕES: (a) Cada ramo de π é a seqüência das ocorrências que se inicia em uma top-fórmula e vai descendo, através das aplicações de regras, até chegar à raiz. (b) Dizemos que φ ocorre acima de ψ em π, se φ e ψ são ocorrências de fórmula em π e existe um ramo (A1, ..., An) em π tal que φ é Ai , ψ é Aj e i< j. 2.1.3 DEFIN IÇÃO: Segmento Um segmento, em uma derivação π, é uma seqüência A1 , A2 , ... , An de ocorrências consecutivas de fórmulas em um ramo de π. 2.1.3.1 OBSERVAÇÕES: (a) Denotaremos segmentos pelas letras ρ e μ, com ou sem índices. (b) Quando dissermos: "seja ρ um segmento ..." e não especificarmos nada sobre a derivação em que ρ está definido, já estará tacitamente subentendido que estamos nos referindo a um segmento ρ de uma derivação qualquer π. 2.1.4 DEFIN IÇÃO: Comprimento de um Segmento Definimos o comprimento ou tamanho de um segmento ρ, denotado por l(ρ), como o número natural que representa o número de ocorrências de fórmulas do segmento ρ. Se ρ = A1 , ... , An, então l(ρ)= n. 2.1.5 DEFIN IÇÃO: Ponte entre Segmentos Uma ocorrência de fórmula φ de uma derivação π é uma ponte entre os segmentos ρ1= A1, ..., An e ρ2= B1, ..., Bm, quando um dos dois itens abaixo ocorre: (1) Ou φ é premissa de B1 e conseqüência de An; (2) Ou φ é premissa de A1 e conseqüência de Bm. 2.1.5.1 OBSERVAÇÕES: (a) Uma ponte é a única ocorrência entre dois segmentos. (b) Dizemos que ρ1 e ρ2 são segmentos ligados quando existe uma ponte entre eles. 38 2.1.6 DEFIN IÇÃO: Cadeia-φ de Segmentos Dizemos que X= ρ1, φ1, ρ2, φ2, ..., ρm-1, φm-1, ρm é uma cadeia-φ de segmentos de uma derivação π se: (1) Para todo i, 1 ≤ i ≤ m, ρi= Ai1, ..., Aini é um segmento de π, o qual chamaremos de subsegmento de X; (2) Para todo i, 1 ≤ i < m, φi é ponte entre ρi e ρi+1; (3) A menos de parâmetros, cada φi (1 ≤ i < m) é ocorrência da mesma fórmula φ (daí o nome cadeia-φ). 2.1.6.1 OBSERVAÇÕES: (a) É imediato pelas definições de segmento e ponte de segmentos que X, uma cadeiaφ, é por sua vez um segmento. (b) Algumas vezes denotaremos X por: X= φ;ρ1, ..., ρm , onde φ é a fórmula das pontes de X e ρ1, ..., ρm são os subsegmentos de X. 2.1.7 DEFIN IÇÃO: Centro e Ocorrência Central Dizemos que o centro de ρ= A1, ..., An , denotado por c(ρ), é o número racional dado por: c(ρ)= (n+ 1)/ 2. Se c(ρ) é inteiro, então Ac(ρ) é chamada de ocorrência central de ρ. 2.1.7.1 EXEMPLO: ρ1= A1, A2, A3, A4, A5, A6 ρ2= B1, B2, B3, B4, B5 c(ρ)= 3,5 c(ρ)= 3 B3 é ocorrência central. 2.1.7.2 OBSERVAÇÕES: (a) Podemos entender c(ρ) como um número que divide ρ ao meio, de tal forma que o número de ocorrências com índices menores ou iguais que c(ρ) é igual ao número de ocorrências com índices maiores ou iguais que c(ρ) em ρ. (b) Se ρ tem comprimento par (n é par), c(ρ) não é inteiro, portanto, ρ não possui uma ocorrência central. 39 (c) Dizemos que uma ocorrência Ai de ρ= A1, ..., An está na primeira metade de ρ se i ≤ c(ρ). Se i ≥ c(ρ), então Ai está na segunda metade de ρ. Note que a ocorrência central de um segmento ρ está nas duas metades de ρ. (d) Quando dissermos: "Seja ρ um segmento de ocorrência central Ai", já estará tacitamente subentendido que ρ tem comprimento ímpar. 2.1.8 DEFIN IÇÃO: Ocorrência Simétrica Seja ρ= A1, ..., Am um segmento. Dizemos que as ocorrências Ar e As são ocorrências simétricas em ρ quando elas eqüidistam do centro de ρ. Ou seja, quando: |s c(ρ)| = |r c(ρ)|. 2.1.8.1 EXEMPLO: São simétricas as ocorrências "unidas" dos segmentos abaixo: ρ1= A1, A2, A3, A4, A5, A6 ρ2= B1, B2, B3, B4, B5 2.1.8.2 OBSERVAÇÕES: (a) Toda ocorrência de qualquer segmento ρ possui uma ocorrência simétrica. (b) A única ocorrência que é simétrica a si mesma é a ocorrência central de um segmento. (c) Diremos que as ocorrências simétricas de um segmento formam pares, e que a ocorrência central faz par consigo mesma. Chamaremos cada par de ocorrências simétricas de um segmento de par simétrico. (d) Sejam Ar e As ocorrências simétricas de ρ= A1, ..., An. É fácil ver que: r = n−s+1 e s = n−r+ 1. 2.1.9 DEFIN IÇÃO: Segmento-α de N ível 1 Seja ρ= A1, ..., An um segmento em uma derivação π de ocorrência central Ai. Dizemos que ρ é um segmento-α de nível 1 em π se, para todo j tal que 1 ≤ j ≤ i= c(ρ), Aj (ocorrência da primeira metade de ρ) e An-j+1 (ocorrência da segunda metade de ρ simétrica 40 a Aj), a menos de parâmetros, são ocorrências da mesma fórmula, onde Aj é conseqüência de regra de introdução e An-j+1 é premissa maior de regra de eliminação. 2.1.9.1 EXEMPLO: Considere π a seguinte derivação: A B A∧B C (A∧B)∧C D ρ ((A∧B)∧C)∧D → FM (A∧B)∧C A∧B A O segmento ρ= A∧B, (A∧B)∧C, ((A∧B)∧C)∧D, (A∧B)∧C, A∧B é segmento-α de nível 1 em π, pois as ocorrências de cada par simétrico de ρ são ocorrências da mesma fórmula, sendo que suas ocorrências da primeira metade são todas conseqüências de regra de introdução e suas ocorrências da segunda metade são todas premissas maiores de regra de eliminação. 2.1.9.2 OBSERVAÇÕES: (a) É imediato pela definição que se ρ é um segmento-α de nível 1 em π, a ocorrência central de ρ é a única fórmula máxima de π em ρ. Veja que, no exemplo, ((A∧B)∧C)∧D é fórmula máxima. (b) Dizemos que um segmento-α de nível 1 é determinado pela ocorrência de fórmula máxima que ele contém (sua ocorrência central). (c) Também é imediato pela definição acima que toda ocorrência de fórmula máxima determina um segmento-α de nível 1, que tem pelo menos a própria FM como elemento. (d) Denotamos o maior segmento-α (maior comprimento) de nível 1 em π, determinado pela FM φ, por: απ(φ). (e) Dizemos que cada par simétrico de um segmento-α de nível 1 é um par-α de nível 1. 41 2.1.9.3 COMENTÁRIOS: Vamos retomar a derivação π do Exemplo 2.1.9.1 acima, e aplicar a Redução 1.4.1 à sua única fórmula máxima. Temos: A B A∧B C A B (A∧B)∧C D A∧B C π ≡ ((A∧B)∧C)∧D (FM) → π' ≡ (A∧B)∧C (FM) (A∧B)∧C A∧B A∧B A A A redução aplicada a π fez o par-α (par de ocorrências simétricas) mais próximo do centro de ρ se "colapsar" em uma única ocorrência de (A∧B)∧C em π'. Esta ocorrência é, por sua vez, fórmula máxima em π', pois é conseqüência de introdução e PM de eliminação. Se agora reduzirmos a fórmula máxima de π', temos uma situação semelhante, onde duas ocorrências de A∧B de π' se colapsam em uma única ocorrência de π'', que é fórmula máxima. Vejamos: A B A∧B C A B π' ≡ (A∧B)∧C (FM) → π'' ≡ A∧B (FM) A∧B A A A definição de segmento-α de nível 1 foi introduzida justamente para dar este tipo de informação. Se ρ= B, C, D, C, B for um segmento-α de nível 1 em uma derivação π, então D, a ocorrência central de ρ, é FM em π. Sua redução produz uma derivação π' na qual as duas ocorrências de C se colapsam em uma única, que é FM em π'. A redução de C em π', por sua vez, produz uma derivação π'' na qual B é FM . 42 Se ρ é απ(D) (o mais comprido segmento-α determinado por D em π), então sabemos também que a redução de B em π'' não produz uma fórmula máxima na ocorrência colapsada em π''', caso contrário haveria mais um par simétrico em ρ. A definição de segmento-α de nível 1, no entanto, não consegue identificar todas as fórmulas máximas que podem surgir do colapso das ocorrências que gravitam em torno das fórmulas máximas de uma derivação. Para conseguir identificar todas essas, precisamos tornar esta definição mais poderosa, e, para isso, introduziremos o conceito de segmento-α de nível n, com n> 1. Este novo conceito é introduzido por uma definição indutiva, da qual a definição de segmento-α de nível 1 é a base. 2.1.10 DEFIN IÇÃO: Segmento-α de N ível n (n> 1) Dizemos que ρ= A1, ..., Am é um segmento-α de nível n (n> 1) em uma derivação π, se existe i< m/ 2 tal que as seguintes condições são satisfeitas: (1) Para todo j, 1 ≤ j ≤ i, Aj (ocorrência da primeira metade de ρ) e Am-j+1 (ocorrência da segunda metade de ρ simétrica a Aj), a menos de parâmetros, são ocorrências da mesma fórmula, onde Aj é conseqüência de regra de introdução e Am-j+1 é premissa maior de regra de eliminação; (2) Ai+1 (ocorrência da primeira metade de ρ) e Am-i (ocorrência da segunda metade simétrica a Ai+1) representam a primeira e a última ocorrências de X, uma cadeia-φ de segmentos em π que satisfaz duas propriedades: (2.1) Todos os subsegmentos de X são segmentos-α de nível menor que n, e (2.2) Pelo menos um subsegmento de X é um segmento-α de nível n-1; (3) A menos de parâmetros, Ai e Am-i+1 são ocorrências da fórmula φ, ponte entre os segmentos da cadeia X. 2.1.10.1 EXEMPLO: Considere π a seguinte derivação: 43 A B.1 A∧B C.2 (A∧B)∧C D.3 ((A∧B)∧C)∧D.4 → FM (A∧B)∧C.5 A∧B .6 → ponte C⊃(A∧B).7 D D⊃(C⊃(A∧B)).8 → FM C C⊃(A∧B).9 A∧B.10 A Os números nas regras são apenas para distinção de referência entre as ocorrências de fórmula. Analisando a derivação π podemos encontrar duas fórmulas máximas e dois segmentos-α de nível 1 determinados por elas: ρ1= ((A∧B)∧C)3, (((A∧B)∧C)∧D)4, ((A∧B)∧C)5 e ρ2= (C⊃(A∧B))7, D⊃(C⊃(A∧B)))8, (C⊃(A∧B))9. Note que ρ1 e ρ2 são segmentos ligados, e (A∧B)6 é ponte entre ρ1 e ρ2. Portanto, podemos considerar a seguinte cadeia-φ em π: X= ρ1, φ, ρ2 onde φ= (A∧B)6. Note que as ocorrências imediatamente acima e imediatamente abaixo de X são ocorrências da mesma fórmula (A∧B), que é a fórmula da ponte de X, sendo a primeira conseqüência de regra de introdução e a segunda PM de regra de eliminação. Dessa forma, temos caracterizado o seguinte segmento-α de nível 2 em π: ρ= (A∧B)2, X, (A∧B)10. ρ é segmento-α de nível 2 em π, pois o par de ocorrências simétricas externas a X em ρ é composto por ocorrências da mesma fórmula, sendo a primeira conseqüência de introdução e a segunda PM de eliminação (ρ satisfaz 2.1.10-(1)); além disso, X é uma cadeiaφ onde seus dois subsegmentos são segmentos-α de nível 1 (ρ satisfaz 2.1.10-(2)); e as ocorrências imediatamente anterior a X, imediatamente posterior a X e a ponte de X, são todas ocorrências da mesma fórmula (ρ satisfaz 2.1.10-(3)). O quadro completo é: 44 ρ= (A∧B)2, ((A∧B)∧C)3, (((A∧B)∧C)∧D)4, ((A∧B)∧C)5, (A∧B)6, (C⊃(A∧B))7, (D⊃(C⊃(A∧B)))8, (C⊃(A∧B))9, (A∧B)10. X=((A∧B)∧C)3, (((A∧B)∧C)∧D)4, ((A∧B)∧C)5, (A∧B)6, (C⊃(A∧B))7, D⊃(C⊃(A∧B)))8, (C⊃(A∧B))9. φ= A∧B. ρ1= ((A∧B)∧C)3, (((A∧B)∧C)∧D)4, ((A∧B)∧C)5. ρ2= (C⊃(A∧B))7, D⊃(C⊃(A∧B)))8, (C⊃(A∧B))9. 2.1.10.2 OBSERVAÇÕES: (a) Dizemos que um segmento-α de nível n (n> 1) é determinado pela cadeia-φ de segmentos que ele contém. (b) Quando dissermos que ρ é um segmento-α, sem especificar seu nível, estará tacitamente subentendido que ρ é um segmento que satisfaz ou 2.1.9, ou 2.1.10. (c) Denotaremos o nível de um segmento-α ρ por n(ρ). (d) Dizemos que cada par simétrico de ρ, um segmento-α de nível n, que ocorre fora da cadeia X que determina ρ, é um par-α de nível n. Ou seja, os pares-α de nível n são os pares que satisfazem o item 1 da Definição 2.1.10. (e) É fácil ver que se φ∈ρ é ponte da cadeia X que determina ρ, então φ é conseqüência de regra de eliminação e premissa de regra de introdução. 2.1.10.3 COMENTÁRIOS: Vamos retornar à derivação π do Exemplo 2.1.10.1. Temos em π duas fórmulas máximas que determinam dois segmentos-α de nível 1, cada um deles com uma ocorrência central e um par simétrico (par-α) em torno desta. Se reduzirmos estas duas fórmulas máximas, obtemos a seguinte derivação π': 45 A B.1 A∧B C.2 (A∧B)∧C.5 → FM A∧B .6 C C⊃(A∧B).9 → FM A∧B.10 A Note que π' tem duas fórmulas máximas, ambas previstas nos segmentos-α de nível 1 de π. Além disso, os dois segmentos-α de nível 1, determinados pelas duas fórmulas máximas de π', só possuem as próprias FMs como elementos, pois a ocorrência imediatamente abaixo de (A∧B)∧C não é premissa maior de regra de eliminação, e a ocorrência imediatamente acima de C⊃(A∧B) não é conseqüência de regra de introdução. No entanto, se reduzirmos as duas FMs de π', obtemos a seguinte derivação π'': A B.1 π'' ≡ A∧B.10 → FM A , onde A∧B é FM em π''. Note que A∧B é uma fórmula máxima de uma derivação à qual π se reduziu (através de 4 reduções), e nenhum segmento-α de nível 1 em π foi capaz de indicar que as ocorrências (A∧B)2 e (A∧B)10 iriam se "colapsar" em uma fórmula máxima. Isso ocorreu porque em π temos dois segmentos-α de nível 1 separados por apenas uma ocorrência. Quando reduzimos completamente os dois segmentos-α, tivemos o "colapso" de três ocorrências em uma única, que se tornou fórmula máxima: a ocorrência imediatamente acima do primeiro segmento, a ocorrência entre os dois segmentos e a ocorrência imediatamente abaixo do segundo segmento. O que este exemplo ilustra é que não apenas fórmulas máximas podem determinar pares de ocorrências que as reduções podem fazer colapsar em novas fórmulas máximas (pares-α). Seqüências de segmentos separados por ocorrências da mesma fórmula 17 (cadeias46 17 Mesma a menos de parâmetros. φ) também podem. É exatamente este tipo de situação que os segmentos-α de maior nível permitem descrever. Podemos representar esquematicamente um segmento-α de nível 1 através de um hexágono, da seguinte maneira: O centro, mais largo, representa a fórmula máxima que o determina. Como cada ocorrência da primeira metade é conseqüência de regra de introdução, o "comprimento" 18 das fórmulas vai sempre aumentando na primeira metade, até chegar à fórmula máxima no centro. Como as ocorrências da segunda metade são todas PM de regras de eliminação e ocorrências das mesmas fórmulas que as ocorrências da primeira metade, o "comprimento" das fórmulas na segunda metade vai diminuindo na mesma medida em que aumentou na primeira. Expandindo este tipo de representação para segmentos-α de nível 2 temos, por exemplo: ρ1 X φ ρ2 47 18 Esta noção será introduzida formalmente mais adiante. Cada hexágono mais escuro do centro representa um segmento-α de nível 1 que é subsegmento de X, a cadeia que determina o segmento. A lacuna entre os hexágonos representa ocorrência da ponte de X, e os dois trapézios das pontas, mais claros, representam as duas seqüências de ocorrências simétricas que ocorrem fora de X. A de cima formada por ocorrências conseqüências de introdução, e a de baixo por premissas maiores de eliminação. Cada par-α de nível 2 tem uma ocorrência no trapézio de cima e outra no de baixo. De acordo com a Definição 2.1.10, um segmento-α de nível 3 é um segmento-α no qual pelo menos um dos subsegmentos da cadeia que o determina é segmento-α de nível 2. Esquematicamente, teríamos algo como: ρ1 ρ11 X1 φ1 X ρ12 φ ρ2 Com isso tudo acreditamos ter deixado clara a definição de segmento-α. Apresentaremos agora mais algumas definições e resultados básicos concernentes aos segmentos-α para, em seguida, de posse de todas essas ferramentas teóricas, fazermos uma 48 explicação preliminar de como obteremos a atribuição numérica o(π), e de porque temos afirmado que ela intuitivamente representa o número de todas as possíveis fórmulas máximas para uma derivação π. 2.1.11 DEFIN IÇÃO: Ocorrência Pesada (OPπ) e Ocorrência Candidata a Fórmula Máxima (CMπ) Dizemos que uma ocorrência de fórmula φ em uma derivação π é uma ocorrência pesada em π (OPπ) se φ for premissa maior de regra de eliminação e pertencer a algum segmento-α de π. Se φ for OPπ e não for FMπ, dizemos que φ é ocorrência candidata a fórmula máxima ou candidata a máxima em π (CMπ). 2.1.11.1 OBSERVAÇÃO: Como toda fórmula máxima determina um segmento-α (ver Observação 2.1.9.1-(c)) e é premissa maior de regra de eliminação, então toda fórmula máxima é ocorrência pesada. 2.1.12 LEMA: Para cada ocorrência pesada φ de uma derivação π temos uma e apenas uma ocorrência ψ em π que forma par-α com φ. PROVA: Existência: Seja ρ o mais comprido segmento-α de menor nível ao qual φ pertence. Se n(ρ)= 1, então o resultado é imediato pela Definição 2.1.9. Se n(ρ)> 1, temos: (i) φ não ocorre em nenhum subsegmento da cadeia X que determina ρ, pois senão ρ não seria o segmento-α de menor nível ao qual φ pertence; e (ii) φ não é ponte de X, pois φ é PM de eliminação, e toda ponte de X é premissa de introdução (ver 2.1.10.2-(e)). Logo, por (i) e (ii) temos que φ ocorre fora da cadeia X que determina ρ, e portanto o resultado é imediato por 2.1.10-(1). 49 U nicidade: A unicidade é garantida pela unicidade dos segmentos-α que é garantida pela unicidade das aplicações de regras. Não existem dois mais compridos segmentos-α de menor nível ao qual φ pertence. Isto pode ser provado com uma indução dupla, no nível dos segmentos-α e na "distância" entre φ e a fórmula máxima ou cadeia que determina ρ. ♦ 2.1.13 DEFIN IÇÃO: Ocorrência Associada à Ocorrência Pesada - assπ(φ) À ocorrência ψ, em uma derivação π, que faz par-α com a ocorrência pesada φ, chamamos ocorrência associada a φ em π e denotamos por: ψ= assπ(φ). 2.1.13.1 OBSERVAÇÕES: (a) Todos os pares-α de qualquer segmento-α são formados por uma ocorrência pesada e uma ocorrência associada a esta. Portanto, se ψ= assπ(φ), então φ e ψ, a menos de parâmetros, são ocorrências da mesma fórmula, onde ψ é conseqüência de regra de introdução e φ é premissa maior de eliminação. (b) Se φ é fórmula máxima em π, então φ= assπ(φ). Ou seja, φ é ocorrência associada a si mesma em π. (c) Se ψ= assπ(φ), onde φ é CMπ, então ψ ocorre acima de φ em π. (d) Os pares-α de uma derivação, com suas ocorrências pesada e associada, representam os pares de ocorrências que podem se colapsar em uma fórmula máxima quando realizamos reduções. (e) É fácil ver, pelas Definições 2.1.9 e 2.1.10, que se ψ= assπ(φ), então, no próprio segmento-α em que estão φ e ψ, existe pelo menos uma FM que ocorre entre φ e ψ, ou seja, acima de φ e abaixo de ψ. Seguem agora mais duas definições, que serão úteis nos esclarecimentos que virão a seguir. 2.1.14 DEFIN IÇÃO: Comprimento de uma Derivação l(π) O comprimento de uma derivação π, denotado por l(π), é um número natural que representa o número de ocorrências de fórmulas de π. Formalmente: 50 (1) Se π é uma fórmula, l(π)= 1; (2) Se π é A n1 ππ L , l(π)= l(π1)+ ...+ l(πn)+ 1. 2.1.15 DEFIN IÇÃO: Fórmula Máxima Multiplicativa Se φ é uma fórmula máxima em π e a redução que se aplica a φ é a ⊃-redução-1 (Definição 1.4.2), dizemos que φ é fórmula máxima multiplicativa em π. 2.1.15.1 EXEMPLO: π ≡ 3 k 2 k 1 B BA B ]A[ A π ⊃ π π → π' ≡ ⇒ A⊃B é FM multiplicativa de π. π π π 1 2 3 [A] B 2.1.16 COMEN TÁRIO: Esquema Geral do Método de Prova Se analisarmos as reduções descritas em 1.4 que se aplicam a C', veremos que, com exceção da Redução 1.4.2, todas as demais possuem as seguintes propriedades: (1) a redução imediata obtida a partir delas tem comprimento estritamente menor que a derivação original; (2) só alteram as ocorrências da derivação exatamente no local da FM eliminada. Se π for uma derivação na qual nenhuma redução de nenhuma das seqüências de redução para π é uma ⊃-redução-1 (do tipo 1.4.2), então, l(π) é um limitante para o comprimento de todas as seqüências de redução para π, pois a cada redução que fizermos, como nenhuma é do tipo 1.4.2, o comprimento da redução imediata sempre diminuirá. Chamemos a uma derivação com esta característica de derivação estrela 19 . Com a definição de segmento-α que apresentamos, temos uma maneira de saber se uma derivação qualquer π é estrela ou não, basta que para isso olhemos para todos os 19 Mais adiante apresentaremos a definição formal. 51 pares-α de π. Em cada par-α já temos antecipadamente a informação do tipo da fórmula máxima em que ele pode se tornar. Seja (ψ,φ) um par-α de π, onde φ é OPπ e ψ= assπ(φ) e considere as seguintes condições: (a) A regra de eliminação da qual φ é premissa maior é (⊃E); (b) A premissa menor da regra em que φ é premissa maior não é hipótese aberta em π; (c) A regra de introdução da qual ψ é conseqüência corta alguma top-fórmula de π. Chamamos de ocorrência multiplicativa uma OPπ φ que satisfaça essas três condições. Se isso ocorrer, então a fórmula máxima em que o par-α (ψ,φ) pode se tornar será do tipo que é reduzida por 1.4.2 (uma FM multiplicativa). Veja: π π π π 1 2 4 3 A A B A B A B B k k [ ] ⊃ ⊃ → 3 k 2 k 1 B BA B ]A[ A ) π ⊃ π π por 1.4.2 → 3 2 1 B [A] ) π π π Figura 2.1.16.1 Se nenhum dos pares-α de π satisfizer as condições (a) a (c) acima, então π é uma derivação estrela na qual nenhuma redução de nenhuma seqüência de redução é do tipo 1.4.2. Isto é verdade porque, neste caso, os pares-α de π representam todas as possíveis fórmulas máximas de π, já que as reduções distintas de 1.4.2 só podem produzir novas FMs nas imediações da FM reduzida, e são exatamente essas possíveis FM que os pares-α identificam. Temos então, através dos segmentos-α, uma maneira não só de saber se uma derivação é estrela, mas também de saber o número de todas as suas possíveis fórmulas máximas, caso ela o seja. Diante disso, a idéia da atribuição numérica o(π) foi a seguinte: vamos definir um processo para transformar uma derivação π qualquer em uma derivação estrela π*, na qual 52 poderemos identificar todas as possíveis fórmulas máximas de π através dos pares-α de π*. Este processo basicamente consiste em identificar os pares-α que podem se tornar fórmulas máximas multiplicativas (os que satisfazem as condições (a) a (c) acima), e fazer a seguinte operação: 3 4 k 2 k 1 B BA BA B ]A[ A π ⊃ π ⊃ π π →* A A B A B A B B π π π π 1 2 4 3 [ ] ⊃ ⊃ Figura 2.1.16.2 π1, que seria "multiplicado" na Redução 1.4.2 quando o par-α (A⊃B, A⊃B) se tornasse uma FM , já é multiplicado exatamente para o lugar em que ele seria na redução. Chamemos esta operação de multiplicação-*. 20 Fazendo isso, (A⊃B, A⊃B) continua sendo um par-α, só que agora um par-α que não satisfaz a condição (b), e a fórmula máxima na qual ele pode se tornar não mais é reduzida por 1.4.2, mas por 1.4.3. Veja: 3 4 k 2 k 1 B BA BA B ]A[ A π ⊃ π ⊃ π π →* A A B A B A B B π π π π 1 2 4 3 [ ] ⊃ ⊃ → 3 2 1 B BA B ]A[ A ) π ⊃ π π por 1.4.3 → 3 2 1 B [A] ) π π π Figura 2.1.16.3 53 20 Definiremos formalmente mais adiante. Note também que a derivação final, após a redução da fórmula máxima em que o par-α se tornou, é a mesma, quer tenhamos feito ou não a multiplicação-* no par-α (ver Figura 2.1.16.1). Com isso, queremos mostrar que a alteração provocada pela multiplicação-* é apenas a antecipação de um passo que a redução faria. Ela realiza uma parte do trabalho que a redução faria, sem no entanto eliminar a possibilidade do par-α se tornar uma FM . Os pares-α dos segmentos-α não conseguem identificar todas as possíveis fórmulas máximas de uma derivação não-estrela justamente porque a Redução 1.4.2 altera as ocorrências da derivação não apenas no local da fórmula máxima eliminada, mas também em todos os pontos onde π1 é "multiplicado". Quando realizamos uma multiplicação-*, estamos justamente provocando esta alteração na derivação, que pode proporcionar o surgimento de novas FMs e, conseqüentemente, de novos pares-α, sem no entanto eliminar nenhuma FM nem par-α da derivação original. Dessa forma, o trabalho para obtenção da atribuição numérica o(π) consiste em provar que, de uma maneira controlada, conseguimos, através de um número finito de multiplicações-*, transformar uma derivação qualquer π em uma derivação estrela correspondente π*, na qual podemos agora "contar" o número de todas as possíveis fórmulas máximas de π, apenas contando o número de todos os pares-α de π*. Com isso, fazemos o(π) ser o número de pares-α de π*. Se provarmos que a cada derivação π temos uma e apenas uma derivação π* associada, a qual obtemos através de um número finito de multiplicações-*, temos que o número de pares-α de π* (o(π)) representa uma atribuição numérica única e finita para cada derivação π que, pelo que discutimos acima, deve representar o número de todas as possíveis fórmulas máximas de π. Podemos então dividir o trabalho restante para a obtenção do ordinal natural da seguinte forma: (a) Formalizar esta definição de o(π) provando que é uma atribuição unívoca e finita para toda derivação π. (b) Provar que o(π) diminui com as reduções (π → π' ⇒ o(π')< o(π)) e, portanto, é um ordinal natural para C'. 54 (c) Provar que o(π) é igual ao comprimento da pior seqüência de redução para toda derivação π (o(π)= lp(π)) e, portanto, que é o menor ordinal natural para C'. (d) Provar o Teorema de Normalização Forte para C'. O Item (a) é desenvolvido neste capítulo, enquanto que os Itens (b), (c) e (d) realizaremos no capítulo seguinte. Diante do discutido acima podemos sintetizar o processo de obtenção de o(π) da seguinte maneira: dada uma derivação π obteremos uma seqüência finita de multiplicações-*, π ≡ π•0 →* π•1 →* π•2 →* ... →* π•n ≡ π*, onde π* é uma derivação estrela (que não possui ocorrências multiplicativas). o(π) é então definido como o número de ocorrências pesadas de π*, que pelo que discutimos deve representar o número de todas as possíveis fórmulas máximas para π. A prova de que o(π) assim definido é único e finito para cada derivação π é obtida através de uma adaptação do método de Prawitz para a demonstração do Teorema de Normalização Fraca para C' 21 , que consiste em propor um critério de escolha para a ocorrência multiplicativa que deve ser multiplicada a cada passo da seqüência de multiplicações-*. O critério que adotamos é o seguinte: (a) Chamamos de T (π) a ocorrência multiplicativa de π de maior comprimento (maior número de conectivos) cuja ocorrência associada ocorra mais acima e à direita em π. (b) Cada π•i (1 < ι ≤ n) da seqüência estrela é obtido pela multiplicação-* de T (π•i-1). Chamemos de g(π) o comprimento máximo das OMπ e de ng(π) a quantidade de OMπ com comprimento máximo (igual a g(π)). Através do critério de escolha de T (π) provamos que se π•i →* π•i+1 pela multiplicação-* de T (π), então o par (g(π•i), ng(π•i)) é maior que o par (g(π•i+1), ng(π•i+1)). 22 Dessa forma, uma indução dupla em (g(π), ng(π)) 21 Cf. Prawitz[1965], p. 40. 22 Estamos considerando que (a1, b1)> (a2, b2) se a1> a2, ou se a1= a2 e b1> b2. 55 prova a finitude desta seqüência de multiplicações-*, que termina em uma derivação estrela π*. Mas se π* foi obtido de π através de um número finito de operações finitárias (as multiplicações-*), então π* tem comprimento finito, e portanto um número finito de ocorrências pesadas. Como o(π) é definido como o número de ocorrências pesadas de π*, temos garantida a finitude da atribuição o(π). Como a cada derivação π só podemos ter um T (π) relacionado, a seqüência de multiplicações estrela que levou a π* é única para cada derivação π. Assim, a cada derivação π temos um único π* associado e, portanto, um único o(π). Esperamos, com todas essas considerações, que só pudemos fazer após termos introduzido as noções mais fundamentais, apenas ter esclarecido o leitor sobre o caminho que adotamos para a obtenção deste resultado. Seguimos agora com a exposição formal deste argumento. 2.1.17 DEFIN IÇÃO: Grau de uma fórmula gr(φ) O grau de uma fórmula φ, denotado por gr(φ), é um número natural definido indutivamente da seguinte maneira: (1) Se φ é fórmula atômica, então gr(φ)= 0; (2) Se φ é (A⊃B) ou (A∧B), então gr(φ)= gr(A)+ gr(B)+ 1; (3) Se φ é (∀xAx), então, gr(φ)= gr(A)+ 1. Ou seja, o grau de uma fórmula φ é o número de ocorrências de conectivos em φ (o comprimento de φ). Antes de terminarmos esta seção demonstraremos dois teoremas diretamente relacionados com a definição de segmento-α, que relacionam o comprimento de ocorrências de segmentos-α com suas posições nestes segmentos. Estas relações podem facilmente ser percebidas, geometricamente, na representação esquemática que sugerimos para os segmentos-α em 2.1.10.3. Estes teoremas serão úteis para a demonstração de que todas as novas ocorrências pesadas que podem surgir da multiplicação de T(π) têm grau (comprimento) estritamente menor que o comprimento da ocorrência multiplicada (T(π)). 56 2.1.18 TEOREMA: Se ρ= A1, ..., Am é um segmento-α de nível 1, então toda ocorrência φ em ρ é tal que: gr(φ) ≥ gr(A1). PROVA: Imediata pela Definição 2.1.9. ♦ 23 2.1.19 TEOREMA: Sejam ρ= A1, ..., Am um segmento-α de nível maior que 1 e X= φ;ρ1, ..., ρn a cadeia que determina ρ. Temos que: (1) Toda ocorrência ψ de ρ que não está em X é tal que: gr(A1) ≤ gr(ψ) ≤ gr(φ); (2) Toda ocorrência ψi de cada ρi (1 ≤ i ≤ n) é tal que gr(ψi)> gr(φ); e (3) Toda ocorrência ψ de X é tal que gr(ψ) ≥ gr(φ). PROVA: Item (1) Imediata pela Definição 2.1.10.   24 Item (2) Provaremos por indução em n(ρ). BASE: n(ρ)= 2 (por hipótese do teorema n(ρ)> 1). ρ então é do tipo: ρ= A1, ..., Ai, X, Am-i+1, ..., Am, onde X é a cadeia de segmentos que determina ρ. Podemos escrever cada ρi (1 ≤ i ≤ n) de X como: ρi= Bi1, ..., Bin. (i) Como n(ρ)= 2, então, pela Definição 2.1.10-(2), para todo i, 1 ≤ i ≤ n, n(ρi)= 1. Pela Definição 2.1.10-(3), sabemos que Ai e Am-i+1 são ambas ocorrências de φ. (ii) Portanto, cada ρi de X tem como ocorrência imediatamente acima e imediatamente abaixo uma ocorrência de φ. 23 Ver representação esquemática dos segmentos-α de nível 1 nos Comentários 2.1.10.3. 24 Ver representação esquemática dos segmentos-α de nível maior que 1 nos Comentários 2.1.10.3. 57 (iii) Por (i) e pelo Teorema 2.1.18, temos que toda ocorrência ψi, de cada ρi, é tal que gr(ψi) ≥ gr(Bi1) para todo i (1 ≤ i ≤ n). (iv) Por (ii) e pela Definição 2.1.9, temos que Bi1 é conseqüência de regra de introdução na qual uma ocorrência de φ é premissa. Logo, gr(Bi1)> gr(φ), para todo i (1 ≤ i ≤ n). Portanto, por (iii) e (iv), temos que toda ocorrência ψi de cada ρi é tal que gr(ψi)> gr(φ). PASSO: HI: Seja μ um segmento-α e Xμ= φμ; μ1, ..., μs a cadeia que determina μ. Se n(μ)< n(ρ), então toda ocorrência ξμ de cada μi (1 ≤ i ≤ s) é tal que gr(ξμ)> gr(φμ). Como no caso da base temos: ρ é do tipo: ρ= A1, ..., Ai, X, Am-i+1, ..., Am , onde X é a cadeia de segmentos que determina ρ. Podemos escrever cada ρi (1 ≤ i ≤ n) de X, onde n(ρi)> 1, como: ρi= Bi1, ..., Bir, Xi, Bin-ir+1, ..., Bin. Para todo i, 1 ≤ i ≤ n, considere: (a) ψi uma ocorrência de algum ρi, tal que n(ρi)> 1, que ocorre fora da cadeia Xi. (b) ξi uma ocorrência de algum ρi, tal que n(ρi)> 1, que ocorre na cadeia Xi. (c) ζi uma ocorrência qualquer de algum ρi, tal que n(ρi)> 1. (d) ζ'i uma ocorrência qualquer de algum ρi, tal que n(ρi)= 1. (e) ζ''i uma ocorrência qualquer de algum ρi. (f) φi a fórmula das pontes da cadeia de Xi. Para provar o Item (2), temos então que provar que gr(ζ''i)> gr(φ). Pela Definição 2.1.10-(2), n(ρi)< n(ρ) para todo i, 1 ≤ i ≤ n. (v) Portanto, para cada ρi, tal que n(ρi)> 1, vale a hipótese indutiva. (vi) Por (v) temos que gr(ξi)> gr(φi). (vii) Pelo Item (1), temos que gr(ψi) ≥ gr(Bi1). (viii) Mas, para todo i, 1 ≤ i ≤ n, Bi1 é conseqüência de introdução da qual uma ocorrência de φ é premissa. Portanto, gr(Bi1)> gr(φ). (ix) Logo, por (vii) e (viii) temos que gr(ψi)> gr(φ). 58 (x) Pelo Item (1) temos também que gr(ψi) ≤ gr(φi). (xi) Portanto, por (vi), (ix) e (x) temos que gr(ξi)> gr(φ). (xii) Por (ix), (xi) e por (a), (b) e (c) temos então que: gr(ζi)> gr(φ). (xiii) Pelo Teorema 2.1.18 temos que gr(ζ'i)> gr(Bi1). (xiv) Logo, por (viii) e (xiii), temos que gr(ζ'i)> gr(φ). Portanto, por (xii), (xiv) e por (c), (d) e (e), temos que gr(ζ'')> gr(φ).   Item (3) Como as únicas ocorrências de X além das ocorrências de ρi são ocorrências de φ, ponte de X, temos, pelo Item (2), que toda ocorrência ψ de X é tal que gr(ψ) ≥ gr(φ). ♦ §2 Subárvores Terminadas as definições e resultados estritamente relacionados com segmentos-α, vamos nesta seção, continuando nosso caminho para a definição formal de o(π), apresentar definições e resultados que relacionam os segmentos-α com as derivações e com partes específicas das derivações em que eles ocorrem. O principal conceito que introduziremos é o conceito de subárvore, o qual utilizaremos para nos referir a partes das derivações que também tenham estrutura de árvore. 2.2.1 DEFIN IÇÃO: Quase-Derivação Uma quase-derivação é um encadeamento de aplicações de regras de inferência em forma de árvore e difere de uma derivação apenas por não precisar respeitar as restrições 1.2.6 para aplicação das regras de inferência. 2.2.1.1 OBSERVAÇÕES: (a) Note que toda derivação é uma quase-derivação. (b) Para simplificação de notação, quando for dispensável a distinção entre derivação e quase-derivação, poderemos tratar quase-derivações como derivações. 59 2.2.2 DEFIN IÇÃO: Subárvore Completa - ∇π(A) Seja A uma ocorrência de fórmula em uma derivação π. Dizemos que A e todas as ocorrências de fórmulas de π que estão acima de A representam uma subárvore completa de π. Dizemos que esta subárvore completa é determinada por A, e denotamos ∇π(A). Na definição seguinte, queremos caracterizar formalmente o conceito de subárvore como sendo qualquer parte de uma derivação que também tenha a estrutura de árvore. 2.2.3 DEFIN IÇÃO: Subárvore Seja π uma derivação. Definimos subárvore, indutivamente, da seguinte maneira: (1) Uma ocorrência de fórmula A em π é uma subárvore de π; (2) Se π1 é uma subárvore de π e B é uma top-fórmula de π1, então, π1B, obtido de π1 acrescentando-se toda a regra que gerou B a π1, é uma subárvore de π; (3) As subárvores são obtidas apenas por (1) e (2). 2.2.3.1 OBSERVAÇÕES: (a) Acrescentar toda a regra que gerou B a π1 significa acrescentar a π1 as premissas de B, o traço da regra e os sinais auxiliares. (b) A diferença entre subárvore completa e subárvore, é que a segunda não precisa conter todas as ocorrências acima da ocorrência que a determina. Pode terminar antes das top-fórmulas de π. Por exemplo, se π é do tipo: π ≡ , então π π π 1 A 2 1 e π2 são subárvores de π, mas apenas π1 é subárvore completa. Neste caso, π1 ≡ ∇π(A). (c) Uma subárvore, apesar de ter estrutura de árvore, pode não satisfazer as restrições 1.2.6. Portanto, subárvores são quase-derivações. (d) Dizemos que a aplicação de uma regra está ou ocorre integralmente em uma subárvore quando as premissas e a conclusão da regra ocorrem na subárvore. 2.2.4 DEFIN IÇÃO: Ocorrência de Ligação Dizemos que uma ocorrência A em uma derivação π é uma ocorrência de ligação entre duas subárvores de π, quando A for ocorrência de ambas as subárvores, sendo top-fórmula 60 de uma e raiz da outra. Dizemos que A é ligação para cima da subárvore na qual é topfórmula e ligação para baixo da subárvore na qual é raiz. 2.2.4.1 EXEMPLO: Se π for da forma: π ≡ , então A é ocorrência de ligação entre π π π 1 2 A 1 e π2, sendo ligação para cima de π2 e ligação para baixo de π1. 2.2.5 DEFIN IÇÃO: Subárvores Ligadas Dizemos que duas subárvores de uma derivação são subárvores ligadas, quando existe uma ocorrência de ligação entre elas. 2.2.6 DEFIN IÇÃO: Subárvores Disjuntas Dizemos que duas subárvores de uma derivação são subárvores disjuntas, quando a única ocorrência comum entre elas, se houver, for uma ocorrência de ligação. Seja π uma derivação e π1, ..., πm subárvores de π. Dizemos que π1, ..., πm são subárvores disjuntas em π, quando, para todo i, j tal que (1 ≤ i, j ≤ m) e (i ≠ j), πi e πj forem disjuntas. Note que subárvores ligadas são, portanto, subárvores disjuntas. 2.2.7 DEFIN IÇÃO: Função Posição posπ(φ) Seja π uma derivação e φ uma ocorrência de fórmula em π. Definimos a função posição das ocorrências da derivação π, como uma função recursiva dada pelas seguintes equações de recursão: (1) posπ(r(π))= 1 (2) posπ(Dπ(φ))= posπ(φ)+ 1 (3) posπ(Eπ(φ))= posπ(φ)+ l(∇π(Dπ(φ)))+ 1. 2.2.7.1 OBSERVAÇÕES: (a) A função posição associa univocamente cada ocorrência de fórmula de uma derivação π a um número natural. A equação (1) garante que a raiz tem posição mínima; a 61 equação (2) garante que a premissa direita de uma ocorrência φ tem como posição o sucessor da posição de φ, e a equação (3), que a premissa esquerda de φ tem como posição o sucessor da posição de φ, somado com o comprimento da subárvore completa da premissa direita de φ. (b) A função posição dá uma definição formal do que informalmente chamamos de "ocorrência mais à direita de baixo para cima" de uma derivação. Se posπ(φ)< posπ(ψ), então, dizemos que φ ocorre mais à direita, de baixo para cima, que ψ, em π. (c) Note, pela Definição 2.2.7 e pelas Observações 2.1.1.1-(b) e 2.1.3.1-(b) que: posπ(φ)< posπ(ψ) ⇔ ψ ocorre acima de φ em π, ou ψ ocorre à esquerda de φ em π. 2.2.8 N OTAÇÕES: Considere a derivação e a seqüência de derivações , ..., , onde n-1 é igual ao número de hipóteses A destacadas em . [ ]A π1 π2 A πn A [ ]A π1 (a) A notação denota a derivação obtida através da substituição de cada hipótese destacada de por uma derivação , (2 ≤ j ≤ n), de tal modo que hipóteses destacadas com π π π 2 1 ... [A] n1 24 34 [ ]A π1 π j A posições (Definição 2.2.7) menores foram substituídas por derivações com subíndices maiores. (b) Se o número de hipóteses A destacadas em for maior que n-1, usamos a notação , onde [π [ ]A π1 1 n2 [A] ][ ... ][ π ππ 43421 i] (2 ≤ i ≤ n) significa que pode haver uma ou mais cópias de π2 em hipóteses destacadas A. (c) Se todas as derivações substituídas em forem cópias da mesma derivação , usamos a notação , compatível com a apresentada em 1.3.1-(i). [ ]A π1 π2 A π π 2 1 [ ]A 62 2.2.8.1 OBSERVAÇÃO: Note que, dada uma derivação π, tal que l(π)> 1, sempre podemos escrever π na forma π ≡ , para alguma fórmula A com ocorrências em π e algum n. π π π 2 1 ... [A] n1 24 34 2.2.9 DEFIN IÇÃO: Ocorrência Pesada Local Seja π uma derivação, π1 uma subárvore de π e φ uma ocorrência em π1, distinta de r(π1), tal que φ é OPπ. Dizemos que φ é uma ocorrência pesada local a π1 em π, ou φ é uma OPLπ(π1), se, considerando π1 isoladamente, φ é OPπ1. 2.2.9.1 OBSERVAÇÕES (a) φ é OPLπ(π1) quando existe um segmento-α totalmente contido em π1 no qual φ é ocorrência pesada. Pelas Definições 2.1.9 e 2.1.10, isso é o mesmo que dizer que todas as ocorrências pertencentes à regra em que φ é premissa maior, ψ= assπ(φ) e as premissas de ψ ocorrem todas em π1. (b) Quando φ é OPπ e não é OPπ1, dizemos que φ é ocorrência pesada não-local a π1 em π, ou, φ é OPnLπ(π1). (c) Denotaremos o número de ocorrências que são OPnLπ(π1) por: nlπ(π1). (d) Note que se φ for r(π1) e OPπ, não estamos considerando φ nem como OPLπ(π1), nem como OPnLπ(π1). Apresentaremos agora alguns resultados importantes envolvendo as noções já introduzidas. O teorema seguinte estabelece algumas propriedades simples envolvendo segmentosα e subárvores. Os itens 1 a 4 estabelecem propriedades triviais e facilmente visualizáveis. O item 5 estabelece que o grau da ocorrência de ligação de uma subárvore é um limite superior para o grau de todas as ocorrências pesadas não locais a esta subárvore. Este resultado será útil para provar que as novas ocorrências multiplicativas que uma multiplicação-* pode criar têm grau estritamente menor que a ocorrência multiplicativa multiplicada. 63 2.2.10 TEOREMA: Considere π ≡ . Então: π π 1 2 A (1) nlπ(π1)= 0 (Não existe nenhuma OPnLπ(π1)); (2) φ é OPnLπ(π2) ⇔ φ ocorre em π2 e ψ= assπ(φ) ocorre em π1; (3) Se φ é OPnLπ(π2), então φ pertence a um segmento-α ρ que possui a ocorrência A (ligação entre π1 e π2); (4) Se A não pertence a nenhum segmento-α de π, então nlπ(π2)= 0; (5) Se φ é OPnLπ(π2), então: gr(φ) ≤ gr(A); PROVA: Item (1) Como π1 é uma subárvore completa de π, então, tudo o que ocorre acima de qualquer ocorrência de π1 está em π1. Portanto, para toda OPπ que ocorre em π1 temos que a regra que gera sua ocorrência associada ocorre também em π1. Logo, pela Observação 2.2.9.1-(a), a única forma de uma OPπ que ocorre em π1 não ser OPπ1 é quando a regra na qual esta OPπ é premissa maior não está integralmente em π1. Mas isso só pode acontecer com r(π1). Como r(π1) não é nem OPLπ(π1), nem OPnLπ(π1) (ver 2.2.9.1-(d)), então não existe OPnLπ(π1), ou seja, nlπ(π1)= 0.   Item (2) •(⇒) Como φ é OPnLπ(π2) é claro que φ ocorre em π2. Provaremos que ψ= assπ(φ) ocorre em π1 por absurdo. Hip. do Absurdo: ψ= assπ(φ) não ocorre em π1. Como ψ não ocorre em π1 e A, ocorrência de ligação entre π1 e π2, ocorre também em π1, então ψ não é A. Logo: (i) ψ ocorre em π2 e não é A. (ii) Como ψ= assπ(φ), então φ ou é a mesma ocorrência que ψ ou ocorre abaixo de ψ. 64 Como A não ocorre abaixo de nenhuma ocorrência de π2, já que A é top-fórmula de π2, por (i) e (ii) temos: (iii) φ também não é A. (iv) Além disso, a única ocorrência de π2 cuja regra não está integralmente em π2 é A, pois A é a única ligação de π2. Como, por (i) e (iii), nem φ nem ψ são A, então, pela Observação 2.2.9.1-(a), φ é OPLπ(π2), o que é um absurdo pois por hipótese φ é OPnLπ(π2). Portanto, descartamos a Hip. do Absurdo e temos: φ é OPnLπ(π2) ⇒ φ ocorre em π2 e ψ= assπ(φ) ocorre em π1. •(⇐) Se φ ocorre em π2 e ψ= assπ(φ) ocorre em π1, então não existe segmento-α totalmente definido em π2 que possua φ e ψ como ocorrências, e, portanto, pela Definição 2.2.9, temos que φ é OPnLπ(π2).   Item (3) Como A é a única ligação entre π1 e π2, então o resultado é trivial, pelo Item (2).   Item (4) Trivial, utilizando o Item (3).   Item (5) φ é OPnLπ(π2) ⇒Item 2 φ ocorre em π2 e ψ= assπ(φ) ocorre em π1 Vamos provar que: φ ocorre em π2 e ψ= assπ(φ) ocorre em π1 ⇒ gr(φ) ≤ gr(A). Seja ρ= B1, ..., Bm o mais comprido segmento-α de menor nível do qual (ψ,φ) é par-α. Temos em ρ a seguinte situação: ρ= B1, ..., Br, ..., Bi, ..., Bm-i+1, ..., Bm-r+1, ..., Bm, onde: (a) Bm-r+1 é φ e Br é ψ= assπ(φ); (b) Se n(ρ)> 1, então Bi e Bm-i+1 são a primeira e a última ocorrências da cadeia X que determina ρ; 65 (c) Se n(ρ)= 1, então Bi, Bm-i+1 e Bc(ρ) são a mesma ocorrência da FM que determina ρ. Como, por hipótese, Br ocorre em π1 e Bm-r+1 ocorre em π2, e A é a única ligação entre π1 e π2, temos que A é algum Bj, com (r ≤ j ≤ m-r+ 1). Temos então 3 casos, onde o primeiro e o último podem ser agrupados em um mesmo: A é algum Bj, ou para (r ≤ j< i), ou para (i ≤ j ≤ m-i+ 1), ou para (m-i+ 1< j ≤ m-r+ 1). CASO 1: A é algum Bj tal que (r ≤ j< i) ou (m-i+ 1< j ≤ m-r+ 1) (i) Neste caso, A é algum Bj ou Bm-j+1 tal que (r ≤ j< i). (ii) Pelas Definições 2.1.9 e 2.1.10 temos que, a menos de parâmetros, Bj= Bm-j+1. Temos também que para todo k, (1< k< i), Bk é conseqüência de regra de introdução da qual Bk-1 é premissa. Portanto, gr(Bk)> gr(Bk-1). (iii) Logo, gr(Br) ≤ gr(Bj), para todo j tal que r ≤ j ≤ i. (iv) Por (ii) temos que gr(Bj)= gr(Bm-j+1), para todo j (r ≤ j ≤ i). (v) Assim, por (i), (iii) e (iv), gr(Br) ≤ gr(A). (vi) Por (a) temos que φ= Bm-r+1, ψ= Br e ψ= assπ(φ). Logo, gr(φ)= gr(ψ)= gr(Br). Assim, por (v) e (vi) temos que gr(φ) ≤ gr(A). CASO 2: A é algum Bj, tal que (i ≤ j ≤ m-i+ 1). Temos dois subcasos distintos dependendo de n(ρ). SubCaso 2.1: n(ρ)= 1 Neste caso temos, por (c), que j= c(ρ), e Bj é a FM que determina ρ. Pela Definição 2.1.9, sabemos que para todo k, 1< k ≤ j, Bk é conseqüência de regra de introdução da qual Bk-1 é premissa. Portanto, gr(Bk)> gr(Bk-1). (vii) Logo, gr(Bj) ≥ gr(Bk), para todo k, 1 ≤ k ≤ j. (viii) Portanto, como r< i e i= j= c(ρ), temos gr(Bj) ≥ gr(Br). (ix) Por (a), temos que gr(Bm-r+1)= gr(Br). Logo, como φ é Bm-r+1 e A é Bj, temos, por (viii) e (ix): gr(A) ≥ gr(φ). SubCaso 2.2: n(ρ)> 1 Temos por (b), que Bj= A ocorre na cadeia X que determina ρ. (x) Pelo Teorema 2.1.19-(3), temos que gr(A) ≥ gr(φX), onde φX é a ponte de X. 66 (xi) Pelo Teorema 2.1.19-(1) temos gr(Bm-r+1) ≤ gr(φX), pois Bm-r+1 não ocorre em X. Logo, como Bm-r+1 é φ, então, por (x) e (xi): gr(A) ≥ gr(φ). ♦ Podemos estender o resultado deste teorema para o seguinte corolário. 2.2.11 COROLÁRIO: Seja π da seguinte forma: π ≡ . 1 n2 [A] ... π ππ 43421 Para todo j tal que 2 ≤ j ≤ n, temos: (1) nlπ(πj)= 0 (Não existe OP de π não local a nenhum πj); (2) φ é OPnLπ(π1) ⇔ φ ocorre em π1 e ψ= assπ(φ) ocorre em algum πj; (3) Se φ é OPnLπ(π1), então φ pertence a um segmento-α ρ que possui algum Aj (ligação entre π1 e πj) como ocorrência; (4) Se nenhum Aj pertence a segmento-α de π, então nlπ(π1)= 0; (5) Se φ é OPnLπ(π1), então, gr(φ) ≤ gr(A). PROVA: Conseqüência imediata do Teorema 2.2.10 por indução em n. ♦ 2.2.12 DEFIN IÇÃO: Peso de uma Derivação - p(π) O peso de uma derivação π representa o número de ocorrências pesadas em π. Formalmente, para o sistema C' temos: (1) Se π é uma fórmula, p(π)= 0; (2) Se π é π π1 A 2 , p(π)= p(π1)+ p(π2)+ .    contrario caso 0 OPfor )( se 1 2 ππr 2.2.12.1 OBSERVAÇÃO: (a) É claro que o número de ocorrências pesadas de uma derivação π é igual ao número de pares-α de π. Antes de terminarmos esta seção, vamos apresentar dois resultados envolvendo a noção de peso. 67 2.2.13 TEOREMA: Se π é uma derivação do tipo: π ≡ , então: p(π)= p(π π π 1 2 A 1)+ p(π2)+ nlπ(π2). PROVA: Como todas as ocorrências de π estão ou em π1 ou em π2, então todas as OPπ também estão ou em π1 ou em π2. Mas, de todas as OPπ que estão em πi, temos as que são OPπi também (ou seja OPLπ(πi)), e as que são apenas OPπ mas não são OPπi (ou seja, as OPnLπ(πi)) (1 ≤ i ≤ 2). Assim, o número total de OPπ é igual ao número de OPLπ(πi) somado com OPnLπ(πi) (1 ≤ i ≤ 2). 25 Portanto, p(π)= p(π1)+ p(π2)+ nlπ(π1)+ nlπ(π2). Mas pelo Teorema 2.2.10-(1), temos que nlπ(π1)= 0. Portanto, p(π)= p(π1)+ p(π2)+ nlπ(π2). ♦ 2.2.14 COROLÁRIO: (1) Se π é do tipo: π ≡ , então p(π)= p(π π π π 2 1 ... [A] n124 34 1)+ nlπ(π1)+ p(π∑ =j n 2 j) . (2) Se π é do tipo: π ≡ [A , então p(π)= p(π π π 2 1 ] 1)+ nlπ(π1)+ n[A](π1).p(π2) . PROVA: Imediata, pelo Teorema 2.2.13, por indução em n. ♦ §3 Seqüência Estrela Nesta seção, definiremos os conceitos a que informalmente nos referimos em 2.1.16 e provaremos que existe um modo de associarmos a cada derivação π uma derivação 25 Note que para (1 ≤ i ≤ 2), pela Definição 2.2.9 r(πi) não é computado nem em p(πi) nem em nlπ(πi). Mas r(π2) jamais é OPπ, pois é raiz de π, e r(π1), se for OPπ, será computado em nlπ(π2) apenas. 68 "estrela" π*, obtida por processos finitários, na qual podemos calcular todas as possíveis fórmulas máximas de π. A definição seguinte formaliza a noção de ocorrência multiplicativa a que nos referimos informalmente na explicação 2.1.16. Em síntese, uma ocorrência multiplicativa é uma ocorrência pesada que, quando por ventura se tornar uma fórmula máxima, torna-se uma fórmula máxima multiplicativa (ver 2.1.15), do tipo que é reduzida pela ⊃-redução-1. 2.3.1 DEFIN IÇÃO: Ocorrência Multiplicativa (OMπ) Uma ocorrência de fórmula φ em uma derivação π é multiplicativa (φ é OMπ) se estiverem satisfeitas as seguintes condições: (1) φ é ocorrência pesada em π; (2) A regra de eliminação da qual φ é premissa maior é regra de eliminação da implicação (⊃E); (3) A regra de introdução que gera a ocorrência associada a φ corta alguma top- -fórmula de π; (4) A premissa menor ψ da regra em que φ é a premissa maior não é hipótese aberta (ou l(∇π(ψ))> 1, ou ψ é top-fórmula cortada). 2.3.1.1 OBSERVAÇÕES: (a) Uma ocorrência multiplicativa é a ocorrência pesada de um par-α que, quando se tornar uma FM , será uma FM multiplicativa. (b) Se l(∇π(ψ))> 1, chamamos φ de OMπ do tipo 1, e se l(∇π(ψ))= 1, onde ψ é top- -fórmula cortada em π, chamamos φ de OMπ do tipo 2. 2.3.2 DEFIN IÇÃO: Derivação Estrela (*) Dizemos que π é derivação estrela, se π não possuir ocorrência multiplicativa (OMπ). 2.3.3 DEFIN IÇÃO: Multiplicação-* (Estrela) Se φ é OMπ, podemos representar π como: 69 π ≡ π π π 1 k A [A] A B B 2 3 ⊃ , onde φ= A⊃B é OMπ. Neste caso, π2 possui uma ou mais hipóteses A cortadas pela regra de introdução k que gerou assπ(A⊃B) e, ou l(π1)> 1, ou ≡ A π1 A r ( é hipótese cortada em π). π1 A Dizemos que π# é obtida de π pela multiplicação-* de A⊃B quando: π# ≡ A [A] A B B 1 2 3 π π π ⊃ , onde: substituiu-se, em π, cada top-fórmula destacada de por , e , em sua posição original, por A. 2 k]A[ π π1 A π1 A 2.3.3.1 OBSERVAÇÕES: (a) A notação π ≡ π π π 1 k A [A] A B B 2 3 ⊃ é uma simplificação de: π ≡ π π π π 1 5 4 3 A A B A B A B B k k [ ] ⊃ ⊃ . (b) Quando é apenas uma hipótese cortada em π, temos: π1 A π ≡ A r [A] A B B k π π 2 3 ⊃ e π# ≡ A [A] A B B r π π 2 3 ⊃ . 70 (c) Para efeito de referência, chamaremos as cópias de π1 em π# de (π1)1, ... , (π1)m , onde m é o número de hipóteses A que foram substituídas por π1 (m= n[A](π2)) , e posπ#(r((π1)1)) < posπ#(r((π1)2))< ...< posπ#(r((π1)m)). (d) Ao substituirmos por A em π, para obtenção de π π1 A #, pode ocorrer de π# não mais respeitar as Restrições 1.2.6 de aplicação da regra (∀I), pois estamos acrescentando uma nova hipótese à derivação. Com isso, temos que a multiplicação-* é uma operação definida em quase-derivações. (e) A notação π →* π# indica que π# foi obtida de π por uma multiplicação-*. (f) Note que a multiplicação-* é uma operação finitária, ou seja, se π →* π# e l(π)< ω, então l(π#)< ω. 2.3.4 DEFIN IÇÃO: Grau Máximo Multiplicativo g(π) O grau máximo multiplicativo de uma derivação π é um número natural, denotado por g(π), e definido por: g(π)= max{gr(φ) / φ é OMπ}. 2.3.4.1 OBSERVAÇÕES: (a) g(π) é o maior dentre os graus das ocorrências multiplicativas de π. (b) Se π é derivação estrela, g(π)= 0. 2.3.5 DEFIN IÇÃO: N úmero de Ocorrências de Grau Máximo Multiplicativo ng(π) Definimos o número de ocorrências de grau máximo multiplicativo de uma derivação π, ng(π), como o número de OMs de π com grau igual a g(π). 2.3.5.1 OBSERVAÇÃO: Se π é uma derivação estrela, ng(π)= 0. 2.3.6 DEFIN IÇÃO: Ocorrência Estrela T(π) Seja π uma derivação e φ uma OMπ. Dizemos que φ é a ocorrência estrela de π, T (π), quando: φ= T (π) ⇔ posπ(assπ(φ))= max{posπ(assπ(ξ)) / ξ é OMπ e gr(ξ)= g(π)}. 71 2.3.6.1 OBSERVAÇÕES: (a) A ocorrência estrela de π, T (π), é dentre as ocorrências multiplicativas de π com grau máximo, a que tem ocorrência associada de maior posição. (b) É imediato pela definição acima que se π ≡ π π π 1 k A [A] A B B 2 3 ⊃ , onde A⊃B é T (π), então g(π1)< g(π)= gr(A⊃B). Ou seja, não existe OMπ1 de mesmo grau que A⊃B, já que toda ocorrência de π1 tem posição maior que a posição de qualquer ocorrência de π2. e que assπ(A⊃B), que certamente ocorre em π2. (c) Também é imediato pela definição acima que para toda derivação π existe uma e apenas uma ocorrência estrela T (π). 2.3.7 DEFIN IÇÃO: Seqüência Estrela Uma seqüência estrela para uma derivação π, denotada por βπ, é uma seqüência de derivações denotadas por π•0, π•1, π•2,..., tal que são satisfeitas as seguintes condições: (1) π•0 é π; (2) Cada π•i+1 é obtida de π•i através da multiplicação-* de T (π•i); (3) A última derivação da seqüência, quando existe, é uma derivação estrela. 2.3.7.1 OBSERVAÇÕES: (a) Note que se π é derivação estrela, então βπ = π é uma seqüência unitária. (b) Note também pela Observação 2.3.6.1-(c) que como para cada derivação não estrela π existe uma e apenas uma ocorrência estrela T (π), então para cada derivação π a seqüência estrela é única. (c) A notação π →* o π• indica que π se reduz a π• pela multiplicação estrela de T (π). (d) Utilizaremos para as seqüências estrela a notação βπ = π•0 →* o π•1 →* o π•2 →* o ..., onde π•0 ≡ π, π• ≡ π•1 e, genericamente, π•n representa o (n+ 1)-ésimo termo da seqüência estrela para π. (e) Denotaremos por π* o último termo da seqüência estrela para π, quando esta for finita. 72 (f) Se π* está definido (∃n< ω / π•n é termo estrela), então é claro que para todo m ≤ n temos (π•m)* ≡ π*, pois a seqüência estrela para π é única e π•m pertence à seqüência estrela de π. (g) Pela unicidade da seqüência estrela também é trivial que, se π1* está definido, π1 ≡ π2 ⇒ π1* ≡ π2*. (h) É claro pela definição acima que: (π•n)•m ≡ π•n+m. Ou seja, o (m+ 1)-ésimo termo da seqüência estrela para π•n é o (n+ m+ 1)-ésimo termo da seqüência estrela para π. (i) Note, pela Observação 2.3.3.1-(d) que uma seqüência estrela é, de fato, uma seqüência de quase-derivações. A partir de agora, apresentaremos uma seqüência de resultados que tem por objetivo provar que a cada derivação π existe uma e apenas uma seqüência estrela associada, que é finita. Dessa forma, a cada derivação π associaremos univocamente uma derivação estrela π*, a última derivação da seqüência estrela de π. Como π* será obtida por métodos finitários, a própria π* é uma derivação de comprimento finito, que portanto tem um número finito de ocorrências pesadas. Assim, associando o(π) ao número de ocorrências pesadas de π*, teremos uma atribuição numérica que relaciona univocamente toda derivação π a um número natural (finito). O teorema que segue assegura a existência e unicidade da seqüência estrela para toda derivação π. 2.3.8 TEOREMA: Existência e U nicidade de β Para toda derivação π, existe uma e apenas uma seqüência estrela βπ. PROVA: Imediata pelas Definições 2.3.6 e 2.3.7. ♦ Com a existência e unicidade da seqüência estrela estabelecidas, vamos agora provar sua finitude para toda derivação π. Para isso a definição a seguir será importante. Uma multiplicação-*, assim como uma redução, não cria ocorrências novas. Se π →* π•, cada ocorrência de fórmula em π• é obtida a partir de alguma ocorrência de fórmula em π. A definição de notação a seguir relaciona cada ocorrência de fórmula de qualquer 73 derivação da seqüência estrela para uma derivação π, com a ocorrência em π que a originou. 2.3.9 DEFIN IÇÃO: Ocorrência Cópia-* Sejam π e π# derivações tais que: π →* π#: π ≡ π π π 1 k A [A] A B B 2 3 ⊃ →* π# ≡ A [A] A B B 1 2 3 π π π ⊃ , onde A⊃B é T (π). Dizemos que a ocorrência ψ de π# é uma cópia-* da ocorrência φ de π quando uma das três alternativas abaixo ocorre: (1) φ é A, pm da regra expressa em π e ψ é A, pm da regra expressa em π#. (2) φ e ψ, cada uma na sua derivação, ocorrem em πi (2 ≤ i ≤ 3), não são hipóteses destacadas de π2 e posπi(φ)= posπi(ψ). (3) φ ocorre em π1 e ψ ocorre em (π1)j (1 ≤ j ≤ n[A](π2)) e posπ1(φ)= pos(π1)j(ψ). 2.3.9.1 OBSERVAÇÕES: (a) É imediato pela definição que, se ψ é cópia-* de φ, então φ e ψ são ocorrências da mesma fórmula. (b) Se φ e ψ são como em (1) ou (2) acima, então, denotamos ψ, a ocorrência cópia-*, por: ψ= (φ)1. (c) Se φ e ψ são como em (3), então denotamos ψ por: ψ= (φ)j. (d) É imediato pela definição que toda ocorrência ψ, de π#, é cópia de alguma ocorrência φ, em π, e pode ser representada por ψ= (φ)i para algum i (1 ≤ i ≤ n[A](π2)). (e) Podemos expandir esta definição para as derivações da seqüência estrela de π. Considere a derivação π•n da seqüência estrela para π. É imediato pela definição, por indução em n, que para toda ocorrência ψ em π•n existe uma ocorrência φ em π tal que ψ= (...(((φ)i1)i2)...)in-1. Podemos simplificar a notação para ψ= (φ)in, onde i é o número de Gödel da seqüência i1, i2, ..., in-1 , e n é o próprio índice da derivação π•n em que ψ ocorre. 74 (f) Note, por (d) e (e), que: (φ)i= (φ)i1. Provaremos agora um teorema onde estabelecemos propriedades fundamentais que nos garantirão a existência de uma medida de indução para provarmos que a seqüência estrela de toda derivação π é finita. 2.3.10 TEOREMA: Seja φ uma ocorrência de fórmula em uma derivação não estrela π e ψ= (φ)i uma cópia-* qualquer de φ em π•. Então: (1) φ= T (π) ⇒ (φ)i não é OMπ•; (2) φ ≠ T (π) e OMπ ⇒ (φ)i é OMπ•; (3) φ não é OMπ e (φ)i é OMπ• ⇒ gr((φ)i)< g(π); (4) ng(π)= 1 ⇔ g(π)> g(π•); (5) ng(π)> 1 ⇒ g(π)= g(π•) e ng(π)= ng(π•)+ 1; (6) g(π) ≥ g(π•); (7) p(π) ≤ p(π•). PROVA: Temos que π e π• têm as formas: π ≡ π π π 1 k A [A] A B B 2 3 ⊃ e π• ≡ A [A] A B B 1 2 3 π π π ⊃ , onde A⊃B é T (π). Chamemos π4 ≡ A e (π [A] A B B k π π 2 3 ⊃ 4)1 ≡ A [A] A B B π π 2 3 ⊃ . (i) Note que π4 e (π4)1 diferem apenas no corte da aplicação da regra que gera a ocorrência associada a A⊃B. Em (π4)1 ela não elimina hipóteses, e em π4 ela elimina. 75 (ii) Podemos escrever π e π• como: π ≡ e π• ≡ . π π 1 4 A π π 1 4 1 [ ] ( ) A (iii) Pela Definição 2.3.9, temos que toda ocorrência ψ de π• que ocorre em (π4)1 é tal que ψ= (φ)1, onde φ ocorre em π4 e posπ4(φ,)= pos(π4)1(ψ). Como as marcas de corte são irrelevantes na definição de segmento-α, então temos que φ é OPπ4 ⇔ (φ)1 é OP(π4)1. Segue então que: (iv) p(π4)= p((π4)1). Além disso, como pelo Teorema 2.2.10 e Corolário 2.2.11, nlπ(π4)= nlπ•((π4)1)= 0 temos: (v) φ é OPLπ(π4) ⇔ (φ)1 é OPLπ•((π4)1). Apenas por distinção de referência, chamaremos a ocorrência A, ligação entre π1 e π4 em π, de Ak, e as ocorrências destacadas de π2, ligações entre (π4)1 e cada cópia de π1 em π•, apenas de A. Item (1) Como φ= T (π) temos que φ= A⊃B e ψ= (A⊃B)1 (A⊃B que ocorre em π•) . A premissa menor de ψ é hipótese aberta e a regra que gera sua ocorrência associada não corta top-fórmula em π•, portanto, pela Definição 2.3.1, ψ não é OMπ•.   Item (2) Temos que provar que se φ ≠ A⊃B é OMπ, então cada (φ)i satisfaz todos os itens da Definição 2.3.1 de ocorrência multiplicativa em π•. Dividiremos a prova em 4 passos, onde provaremos, para cada item da definição, que se φ satisfaz o item em π, então (φ)i também satisfaz em π•. PASSO 1: Vamos provar que: φ é OPπ ⇒ (φ)i é OPπ• Como Ak é premissa menor em π, Ak não pertence a nenhum segmento-α em π, logo, pelo Teorema 2.2.10-(4), nlπ(π4)= 0. Portanto, pelo Teorema 2.2.13, temos: p(π)= p(π1)+ p(π4) . Ou seja, todas as OPπ são locais em relação a π1 e π4 . Assim: (vi) φ é OPπ ⇔ φ é OPLπ(π1) ou φ é OPLπ(π4). Pela forma de π• em (ii) e pelo Corolário 2.2.14 temos: p(π•)= p(π4)+ n[A](π2).p(π1)+ nlπ•((π4)1). 76 Ou seja, as OP são dadas pelas OP para cada (π ) , pelas OP e pelas OPnL ((π ) ). Assim: (π1)i 1 iπ• (π4)1 π• 4 1 (vii) ψ é OP ⇔ ψ é OPL ((π ) ) ou ψ é OPL ((π ) ) ou ψ é OPnL ((π ) ). π• π• 1 i 4 i π• 4 iπ• Como cada (π1)i em π• é uma cópia idêntica de π1, então: (viii) φ é OPπ1 ⇔ para todo i (1 ≤ i ≤ n[A](π2)), (φ)i é OP(π1)i. Temos portanto: (ix) φ é OPπ φ é OPL)vi(⇒ π(π1) ou φ é OPLπ(π4). (x) φ é OPLπ(π4) (φ))v(⇒ i é OPLπ•((π4)i) ⇒ (φ))vii( i é OPπ•. (xi) φ é OPLπ(π1) ⇒ φ é OP (φ))vi( )viii⇒ i é OP(π1)i ⇒ (φ))vii( i é OPπ•. π1 ( Logo, por (ix), (x) e (xi) temos: φ é OP em π ⇒ (φ)i é OP em π•. PASSO 2: Vamos provar que: φ é PM de (⊃E) em π ⇒ (φ)i é PM de (⊃E) em π• É imediato pelas formas de π e π•. PASSO 3: Vamos provar que: Se ψ= assπ(φ) e R a aplicação da regra que gera ψ em π, então: R corta top-fórmula ξ em π ⇒ (R)i corta top-fórmula (ξ)i em π•. Pelas formas de π e π• temos que as únicas top-fórmulas cortadas em π cujas cópias-* em π• não são top-fórmulas cortadas pela cópia-* da regra 26 , são as hipóteses A destacadas em π2. Estas hipóteses são cortadas pela regra que gera a ocorrência associada a A⊃B= T (π). Como, por hipótese, φ não é T (π), então: R corta top-fórmula ξ em π ⇒ (R)i corta top-fórmula (ξ)i em π•. PASSO 4: Vamos provar que se ψ é a premissa menor ao lado de φ em π então: ψ não é hipótese aberta em π ⇒ (ψ)i não é hipótese aberta em π•. Pelas formas de π e π• temos que a única ocorrência de π que não é hipótese aberta e cuja cópia-* é hipótese aberta em π• é a premissa menor que ocorre ao lado de T (π). Como φ não é T (π), temos: ψ não é hipótese aberta em π ⇒ (ψ)i não é hipótese aberta em π•. Então, pelos Casos (1) a (4) temos que, se φ ≠ T(π) é OMπ, então cada cópia-* (φ)i de π é OMπ•.   26 Estamos aqui fazendo um abuso de notação, já que cópia-* foi definida para ocorrências. 77 Item (3) Se φ não é OMπ, então, algum dos quatro itens da Definição 2.3.1 falha para φ em π. Dividiremos a prova em 4 casos, onde em cada um deles falha um item. CASO 1: φ não é OP em π (falha 2.3.1-(1)) Por (v) a (viii) do Item anterior temos que as únicas OPπ• que são cópias-* de ocorrências não pesadas em π são as OPnLπ•((π4)1). Assim temos: (xii) φ não é OPπ e (φ)i é OPπ• ⇒ (φ)i é OPnLπ•((π4)1). Mas Pelo Corolário 2.2.11-(5) temos que: (xiii) (φ)i é OPnLπ•((π4)1) ⇒ gr((φ)i) ≤ gr(A). Mas A, a fórmula das ligações de (π4)1 com cada cópia de π1, é exatamente a fórmula da premissa menor da regra em que T (π) é PM . Portanto: (xiv) gr(T (π))> gr(A). (xv) Mas, pela Definição 2.3.6, temos g(π)= gr(T (π)). Assim, por (xiii), (xiv) e (xv) temos: (xvi) (φ)i é OPnLπ•((π4)1) ⇒ gr((φ)i)< g(π). Portanto, por (xii) e (xvi) temos: • φ não é OPπ e (φ)i é OMπ• ⇒ gr((φ)i)< g(π). CASO 2: A regra R da qual φ é PM em π não é (⊃E) (falha 2.3.1-(2)) Neste caso, é imediato, pelas formas de π e π•, que a regra (R)i da qual (φ)i é premissa também não é (⊃E). Assim, falha 2.3.1-(2) para (φ)i em π•. Logo, (φ)i não é OMπ• e o teorema é válido vacuamente neste caso. CASO 3: A regra R de introdução que gera ψ= assπ(φ) não corta top-fórmula ξ de π (falha 2.3.1-(3)) Na passagem de π para π• não é acrescentada nenhuma nova marca de corte de top- -fórmula que não exista em π. No máximo é suprimida alguma. Portanto, se não existe top-fórmula de π cortada pela regra R que gera ψ, então não existe top-fórmula de π• cortada pela regra (R)i que gera (ψ)i. Assim, falha 2.3.1-(3) para (φ)i em π•. Logo, (φ)i não é OMπ• e o teorema é válido vacuamente neste caso. CASO 4: ψ, a premissa menor da regra em que φ é PM , é hipótese aberta em π (falha 2.3.1-(4)) 78 Se ψ é top-fórmula aberta em π, então nenhuma multiplicação-* de π copia alguma subárvore em cima de ψ. Pois subárvores só são copiadas na multiplicação-* sobre as top- -fórmulas cortadas pela regra de introdução associada à ocorrência multiplicada. Portanto, (ψ)i é top-fórmula aberta em π•. Assim, falha 2.3.1-(3) para (φ)i em π•. Logo, (φ)i não é OMπ• e o teorema é válido vacuamente neste caso. Portanto, dos casos 1 a 4 temos: φ não é OMπ e (φ)i é OMπ• ⇒ gr((φ)i)< g(π).   Item (4) •(⇒) ng(π)= 1 ⇒ a única OMπ com grau igual a g(π) é T(π). Logo, (xvii) φ ≠ T (π) é OMπ ⇒ gr(φ)< g(π). Pelo Item (2) temos: (xviii) φ ≠ T (π) é OMπ ⇒ (φ)i é OMπ•. Pelo Item (3) temos: (xix) φ não é OMπ e (φ)i é OMπ• ⇒ gr((φ)i)< g(π). Pelo Item (1) temos: (xx) φ= T (π) ⇒ (φ)i não é OMπ•. Como toda ocorrência em π• é cópia-* de alguma ocorrência em π, e toda ocorrência em π ou é OMπ ou não é OMπ, por (xvii) a (xx) temos: (xxi) ψ é OMπ• ⇒ gr(ψ)< g(π). Logo, por (xxi) é claro que g(π)> g(π•). •(⇐) (Provaremos por redução ao absurdo) Por hipótese temos que: (xxii) g(π)> g(π#). Considere por hipótese do absurdo que: (xxiii) ng(π)> 1. (xxiv) É claro, por (xxiii), que existe ξ ≠ T (π) que é OMπ tal que gr(ξ)= g(π). Por (xxiv) e pelo Item (2) temos que: 79 (xxv) (ξ)i é OMπ•. Mas é claro que gr(ξ)= gr((ξ)i). Logo, por (xxiv), temos: (xxvi) gr((ξ)i)= g(π). Assim, por (xxv) e (xxvi) é claro que g(π•) ≥ g(π), o que é um absurdo, porque por (xxii) g(π•)< g(π). Portanto descartamos a hipótese do absurdo (xxiii) e temos ng(π)= 1.   Item (5) (xxvii) Se ng(π)> 1, então existe pelo menos uma ocorrência φ distinta de A⊃B= T (π) tal que φ é OMπ e gr(φ)= g(π). Logo, pelo Item (2), (φ)i é OMπ• e, portanto: (xxviii) g(π)= g(π#) . Sejam φ1, ..., φm todas as OM distintas de A⊃B em π tais que gr(φj)= g(π), para (1≤ j ≤ m). Pelo Comentário 2.3.6.1-(b) sabemos que nenhum destes φj ocorre em π1. (xxix) Portanto, temos que todos os φj ocorrem em π4. (xxx) Por (xxix), pelas formas de π e π• e pela Definição 2.3.9 temos que para cada φj existe apenas uma cópia-* (φj)1 em π• e que ocorre em (π4)1. Além disso, pelo Item (2) sabemos também que cada (φj)i é OMπ•. Portanto, pelos Itens (1), (3) e por (xxx), temos que: (xxxi) ng(π)= ng(π•)+ 1. Assim, por (xxviii) e (xxxi) temos: ng(π)> 1 ⇒ g(π)= g(π•) e ng(π)= ng(π•)+ 1.   Item (6) Imediato pelos Itens (4) e (5).   Item (7) Como A, ocorrência de ligação em π, é premissa menor, A não pertence a nenhum segmento-α de π. Logo, pelo Teorema 2.2.10-(4), nlπ(π4)= 0 . (xxxii) Portanto, pelo Teorema 2.2.13, p(π)= p(π1)+ p(π4). (xxxiii) Pelo Corolário 2.2.15, p(π•)= p(π4)+ nlπ•(π4)+ n[A]((π4)1).p(π1) . Além disso, A⊃B= T (π) é OM em π e, portanto: 80 (xxxiv) n[A](π4)= n[A]((π4)1) ≥ 1. Logo, por (xxxii), (xxxiii) e (xxxiv) temos: p(π•) ≥ p(π). ♦ O teorema seguinte estabelece que dada uma derivação não normal qualquer π, basta um número finito de multiplicações da seqüência estrela para diminuirmos o grau máximo multiplicativo de π (g(π)). 2.3.11 TEOREMA: Se π é uma derivação tal que ng(π) ≥ 1, então existe n< ω tal que g(π•n)< g(π). PROVA: Provaremos por indução em ng(π). BASE: ng(π)= 1. Pelo Teorema 2.3.10-(4): ng(π)= 1 ⇒ g(π)> g(π•). Portanto, n= 1< ω já satisfaz o teorema. PASSO: HI: Se Σ é uma derivação tal que ng(Σ)< ng(π),então existe k< ω tal que g(Σ•k)< g(Σ). Pelo Teorema 2.3.10-(5), como ng(π)> 1 temos: (i) g(π)= g(π•) e ng(π)= ng(π•)+ 1. Logo, vale HI para π• e portanto temos: (ii) Existe um (π•)•k tal que g((π•)•k)< g(π•) e k< ω. (iii) Mas, pela Observação 2.3.7.1-(h), temos: (π•)•k ≡ π•k+1. Logo: (iv) g(π) g(π•) g((π•)• )i( = )ii( > k) g(π• )iii( = k+1). Além disso, como k< ω, k+ 1< ω. Portanto, fazendo n= k+ 1, temos por (iv): g(π•n)< g(π) e n< ω. ♦ Podemos agora estabelecer a finitude da seqüência estrela de qualquer derivação π. É o que faremos no teorema que segue. O argumento da prova deste teorema é análogo ao da demonstração do Teorema de Normalização Fraca para C' apresentado em Prawitz[1965], p. 40. Pelos Teoremas 2.3.10-(4) e 2.3.10-(5) temos que a cada passo da operação-*, a multiplicação-* de T (π•i) torna π•i+1 uma derivação onde: ou o grau máximo multiplicativo de π•i+1 é menor que em π•i, ou o grau é igual, mas o número de OMs de grau máximo é uma unidade menor que em π•i. Ou seja, ainda que a multiplicação-* de T (π•i) aumente o 81 número total de OMs em π•i+1, ela, com certeza, ou diminuirá o número de OMs de grau máximo ou diminuirá o valor do grau máximo. No Teorema 2.3.11, mostramos que necessitamos sempre de um número finito de passos para diminuir, de pelo menos uma unidade, o valor do grau máximo das OMs de uma derivação π. Portanto, realizando finitas vezes este processo finito, quando eliminarmos a última ocorrência OM de grau 2, teremos transformado a derivação π em uma derivação estrela π* (onde não há OMs) em um número finito de passos. 2.3.12 TEOREMA: Finitude de β A seqüência estrela de toda derivação π é finita (l(βπ)< ω). PROVA: Indução em g(π). Dizer que l(βπ)< ω é o mesmo que dizer que existe r< ω tal que π•r é termo estrela. É isto que provaremos. BASE: g(π)= 0 Neste caso π é estrela e, portanto, π•0 ≡ π é derivação estrela. PASSO: g(π)> 0 HI: para toda derivação Σ na qual g(Σ)< g(π), existe s< ω tal que Σ•s é derivação estrela. (i) Pelo Teorema 2.3.11 existe n< ω tal que g(π•n)< g(π). Logo, vale HI em π•n e, portanto: (ii) Existe s< ω tal que (π•n)•s é derivação estrela. Logo, por (ii) e pela Observação 2.3.7.1-(h) temos: π•n+s é termo estrela e, como por (i) e (ii) n< ω e s< ω, é claro que n+ s< ω. ♦ §4 A Atribuição N umérica o(π) Definiremos nesta seção a atribuição numérica o(π) como o número de ocorrências pesadas de π*. Com os resultados obtidos na seção anterior, temos imediatamente a prova da finitude e unicidade de o(π), para toda derivação π. 82 2.4.1 DEFIN IÇÃO: O Ordinal o(π) Seja π uma derivação em C'. Definimos o ordinal natural o(π) associado a π como: o(π)= p(π*)+ 1. 2.4.1.1 OBSERVAÇÃO: Estamos somando 1 ao peso de π* apenas por uma questão de compatibilização com a definição do comprimento da pior seqüência de redução (lp(π)), pois temos que se π1 é normal, lp(π1)= 1 e p(π1*)= 0. Encerraremos esta seção demonstrando que, para toda derivação π, o(π) é único e finito. 2.4.2 TEOREMA: Existência, Finitude e U nicidade de o(π) Para qualquer derivação π em C', o(π) está definido, é único e finito. PROVA: Os Comentários 2.3.7.1-(a) e (b), e o Teorema 2.3.12 garantem que, para cada derivação π, π* existe e é única. Logo, pela Definição 2.4.1, o(π) existe e é único para toda derivação π. Como a seqüência estrela que produziu π* a partir de π é finita (Teorema 2.3.12), e a multiplicação-*, executada a cada passo da seqüência, é uma operação finitária (Observação 2.3.3.1-(f)), então é claro que se π é uma derivação finita, π* também o é. Logo, sendo finita, π* possui um número finito de ocorrências de fórmulas e, portanto, p(π*)< ω. Assim, pela Definição 2.4.1 é claro que o(π)< ω. ♦ 83 Capítulo III O ordinal o(π) diminui com as reduções e coincide com o comprimento lp(π) da pior seqüência de redução para π Neste capítulo provaremos que a atribuição numérica o(π), cuja finitude e unicidade para cada derivação π foram provadas no capítulo anterior, possui a propriedade fundamental de diminuir com as reduções, constituindo-se, portanto, no que estamos chamando de ordinal natural para as derivações do sistema C'. Provaremos também que, para toda derivação π, o(π) coincide com lp(π), o comprimento da pior seqüência de redução para π, sendo portanto o menor ordinal natural para as derivações de C'. A partir destes resultados obteremos provas bastante simples para o Teorema de Normalização Forte e Teorema de Church-Rosser para C', concluindo assim os resultados desta tese referentes a este sistema. Vamos inicialmente apresentar um esboço de como produzimos a prova de que o(π) diminui com as reduções. Tal esboço será útil para entendermos o percurso da longa série de resultados estruturais sobre derivações que apresentamos neste capítulo. A prova de que o(π) diminui com as reduções (π→π' ⇒ o(π)> o(π')) foi produzida por indução em p(π*)= o(π) –1 e desenvolvida por casos, conforme a posição da FM reduzida em π→π' com relação a F(π). Tendo como foco F(π), podemos dizer que π, uma derivação qualquer de C', possui 4 formas básicas possíveis que representarão os 4 casos fundamentais da nossa prova. São elas: (a) π ≡ π π π 1 2 3 A A B A B B k k [ ] ⊃ , onde A⊃B é F(π) e é OMπ. (b) π ≡ 3 2 1 B BA B A π ⊃ π π , onde A⊃B é F(π) e não é OMπ. 87 (c) π ≡ π π π 1 2 3 A B A B B ∧ , onde A∧B é F(π). (d) π ≡ 2 t xx a 1 A A A π ∀ π , onde ∀xAx é F(π). Em cada um destes casos podemos ter que π' foi obtida de π por redução de uma fórmula máxima que ocorre em π1, π2, π3, ou pela redução de F(π). Portanto, para cada um destes 4 casos de π temos 4 possíveis subcasos para analisar. 27 Para resolvermos todos estes subcasos, tendo em vista que a prova será feita por indução em p(π*), precisamos apresentar uma caracterização de π* a partir de π, e de π *, a partir de π , onde π  é a derivação obtida de π através da redução de F(π). O Teorema 3.2.8 apresentará tal caracterização quando π é como em (b), (c) ou (d) descritos acima. Este resultado, juntamente com o resultado do Teorema 3.2.9, que relacionará p(π*) com p(π *), são suficientes para resolvermos todos os subcasos dos casos em que π é como em (b), (c) ou (d), na prova de que o(π) diminui com as reduções. Para resolvermos o caso em que π é como em (a), provaremos que π∆ ≡ 3 2 1 B BA B ]A[ A π ⊃ π π , obtida de π através da multiplicação-* de F(π)= A⊃B é tal que π* ≡ π∆*. Se provarmos isso, como F(π∆)= A⊃B não é OMπ∆, temos que π∆ tem a forma de π do caso (b), e portanto estamos reduzindo este caso ao caso anterior. Fazendo isso conseguimos tratar o caso de derivações com a forma de (a) na prova de que o(π) diminui com as reduções. 27 É claro que como π3 não é subárvore de π quando π é como em (d), neste caso só temos três subcasos para analisar: ou a FM reduzida em π→π' ocorre em π1, ou em π2, ou é ∀xA(x). 88 Diante disso, dividiremos este capítulo em 4 seções principais: na primeira seção, apresentamos uma série de resultados técnicos, que representam os argumentos que serão mais freqüentemente utilizados nas provas dos teoremas do capítulo. Na segunda seção, apresentamos uma longa série de resultados que culmina com os Teoremas 3.2.8 e 3.2.9 de que falamos acima. Na terceira seção, o objetivo é apresentar uma caracterização para a forma de π* quando π é como em (a), provando, como dissemos, que π* ≡ π∆*. Na quarta seção, com todos os requisitos necessários já demonstrados, obtemos finalmente os resultados fundamentais deste capítulo, que descrevemos no primeiro parágrafo acima. §1 Resultados Auxiliares O objetivo dessa seção é apresentar uma série de resultados auxiliares que representam argumentos que serão utilizados recorrentemente nas provas deste capítulo. O primeiro teorema estabelece que ser OM em uma subárvore completa de uma derivação, é o mesmo que ser OM na derivação. 3.1.1 TEOREMA: Seja π uma derivação, π1 uma subárvore completa de π e φ uma ocorrência em π1 distinta de r(π1). Então: φ é OMπ1 ⇔ φ é OMπ PROVA: •(⇒) Como φ é OMπ1, então φ satisfaz os 4 itens da Definição 2.3.1 em π1, sendo imediato que φ também satisfaz trivialmente estes mesmos itens em π.   •(⇐) Veremos que φ satisfaz os 4 itens da Definição 2.3.1 de ocorrência multiplicativa em π1. Item (1): Provaremos que φ é OPπ1 (i) Se φ é OMπ, então φ é OPπ. (ii) Como π1 é subárvore completa de π, então, pelo Teorema 2.2.10-(1), temos que nlπ(π1)= 0. 89 Por hipótese, φ ocorre em π1 e é distinta de r(π1), portanto, por (i) e (ii) temos que φ é OPπ1. Item (2): Provaremos que φ é PM de (⊃E) em π1 Como φ é OMπ, φ é PM de regra de (⊃E) em π. Como φ é OPπ1 (pelo Item 1), a regra na qual φ é PM ocorre integralmente em π1. Assim, φ é PM de (⊃E) em π1. Item (3): Provaremos que a regra que gera ocorrência associada a φ corta top-fórmula de π1 Como φ é OMπ, a regra R de introdução que gera ψ= assπ(φ) corta alguma top- -fórmula de π. Como φ é OPπ1, ψ e R ocorrem em π1 e ψ= assπ1(φ). Como π1 é subárvore completa de π, as top-fórmulas cortadas por R também ocorrem em π1. Portanto, a regra R de introdução que gera ψ= assπ1(φ) corta top-fórmula de π1. Item (4): Provaremos que a premissa menor ao lado de φ em π1 não é hipótese aberta Seja ψ φ ξ a regra (⊃E) de π onde φ é PM. Como, por hipótese, φ não é r(π1), então, ξ também ocorre em π1. Como π1 é subárvore completa de π e ξ ocorre em π1, ψ e tudo o que ocorre acima de ψ também ocorre em π1. Portanto: (iii) ∇π(ψ)= ∇π1(ψ). Assim, como φ é OMπ, temos lπ(∇π(ψ))> 1 ou ∇π(ψ) é top-fórmula cortada. Portanto, por (iii) temos: lπ1(∇π1(ψ))> 1 ou ∇π1(ψ) é top-fórmula cortada. ♦ 28 No próximo teorema, provamos um resultado importante para começarmos a caracterizar a forma das derivações estrela a partir da derivação original. 28 Quando φ é OM do tipo 2 em π, ψ, a premissa menor ao lado de φ, pode ter sido cortada por uma regra que não ocorre em π1. Poder-se-ia então argumentar que em π1, ψ é hipótese aberta. No entanto, as nossas definições de subárvore e subárvore completa são definições sintáticas que copiam sintaticamente os sinais de corte das hipóteses mesmo que as regras não estejam presentes. π1 é neste contexto uma subárvore, e como subárvore pode possuir sinais de corte de regras que não pertencem a π1. 90 3.1.2 TEOREMA: Sejam π uma derivação e π1 uma subárvore completa de π. Se T (π) está em π1 e não é r(π1), então, T (π)= T (π1) e π• é obtido de π substituindo-se π1 por π1•. PROVA: Pela Definição 2.3.6 é claro que T (π) é OMπ, logo, como por hipótese T (π) ≠ r(π1) ocorre em π1, que é subárvore completa de π, pelo Teorema 3.1.1 temos que T (π) é OMπ1. Ou seja, a condição (1) da Definição 2.3.6 de ocorrência estrela é satisfeita por T (π) em π1. (i) Como T (π) é OMπ1 e π1 é subárvore de π, é claro que não existe OMπ1 com grau maior que T (π), nem de mesmo grau, cuja ocorrência associada tenha posição maior que a ocorrência associada a T (π). Portanto, T (π)= T (π1). (ii) Além disso, como T (π) é OMπ1, temos também que tanto as top-fórmulas cortadas pela regra que gerou a ocorrência associada a T (π), como toda a subárvore da premissa menor de T (π), estão em π1. Sabemos que π• é obtido pela multiplicação-* em π de T (π). Mas, por (ii), temos que todas as alterações que a multiplicação-* de T (π) provocam em π são internas a π1. Como por (i) T (π)= T (π1), então fazer a multiplicação-* de T (π) em π é o mesmo que fazer a multiplicação-* de T (π1) em π1. Ou seja, o resultado da multiplicação-* de T (π) em π (que é π•) é a substituição de π1 por π1•. ♦ 3.1.2.1 EXEMPLO: Seja π ≡ A . Temos que π e π π π 1 2 1 são dos tipos: π1 ≡ A C CB ]B[ B 5 4 k 3 π ⊃ ππ e π ≡ π π π π 3 4 5 2 B B B C C A k[ ] ⊃ onde B⊃C é T (π) e T (π1). Assim, temos: 91 π1• ≡ B B B C C A π π π 3 4 5 [ ] ⊃ e π• ≡ B B B C C A π π π π 3 4 5 2 [ ] ⊃ . Logo, π2 ≡ . 2 1 A π π• A definição seguinte formaliza a Definição 1.5.1, de F(π), utilizando para isto a Definição 2.2.7, de posição de uma ocorrência em uma derivação. 3.1.3 DEFIN IÇÃO: F(π) Seja π uma derivação e ψ uma ocorrência de fórmula em π. Temos: ψ= F(π) ⇔ posπ(ψ)= min{posπ(φ) / φ é FM em π} . 3.1.3.1 OBSERVAÇÃO: Denotaremos por π  a derivação obtida de π pela redução de F(π). No teorema seguinte, continuamos estabelecendo propriedades sobre a forma de derivações da seqüência estrela. 3.1.4 TEOREMA: Seja π ≡ A tal que pos π π 1 2 π(F(π)) ≥ posπ(A) e φ uma OPLπ(π2). Então: (1) π2 ≡ π π π 3 5 A B 4 , tal que ψ= assπ(φ)= assπ2(φ) ocorre em π3; (2) φ é OMπ ⇔ φ é OMπ2; (3) φ é T (π) ⇒ φ é T (π2); 92 (4) φ é T (π) ⇒ π• ≡ . •π π 2 1 A 29 PROVA: Item (1) Seja ψ= assπ(φ). Se φ é OPLπ(π2), então, por 2.2.9.1-(a), tem que haver um segmentoα totalmente definido em π2, do qual φ e ψ sejam ocorrências. Pela Observação 2.1.13-(e), deve haver uma ou mais FMs ocorrendo entre ψ e φ. Ou seja, ψ e φ têm que estar em um ramo de π2 no qual ocorram FMs. Como posπ(F(π)) ≥ posπ(A), então não existe nenhuma FM em π2 que ocorra abaixo ou à direita de A em π2. Logo, se ξ é FM em π2 temos que π2 pode ser escrita como: π2 ≡ π π π 3 5 A B 4 , onde ξ ocorre em π3. Em particular, isto vale para as FMs entre ψ e φ. Se ξ, FM entre ψ e φ ocorre em π3, então, ψ ocorre em π3, pois ψ ocorre acima de ξ.   Item (2) Pelo Item (1) temos que π e π2 têm as formas: π2 ≡ π π π 3 5 A B 4 e π ≡ 5 4 1 3 B A π π π π , e que ψ= assπ(φ)= assπ2(φ) ocorre em π3. É fácil ver, por inspeção nas cláusulas da Definição 2.3.1 de OM , que, como ψ= assπ(φ)= assπ2(φ) ocorre em π3, então o que ocorre acima de A, top-fórmula de π4, não interfere nas cláusulas da definição de φ como OM . Portanto: φ é OMπ ⇔ φ é OMπ2.   Item (3) Como φ é T (π), então φ é OMπ. 29 A hipótese destacada A, de π2•, é (A)1, a única cópia-* da hipótese destacada A de π2. 93 Logo, pelo Item (2), φ é OMπ2. Como φ= T (π) é OMπ2 e π2 é subárvore de π, é claro que não existe outra OMπ2 com grau maior que φ, nem ocorrência de mesmo grau com posição maior que φ. Portanto, φ= T (π)= T (π2).   Item (4) Pelo Item (1) temos que π2 ≡ π π π 3 5 A B 4 , onde ψ= assπ(φ)= assπ2(φ) ocorre em π3. (i) Neste caso, temos que todas as top-fórmulas que a regra que gera ψ corta estão em π3. Analisemos dois casos: ou φ também ocorre em π3, ou φ ocorre em π5. Vejamos: CASO 1: φ ocorre em π3 Neste caso, como π3 é subárvore completa de π, pelo Teorema 3.1.2 temos: π2• ≡ 5 43 B A π ππ• e π• ≡ 5 4 1 3 B A π π π π• . Logo, π• ≡ . •π π 2 1 A CASO 2: φ ocorre em π5 Neste caso, pelo Item (3), temos que φ é T (π2). Além disso, a multiplicação-* de φ, tanto em π2 quanto em π, retira a subárvore da premissa menor de φ, em π5, e a copia sobre cada hipótese que ψ corta em π3. Temos: π5 ≡ π π π 7 6 8 C B C D D ⊃ , onde C⊃D é φ= T (π)= T (π2). Além disso, π3 ≡ , onde as hipóteses destacadas são cortadas pela regra de π [ ]C k π3 3 que gera ψ, ocorrência associada a φ. Dessa forma temos: 94 (ii) π2 ≡ π π π π π 7 3 4 6 8 C C A B C D D k[ ] ⊃ e π2• ≡ C C A B C D D π π π π π 7 3 4 6 8 [ ] ⊃ ; e (iii) π ≡ π π π π π π 7 3 1 4 6 8 C C A B C D D [ ] ⊃ e π• ≡ C C A B C D D π π π π π π 7 3 1 4 6 8 [ ] ⊃ . Assim, por (ii) e (iii) temos: π• ≡ . ♦ •π π 2 1 A O lema seguinte, que já usamos informalmente nas demonstrações dos Itens (3) e (4) acima, é conseqüência imediata da Definição 2.2.7 de posição, e estabelece que posições relativas entre ocorrências de fórmulas em uma subárvore e uma derivação que contém a subárvore, não se alteram. 3.1.5 LEMA: Se φ e ψ são duas ocorrências de fórmula em π1, uma subárvore qualquer de uma derivação π2. Então: posπ2(φ)< posπ2(ψ) ⇔ posπ1(φ)< posπ1(ψ). PROVA: Imediata, pela Definição 2.2.7. ♦ O teorema seguinte estabelece que a substituição de uma subárvore cuja raiz tem posição maior que F(π) não altera a F da derivação resultante. 95 3.1.6 TEOREMA: Seja π uma derivação do tipo: π ≡ . Seja π π π 1 2 A ∇ obtida de π pela substituição de π1 por uma derivação qualquer tal que π π3 A ∇ ≡ . Se φ= F(π) ocorre em π π π 3 2 A 2 e posπ(A)> posπ(φ), então φ= F(π∇). PROVA: Note que na passagem de π para π∇ a única ocorrência em π2 cuja regra que a gera pode ter sido alterada é A, ligação entre π1 e π2 e entre π1 e π3. Dessa forma, é claro que se ψ ≠ A ocorre em π2 temos: (i) ψ é FM em π ⇔ ψ é FM em π2. (ii) ψ é FM em π∇ ⇔ ψ é FM em π2. Como φ= F(π) e posπ(A)> posπ(φ), é claro, pela Definição 3.1.3 e por (i), que: (iii) ψ é FM em π2 ⇒ posπ(φ) ≤ posπ(ψ) pos 5.1.3 ⇒ π2(φ) ≤ posπ2(ψ). Como π2 é subárvore de π∇ temos: (iv) ψ é FM em π2 pos)iii(⇒ π2(φ) ≤ posπ2(ψ) pos5.1.3⇒ π∇(φ) ≤ posπ∇(ψ). Como A é r(π3), então é claro pela Definição 3.1.3 de posição que A tem posição menor que qualquer ocorrência em π3, ou seja: (v) ξ ocorre em π3 ⇒ posπ3(ξ) ≥ posπ3(A) pos5.1.3⇒ π∇(ξ) ≥ posπ∇(A). Para ζ, uma ocorrência qualquer em π∇, é claro que: (vi) ζ é FM em π∇ ⇒ ζ é FM em π2 ou ζ ocorre em π3. Além disso, como, por hipótese, posπ(A)> posπ(φ) e A e φ ocorrem em π1, que é subárvore tanto de π quanto de π∇, então, pelo Teorema 3.1.5, temos que posπ1(A)> posπ1(φ) e: (vii) posπ∇(A)> posπ∇(φ). Assim, por (v) e (vii) temos: (viii) ξ ocorre em π3 ⇒ posπ∇(ξ)> posπ∇(φ). Logo, por (iv), (vi) e (viii) temos: (ix) ζ é FM em π∇ ⇒ posπ∇(ξ) ≥ posπ∇(φ). 96 Note, por (ii), que φ ≠ A é FM em π∇. Logo, por (ix) e pela Definição 3.1.3, temos que φ é F(π∇). ♦ O Teorema seguinte estabelece mais dois importantes resultados auxiliares. 3.1.7 TEOREMA: (1) Se φ é OMπ e gr(φ) ≥ gr(F(π)), então posπ(φ) ≥ posπ(F(π)). (2) Se T (π)= F(π), então ng(π)= 1. PROVA: Item (1) Seja ψ uma OPπ. Vamos provar o item por contraposição. Ou seja, vamos provar que: (*) posπ(ψ)< posπ(F(π)) ⇒ gr(ψ)< gr(F(π)). Seja ρ= A1, ... , Ak, ... , An o segmento-α ao qual F(π) pertence, e seja Ak= F(π). Como, pela Definição 3.1.3, não existe FM com posição menor que F(π) em π, se ψ é OPπ e posπ(ψ)< posπ(F(π)), é claro que ψ é algum Ai de ρ, com (k< i ≤ n), e neste caso a prova de (*) é trivial a partir dos Teoremas 2.1.18 e 2.1.19.   Item (2) Para provar que ng(π)= 1, temos que provar que: (*) ψ ≠ F(π) é OMπ ⇒ gr(ψ)< gr(F(π)). Como F(π) é FM em π, é claro que: assπ(F(π))= F(π), logo: (i) posπ(assπ(F(π)))= posπ(F(π)). Como ψ ≠ F(π) temos dois casos para analisar: ou posπ(ψ)> posπ(F(π)), ou posπ(ψ)< posπ(F(π)). CASO 1: posπ(ψ)> posπ(F(π)) É fácil ver, pela Definição 2.1.13 de ocorrência associada, que: (ii) posπ(assπ(ψ)) ≥ posπ(ψ). Assim, por (i), (ii) e pela hipótese deste caso temos: (iii) posπ(assπ(ψ)) > posπ(assπ(F(π))). 97 Como, por hipótese, F(π) é T (π), por (iii) e pela Definição 2.3.6 de T (π), é claro que gr(ψ)< gr(F(π)). Caso contrário F(π) não seria T (π). CASO 2: posπ(ψ)< posπ(F(π)) É imediato pelo Item (1), por contraposição, que gr(ψ)< gr(F(π)). ♦ 3.1.8 TEOREMA: Seja π uma derivação não normal em C', φ uma OPπ e ψ= assπ(φ). Então: posπ(ψ) ≥ posπ(F(π)). PROVA: É imediato pelas Definições 2.1.9 e 2.1.10 que, se (ψ,φ) é um par-α em π com ψ= assπ(φ), então: (i) ou ψ e φ são a mesma ocorrência de uma FM ; (ii) ou ψ ocorre acima de φ em π e existe pelo menos uma FM entre ψ e φ. Por (i) e (ii) é claro que se ψ= assπ(φ), então: (iii) Existe uma FM ξ em π tal que posπ(ξ) ≤ posπ(ψ) (iv) Como, pela Definição 3.1.3 temos: ξ é FM em π ⇒ posπ(F(π)) ≤ posπ(ξ), então, por (iii) e (iv) temos: posπ(ψ) ≥ posπ(F(π)). ♦ 3.1.9 DEFIN IÇÃO: π∆ Seja π uma derivação em C'. Definimos π∆ como a derivação obtida de π pela multiplicação-* de F(π). Se F(π) não for OMπ, então dizemos que π∆ ≡ π. 3.1.9.1 EXEMPLO: Se π ≡ 3 k 2 k 1 B BA B ]A[ A π ⊃ π π , onde A⊃B é F(π), então: π∆ ≡ 3 2 1 B BA B ]A[ A π ⊃ π π . 98 Se π ≡ 3 2 1 B BA B A π ⊃ π π , onde A⊃B é F(π), então: π∆ ≡ 3 2 1 B BA B A π ⊃ π π ≡ π. 3.1.9.2 OBSERVAÇÃO: Note, pelas formas de π e π∆, que se π∆ difere de π, ela difere apenas em subárvores cujas raízes têm posição maior que a posição de F(π). Dessa forma, pelo Teorema 3.1.6, A⊃B é F(π∆). 3.1.10 TEOREMA: Seja π ≡ 3 k 2 k 1 B BA B ]A[ A π ⊃ π π , onde A⊃B é F(π) e π∆ ≡ 3 2 1 B BA B ]A[ A π ⊃ π π , como definidos acima. Então, não existe em π∆ top-fórmula de π1 cortada por regra externa a π1 cuja conseqüência tenha posição maior que a posição de A⊃B= F(π∆) em π∆. PROVA: Note, pela forma de π, que se em π existe alguma top-fórmula de π1 que é cortada por regra que ocorre fora de π1, então esta regra ocorre em π3 e sua conseqüência ocorre abaixo de B. Caso contrário não haveria ramo de π ligando a top-fórmula cortada em π1 com a regra que a cortou. Mas como A⊃B= F(π) ocorre imediatamente acima de B, é claro, pela Observação 2.2.7.1-(c), que a conseqüência desta regra possui posição menor que a posição de A⊃B= F(π) em π. Considere ψ uma ocorrência em π que é conseqüência de regra externa a π1 e que corta top-fórmula de π1 em π. Podemos então dizer que: (i) posπ(ψ) < posπ(B). 99 Também é claro, pela forma de π, que qualquer ocorrência com posição menor que a posição de F(π) em π, ocorre em π3. Logo, ψ ocorre em π3, portanto, pelo Teorema 3.1.5 e por (i) temos: (ii) posπ3(ψ)< posπ3(B). Mas a multiplicação-* que produz π∆ a partir de π apenas retira π1 de uma posição e copia para outras, sem modificar π1 nem outras marcas de corte além das relacionadas com a ocorrência que foi multiplicada (A⊃B no caso). Assim, em π∆, as únicas ocorrências que são conseqüências de regras que não estão em π1 e que cortam hipóteses de π1 são os resíduos-* das ocorrências em π que são conseqüência de regras que não estão em π1 e que cortam hipóteses de π1. (iii) Ou seja, todas as ocorrências em π∆ que cortam hipóteses de π1 e ocorrem fora das cópias de π1, são as cópias-* de ocorrências do tipo de ψ descrito acima. Mas pela Definição 2.3.9 de cópia-*, como A⊃B é a ocorrência multiplicada em π →* π∆, temos que (ψ)1 e (B)1, as únicas cópias-* de ψ e B em π∆, são as próprias ocorrências ψ e B em π3. Logo, como π3 é subárvore de π∆, por (ii) e pelo Teorema 3.1.5, temos: (iv) posπ∆(ψ)< posπ∆(B). Como A⊃B é F(π∆), e posπ∆(A⊃B)> posπ∆(B), então, por (iv) temos: (v) posπ∆(ψ)< posπ∆(F(π)). Assim, por (iii) e (v) temos que não existe em π∆ top-fórmula de π1 cortada por regra externa a π1 cuja conseqüência tenha posição maior que a posição de A⊃B=F(π∆) em π∆. ♦ O teorema que segue estabelece alguns resultados triviais sobre derivações normais. 3.1.11 TEOREMA: (1) π é normal ⇔ p(π)= 0. (2) π é normal ⇒ π ≡ π*. (3) π é normal ⇔ p(π*)= 0. PROVA: Item (1) π é normal ⇔ π não tem ocorrência de fórmula máxima (FM). π não tem FM ⇔ π não tem segmento-α. 100 π não tem segmento-α ⇔ π não tem ocorrência pesada (OP). π não tem OP ⇔ p(π)= 0. Portanto, π é normal ⇔ p(π)= 0.   Item (2) Pelo Item 1, se π é normal, então p(π)= 0. Se p(π)= 0, então, π não tem ocorrência pesada (OP). Se π não tem OP, então π não tem ocorrência multiplicativa (OM). Se π não tem OM , então π é derivação estrela e portanto π ≡ π*.   Item (3) (i) Pelos Itens (1) e (2), π é normal ⇒ p(π*)= 0. (ii) Pelo Teorema 2.3.10-(7), p(π*) ≥ p(π). (iii) Então, por (ii), p(π*)= 0 ⇒ p(π)= 0. (iv) Pelo Item (1), p(π)= 0 ⇒ π é normal. (v) Portanto, por (i), (iii) e (iv), p(π*)= 0 ⇔ π é normal. ♦ §2 Resultados sobre Derivações nas quais F(π) não é FM multiplicativa Os resultados principais desta seção são apresentados nos dois últimos teoremas: os Teoremas 3.2.8 e 3.2.9. Neles estabelecemos relações importantes sobre o formato da derivação estrela e sobre o peso da derivação estrela para derivações π onde F(π) não é FM multiplicativa. Todos os demais resultados desta seção são importantes apenas na medida em que são necessários para a obtenção de 3.2.8 e 3.2.9. Simplificaremos os resultados desta seção dando uma caracterização única para os três tipos de derivações nas quais F(π) não é uma FM multiplicativa. 3.2.1 Caracterização Ú nica para Derivações com F(π) N ão Multiplicativa. Uma derivação π tem F(π) não multiplicativa quando π tem a forma: 101 π ≡ , onde: π π π 1 1 2 2 3 B B • B1 e B2, a menos de parâmetros, são ocorrências da mesma fórmula B, sendo os índices apenas para distinção de referência. • F(π)= F(π2) e π2 é uma derivação com uma das três formas abaixo: (a) π2 ≡ π4 1 2 A B A B B ⊃ (b) π2 ≡ π4 1 2 A B A B B ∧ (c) π2 ≡ Ba x x t 1 2 B B ∀ . Ou seja: (a) π2 ≡ π4 1 2 A B A B B ⊃ ⇒ π ≡ π π π 4 1 1 2 3 A B A B B ⊃ , onde A⊃B é F(π). (b) π2 ≡ π4 1 2 A B A B B ∧ ⇒ π ≡ π π π 4 1 1 2 3 A B A B B ∧ , onde A∧B é F(π). (c) π2 ≡ Ba x x t 1 2 B B ∀ ⇒ π ≡ π π 1 Ba x x t 1 2 3 B B ∀ , onde ∀xBx é F(π). Para todos os teoremas desta seção consideraremos que π é uma derivação do tipo descrita em 3.2.1 acima. O primeiro teorema que apresentaremos estabelece a forma de π  (a derivação obtida de π através da redução de F(π)) quando π é como descrito acima. 102 3.2.2 TEOREMA: A menos de parâmetros, π  ≡ B . π π 1 2 3 PROVA: Como π  é obtida de π pela redução de F(π), o resultado segue, imediatamente, a partir da Caracterização 3.2.1. ♦ 3.2.3 TEOREMA: Se φ é OPnLπ(π3) e ψ= assπ(φ), então ψ ocorre em π1. PROVA: (i) Pelo Teorema 2.2.10-(2), temos que φ ocorre em π3 e ψ ocorre em π1 ou π2. Mas pelas formas de π e π2 em 3.2.1 é claro que ψ não pode ocorrer em π2 e, portanto, ψ ocorre em π1. ♦ O teorema seguinte estabelece relações entre π e π  no que diz respeito a ocorrências pesadas e multiplicativas. 3.2.4 TEOREMA: Se φ e ψ são ocorrências de fórmulas em π que ocorrem em π1 ou em π3, então: (1) posπ(φ)< posπ(ψ) ⇒ posπ (φ)< posπ (ψ). (2) (φ é OPπ), com ψ= assπ(φ) ⇔ (φ é OPπ ), com ψ= assπ (φ). (3) φ é OPnLπ(π3), com ψ= assπ(φ) ⇔ φ é OPnLπ (π3), com ψ= assπ (φ). (4) (φ é OMπ) ⇔ (φ é OMπ ). (5) φ= T (π) e ψ= assπ(φ) ⇒ φ= T (π ) e ψ= assπ (φ). PROVA: Item (1) Imediata pelas formas de π e π , e pelo Teorema 3.1.5.   Itens (2) e (3) Se φ é OPLπ1(π) ou OPLπ3(π) o resultado é imediato, porque tanto π1 quanto π3 são subárvores de π e π  e, portanto, φ é OPLπ1(π ) ou OPLπ3(π ). 103 Se φ é OPnLπ3(π), então, pelo Teorema 3.2.3, φ ocorre em π3 e ψ ocorre em π1. Além disso, pelo Teorema 2.2.10-(3), φ e ψ pertencem a um segmento-α ρ que atravessa π2 e possui F(π), a FM reduzida em π → π . Mas pelas Definições 2.1.9 e 2.1.10 é claro que a redução de uma FM em um segmento-α de comprimento maior que 1 não altera os demais pares-α, do segmento. Ou seja, se π → π' pela redução de FM Ak então: ρ= A1, ..., Ak-1, Ak, Ak+1, ..., Am é segmento-α em π se, e somente se, ρ = A1, ..., Ak-1, Ak+2, ..., Am é segmento-α em π'. Assim, φ é OPnLπ3(π) se, e somente se, φ é OPnLπ3(π ).   Item (4) Dividiremos em casos, conforme a subárvore em que φ ocorre. CASO 1: φ ocorre em π1 Como π1 é subárvore completa de π e π , pelo Teorema 3.1.1 temos: (i) φ é OMπ  ⇔ φ é OMπ1. (ii) φ é OMπ ⇔ φ é OMπ1. Logo, por (i) e (ii) temos: φ é OMπ ⇔ φ é OMπ . 30 CASO 2: φ ocorre em π3 Analisemos dois subcasos: ou φ é OPLπ(π3), ou é OPnLπ(π3). SubCaso 2.1: φ é OPLπ(π3) Pelas formas de π e π  e pelo Teorema 3.1.4-(2) temos: (iii) φ é OMπ  ⇔ φ é OMπ3. (iv) φ é OMπ ⇔ φ é OMπ3. Portanto, por (iii) e (iv) temos: φ é OMπ ⇔ φ é OMπ . SubCaso 2.2: φ é OPnLπ(π3) Pelos Itens (2) e (3) temos: (v) φ é OPnLπ(π3) ⇔ OPnLπ (π3). 30 Note, neste caso, que se a premissa menor que ocorre ao lado de φ é cortada por regra que não ocorre em π1, então, ela é cortada por regra de π3, e neste caso, tanto em π quanto em π   esta regra ocorre e corta de fato a premissa. 104 (vi) ψ= assπ(φ) ⇔ ψ= assπ (φ). Como φ ocorre em π3 e π3 é subárvore tanto de π quanto de π , temos: (vii) φ é PM de (⊃E) em π ⇔ φ é PM de (⊃E) em π . (viii) Pelo Teorema 3.2.3, ψ ocorre em π1. (ix) Além disso, π1 é subárvore completa de π e π . (x) Por (viii) e (ix), a regra R que gera ψ, tanto em π quanto em π , é regra de π1. Portanto, por (viii), (ix) e (x) temos: R corta top-fórmula em π ⇔ R corta top-fórmula em π . Ou seja: (xi) A regra que gera ψ= assπ(φ) corta top-fórmula de π ⇔ A regra que gera ψ= assπ (φ) corta top-fórmula de π . Seja ξ a premissa menor da regra em que φ é PM em π3. Como φ é OPnLπ(π3) e OPnLπ (π3), é claro que a única ligação de π3 não ocorre em ∇π3(ξ), então: (xii) ∇π(ξ) ≡ ∇π3(ξ) ≡ ∇π (ξ). Assim, por (v), (vii), (xi) e (xii) temos que φ satisfaz todos os itens da Definição 2.3.1 de ocorrência multiplicativa em π se, e somente se, ela satisfaz em π . ♦ Item (5) Imediata, pelos Itens (1), (4) e pela Definição 2.3.6 de Ocorrência Estrela. ♦ 3.2.5 TEOREMA: Para toda derivação π que satisfaz 3.2.1 temos: (1) nlπ(π3)= nlπ (π3). (2) nlπ(π2)= 0. PROVA: Item (1) Imediata pelo Teorema 3.2.4-(3).   Item (2) (i) A única OPπ2 que não ocorre em π4 é F(π2), que é FM em π2 e, portanto, OPLπ(π2). 105 (ii) Como π4 é subárvore completa de π2 e de π, todas as OPπ4 são locais. Logo, por (i) e (ii) temos que π2 não possui OP não locais. Logo: nlπ(π2)= 0. ♦ O teorema seguinte apresenta uma caracterização de π2* a partir de π2. 3.2.6 TEOREMA: (1) π2 ≡ π4 1 2 B A B B ⊃A ⇒ π2* ≡ 2 14 B BA B A ⊃ ∗π , onde F(π2*)= A⊃B. (2) π2 ≡ π4 1 2 A B A B B ∧ ⇒ π2* ≡ 2 1 4 B BA BA ∧ ∗π , onde F(π2*)= A∧B. (3) π2 ≡ Ba x x t 1 2 B B ∀ ⇒ π2* ≡ Ba x x t 1 2 B B ∀ , onde F(π2*)= ∀xBx (π2 é estrela). PROVA: Itens (1) e (2) Seja π2•n ≡ π2*. Provaremos por indução em n. BASE: n= 0. Neste caso π2 ≡ π2•0 ≡ π2*, então π2 é derivação estrela. Logo, π4 também é estrela (π4 ≡ π4*). Portanto o resultado é imediato. PASSO: n> 0. HI: Se Σ é uma derivação com a forma descrita em (1) ou (2) acima e Σ•m ≡ Σ* tal que m< n, então vale o teorema para Σ. Considere a derivação π2• da seqüência estrela para π2. (i) Pelas Observações 2.3.7-(f) e (h) é claro que π2* ≡ π2•n ≡ (π2•)•n-1 ≡ π2•*. 106 Mas π2• é obtida de π2 pela multiplicação-* de T (π2). Como nas duas alternativas de π2, F(π2) não é OMπ2, então, T (π2), se existir, só pode estar em π4. Como π4 é subárvore completa de π2 e r(π4) não é OPπ2 (r(π4) não é premissa maior de eliminação), então, pelo Teorema 3.1.2, T (π2)= T (π4) e (ii) π2• ≡ 2 14 B BA B A ⊃ π• ou π2• ≡ 2 1 4 B BA BA ∧ π• . Por (i) e (ii) temos que vale para π2• a hipótese indutiva, logo: (iii) (π2•)* ≡ 2 14 B BA B A )( ⊃ ∗π• , onde A⊃B= F((π2•)*) ou (π2•)* ≡ 2 1 4 B BA BA )( ∧ ∗π• , onde A∧B= F((π2•)*). Pela Observação 2.3.7.1-(f) temos: (iv) (π2•)* ≡ π2* e (v) (π4•)* ≡ π4*. Portanto, por (iii), (iv) e (v) temos: π2 ≡ π4 1 2 A B A B B ⊃ ⇒ π2* ≡ 2 14 B BA B A ⊃ ∗π , onde F(π2*)= A⊃B ou π2 ≡ π4 1 2 A B A B B ∧ ⇒ π2* ≡ 2 1 4 B BA BA ∧ ∗π , onde F(π2*)= A∧B.   Item (3) Imediato, pois π2 ≡ π2*. ♦ 107 Antes de demonstrarmos o teorema mais importante desta seção enunciaremos mais um resultado auxiliar, de demonstração trivial, que será usado em sua demonstração. 3.2.7 LEMA: Se π é uma derivação estrela, então, π  é estrela. ♦ O teorema seguinte juntamente com um seu corolário imediato são os mais importantes desta seção. Ele estabelece não só uma caracterização para a forma da derivação estrela correspondente a uma derivação π, onde F(π) não é multiplicativa (descrita em 3.2.1), como também assegura a importante identidade sintática entre π * e π* , que será fundamental para a obtenção da igualdade entre o(π) e lp(π). Provaremos nele que, para cada tipo de π2 temos: (a) π2 ≡ π4 1 2 A B A B B ⊃ ⇒ π* ≡ π π π 4 5 1 2 6 ∗ ⊃A B A B B , onde F(π*)= A⊃B. (b) π2 ≡ π4 1 2 A B A B B ∧ ⇒ π* ≡ π π π 4 5 1 2 6 ∗ ∧ A B A B B , onde F(π*)= A∧B. (c) π2 ≡ Ba x x t 1 2 B B ∀ ⇒ π* ≡ π π 5 6 Ba x x t 1 2 B B ∀ , onde F(π*)= ∀xBx. Além disso, nos três casos, π * ≡ π*  ≡ B . π π 5 2 6 Observamos que π5 e π6 são as subárvores em que π1 e π3 se transformaram através dos passos da seqüência estrela de π. Não nos interessa saber exatamente como elas são. O 108 que interessa é saber que π*, π *, π*  e F(π*) estão relacionadas da maneira como descrito acima. 3.2.8 TEOREMA: Se π é como em 3.2.1, então: π* ≡ , onde F(π*)= F(π2*) e π π π π 5 1 2 2 6 B B ∗  * ≡ π*  ≡ B . π π 5 2 6 PROVA: Seja π•n ≡ π*. Provaremos por indução em n. BASE: n= 0 (i) Então π* ≡ π•0 ≡ π (π é derivação estrela). (ii) Como π2 é subárvore de π, então π2 também é estrela (π2 ≡ π2*) (iii) Pelo Lema 3.2.7, π  é estrela (π  ≡ π *). (iv) Temos então π * π (iii) por ≡   π*≡ por (i)  . Logo, fazendo π1 ≡ π5 e π3 ≡ π6, temos, por (i), (ii) e (iv) que: π* tem a forma: π* ≡ , onde F(π*)= F(π2*) e π 6 2 2 1 5 B B π ∗π π  * ≡ π*  B . ≡ por (T3.2.3) 6 2 5 π π PASSO: n> 0 HI: Seja Σ uma derivação como descrito em 3.2.1. Se Σ* ≡ Σ•m tal que m< n, então vale o teorema para Σ. Considere a derivação π• da seqüência estrela para π. (i) Pelas Observações 2.3.7-(f) e (h) é claro que π* ≡ π•n ≡ (π•)•n-1 ≡ π•*. Mas π• é obtido de π pela multiplicação-* de T (π). Como nas três alternativas de π2, F(π) não é OMπ, então, T (π) está em π1, π3 ou π4. Consideremos estes três casos. CASO 1: T (π) está em π1 109 Como π1 é subárvore completa de π e r(π1) não é OPπ (r(π1)= B1 que é premissa de introdução), então, pelo Teorema 3.1.2, T (π)= T (π1) e (ii) π• ≡ . 3 2 2 1 1 B B π π π• Note que F(π2) é FM em π•, e π• é distinto de π apenas na subárvore determinada por B1. Como posπ(B1)> posπ(F(π2)), então, pelo Teorema 3.1.6: (iii) F(π2) é F(π•). (iv) Portanto, por (ii), (iii) e pelo Teorema 3.2.2 temos: π•  ≡ B . 3 2 1 π π• Sejam φ e ψ as duas ocorrências de π1 tais que: φ= T (π) e ψ= assπ(T (π)). Pelo Teorema 3.2.4-(5), φ= T (π ) e ψ= assπ (T (π )). Ou seja, T (π ) também ocorre em π1. Como π1 é subárvore completa também em π , temos, pelo Teorema 3.1.2, que T (π1)= T (π ) e: (v) π • ≡ B . 3 2 1 π π• (vi) Assim, por (iv) e (v), temos que: π•  ≡ π •. Por (i), (ii) e (iii) temos que vale para π• a hipótese indutiva. (vii) Logo, π•* ≡ , onde F(π•*) é F(π2*) e π• 6 2 2 1 5 B B π ∗π π  * ≡ π•*  ≡ B . π π 5 2 6 Pela Observação 2.3.7.1-(f) é claro que: (viii) π•* ≡ π* e (ix) π •* ≡ π *. (x) Então: π * π≡ por (ix)  •* π• (vi) por ≡  * π•*≡ por (vii)   (viii) por ≡ π* . Assim, por (vii), (viii) e (x) temos: 110 π* ≡ , onde F(π*) é F(π π π π 5 1 2 2 6 B B ∗ 2*) e π * ≡ π*  ≡ B . π π 5 2 6 CASO 2: T (π) está em π4 Note que este caso não é relevante para π2 do tipo (c), uma vez que neste caso, π4 não é subárvore de π. Portanto, analisaremos aqui apenas os casos (a) e (b) de π2. Como π4 é subárvore completa de π e de π2, e r(π4) não é OPπ nem OPπ2 (r(π4)= A não é PM de eliminação em nenhuma das formas de π2), então, pelo Teorema 3.1.2 temos: T (π)= T (π4), T (π2)= T (π4) e: (xi) (a) π2• ≡ 2 14 B BA B A ⊃ π• , ou (b) π2• ≡ 2 1 4 B BA BA ∧ π• e (xii) (a) π• ≡ 3 2 1 1 4 B BA B A π ⊃ π •π , ou (b) π• ≡ 2 2 1 14 B BA BA π ∧ ππ• . (xiii) Por (xi) e (xii), temos que π• ≡ . 3 2 2 1 1 B B π π π • Seja ξ= F(π2). No caso (a) ξ= A⊃B e no caso (b) ξ= A∧B. Note que ξ é FM em π2•, e π2• é distinto de π2 apenas na subárvore determinada por A= r(π4). Como, tanto em (a) quanto em (b), posπ2(A)> posπ2(ξ), então, pelo Teorema 3.1.6: (xiv) ξ é F(π2•). (xv) Portanto, por (xiii) e (xiv), temos: π•  ≡ B . 3 2 1 π π (xvi) Por (xv) e pelo Teorema 3.2.2 temos que: π•  ≡ π . 111 Note também que ξ (= F(π2)= F(π)) é FM em π•, e π• é distinto de π apenas na subárvore determinada por A= r(π4). Como, tanto em (a) quanto em (b) posπ(A)> posπ(ξ), então, pelo Teorema 3.1.6 temos: (xvii) ξ é F(π•). (xviii) Portanto, por (xiv) e (xvii) temos que F(π2•) é F(π•). Assim, por (i), (xiii) e (xviii), temos que vale para π• a hipótese indutiva. (xix) Logo, π•* ≡ ( , onde F(π•*) é F((π 6 2 2 1 5 B ) B π ∗π π • 2 •)*) e π• * ≡ π•*  ≡ B . π π 5 2 6 Pela Observação 2.3.7.1-(f) é claro que: (xx) π•* ≡ π* e (xxi) (π2•)* ≡ π2*. (xxii) Então: π * π•≡ por (xvi)  * π•*≡ por (xix)   ≡ por (xx) π* . Assim, por (xix), (xx), (xxi) e (xxii) temos: π* ≡ , onde F(π*) é F(π2*) e π π π π 5 1 2 2 6 B B ∗  * ≡ π*  ≡ B . π π 5 2 6 CASO 3: T (π) está em π3 Neste caso temos 2 subcasos: ou T (π) é OPLπ(π3) ou é OPnLπ(π3). SubCaso 3.1: T (π) é OPnLπ(π3) Neste caso, pelo Teorema 3.2.3 temos que a ocorrência assπ(T (π)) ocorre em π1. (xxiii) π1 e π3 têm então as formas: π1 ≡ k 1 7 8 k B DC D [C] π ⊃ π e π3 ≡ π π π 10 2 9 11 C B C D D ⊃ , onde a ocorrência C⊃D em π1 é assπ(T (π)) e, em π3, C⊃D é T (π). 112 (xxiv) π• é então da forma: π• ≡ , onde π − + π π π 3 2 2 1 1 B B 1 + e π3têm as formas: (xxv) π1+ ≡ B DC D [C] 7 8 10 π ⊃ π π e π3- ≡ 11 9 D DC B C π ⊃ π . Note que F(π2) é FM em π•, e π• é distinto de π apenas nas subárvores determinadas por C em π1 e em π3. Mas, em qualquer dos casos, posπ(C)> posπ(F(π2)). (xxvi) Então, aplicando duas vezes o Teorema 3.1.6, temos que F(π2) é F(π•). (xxvii) Portanto, por (xxiv) e (xxvi), temos π•  ≡ B . π π 1 3 + − 2 Pelo Teorema 3.2.4-(5) temos que C⊃D de π3 é T (π ) e C⊃D de π1 é assπ (T (π )). (xxviii) Logo, π • ≡ B . π π 1 3 + − 2 Por (xxvii) e (xxviii), temos que: π•  ≡ π •, e por (i), (xxiv) e (xxvi) vale HI para π•. O resultado segue, portanto, análogo ao Caso 1 a partir do item (vii). SubCaso 3.2: T (π) é OPLπ(π3) Neste caso, como F(π) é F(π2), então F(π) ocorre acima de B2. Logo, posπ(F(π))> posπ(B2). Portanto, pelo Teorema 3.1.4-(4) temos que π• tem a forma: (xxix) π• ≡ . •π π π 3 2 2 1 1 B B Note que F(π)= F(π2) é FM em π•, e, por 3.1.4-(4), π• é distinto de π apenas em subárvores com raízes de posição maior que F(π). 113 (xxx) Então, pelo Teorema 3.1.6, F(π2) é F(π•). (xxxi) Por (xxix) e (xxx), temos que π•  ≡ B . •π π 3 2 1 Sejam φ e ψ duas ocorrências de π3 tais que: φ= T (π) e ψ= assπ(T (π)). Pelo Teorema 3.2.4-(5) temos que φ= T (π ) e ψ= assπ (T (π )). Ou seja, T (π ) também é OPLπ (π3). Note que, como não existia FM ξ em π com posπ(ξ)< posπ(B2), então, pelo Teorema 3.2.4-(1) e pela forma de π  temos que não existe FM ξ em π  com posπ (ξ)< posπ (B2). Assim, posπ (F(π ))> posπ (B2). Portanto, pelo Teorema 3.1.4-(4) temos: (xxxii) π • ≡ B . •π π 3 2 1 Por (xxxi) e (xxxii), temos que: π•  ≡ π •, e por (i), (xxix) e (xxx) vale HI para π•. O resultado segue, portanto, análogo ao Caso 1 a partir do item (vii). O que termina a prova do Teorema 3.2.8 ♦ Neste último teorema desta seção estabeleceremos relações entre o peso de π* com o peso de π *, que nos permitirão, na última seção, provar que o(π) diminui com as reduções e provar a igualdade entre o(π) e lp(π), para os casos de derivações em que F(π) é ocorrência não multiplicativa. 3.2.9 TEOREMA: Se π é como caracterizado em 3.2.1, então: (1) Se π2 é do tipo (c): p(π*)= p(π *)+ 1; (2) Se π2 é do tipo (a) ou (b): p(π*)= p(π *)+ p(π4*)+ 1; (3) p(π )< p(π). PROVA: Pelo Teorema 3.2.8 temos que π* ≡ e π π π π 5 1 2 2 6 B B ∗  * ≡ π*  ≡ B . π π 5 2 6 114 Se π7 ≡ B , então π* ≡ B . Logo, pelo Teorema 2.2.13 temos: π π 5 1 2 ∗ 6 2 7 π π (i) p(π*)= p(π7)+ p(π6)+ nlπ*(π6). (ii) p(π *)= p(π5)+ p(π6)+ nlπ *(π6). (iii) p(π7)= p(π5)+ p(π2*)+ nlπ7(π2*). Pelo Teorema 3.2.5-(2) temos que nlπ*(π2*)= 0. Como, π7 é subárvore completa de π e π2* é subárvore de π7, então: (iv) nlπ7(π2*)= 0. Além disso, pelo Teorema 3.2.5-(1), temos que: (v) nlπ*(π6)= nlπ *(π6). Analisemos dois casos: quando π2 é do tipo (c) e quando π2 é do tipo (a) ou do tipo (b). Item (1) π2 é do tipo (c) - π2 ≡ Ba x x t 1 2 B B ∀ . (vi) Neste caso, π4 não é subárvore de π. Imediatamente pela definição de peso temos que: (vii) p(π2)= 1. Pelo Teorema 3.2.6-(3) temos que π2 é derivação estrela, logo, de (vii): (viii) p(π2*)= 1. Assim, por (iii), (iv) e (viii) temos que: (ix) p(π7)= p(π5)+ 1. Portanto: p(π*) p(π (i) por = 7)+ p(π6)+ nlπ*(π6) (ix) por = p(π5)+ 1+ p(π6)+ nlπ*(π6) (v) por = p(π5)+ 1+ p(π6)+ nlπ *(π6) (ii) por = p(π *)+ 1.   115 Item (2) π2 é do tipo (a) ou do tipo (b). (x) Seja π8 ≡ A B A B B 1 2 ⊃ , ou π8 ≡ A B A B B 1 2 ∧ (conforme tipo de π2). Imediatamente pela definição de função peso temos que: (xi) p(π8)= 1. Note que π2 ≡ A . Portanto, por (x) e pelo Teorema 3.2.6 temos: π π 4 8 (xii) π2* ≡ . π π 4 8 ∗ A Como A, ligação entre π4* e π8 em π2*, não pertence a segmento-α de π2* temos, pelo Teorema 2.2.10-(4), que: (xiii) nlπ2*(π8)= 0. (xiv) Assim, por (xii) e (xiii): p(π2*)= p(π4*)+ p(π8). (xv) Portanto, por (xi) e (xiv), p(π2*)= p(π4*)+ 1. Por (iii), (iv) e (xv) temos que: (xvi) p(π7)= p(π5)+ p(π4*)+ 1. Portanto: p(π*) p(π (i) por = 7)+ p(π6)+ nlπ*(π6) p(π (v) por = 7)+ p(π6)+ nlπ *(π6) p(π (xvi) por = 5)+ p(π4*)+ 1+ p(π6)+ nlπ *(π6) p(π (ii) por =  *)+ p(π4*)+ 1.   Item (3) Seja π9 ≡ B . Pelo Teorema 2.2.13, temos que: π π 1 1 2 (xvii) p(π)= p(π9)+ p(π3)+ nlπ(π3). (xviii) p(π )= p(π1)+ p(π3)+ nlπ (π3). 116 (xix) p(π9)= p(π1)+ p(π2)+ nlπ9(π2). Pelo Teorema 3.2.5-(2), nlπ(π2)= 0. Logo, nlπ9(π2)= 0, pois π2 é subárvore de π9 que é subárvore completa de π. (xx) Assim, por (xix) temos: p(π9)= p(π1)+ p(π2). Como φ, B1 e B2 são ocorrências de π2, φ é FM também de π2. (xxi) Portanto, p(π2)> 1. (xxii) Logo, por (xx) e (xxi), temos que p(π1)< p(π9). (xxiii) Pelo Teorema 3.2.5-(2) temos que nlπ(π3)= nlπ (π3). Portanto: p(π) p(π (i) por = 9)+ p(π3)+ nlπ(π3) p(π (vii) por = 9)+ p(π3)+ nlπ (π3) p(π (vi) por > 1)+ p(π3)+ nlπ (π3) p(π(ii) por=  ). Logo, p(π) > p(π ). ♦ §3 Resultados sobre Derivações com F(π) Multiplicativa O objetivo principal desta seção é obter o seguinte resultado: Sejam π ≡ 3 k 2 k 1 B BA B ]A[ A π ⊃ π π , onde A⊃B é F(π) e π∆ ≡ A A B A B B π π π 1 2 3 [ ] ⊃ , obtida de π pela multiplicação-* de A⊃B. Então: π* ≡ π∆*. Esta equivalência nos habilita a estender os resultados da seção anterior também para derivações nas quais F(π) é FM multiplicativa. Ao fazermos isto, já estaremos aptos a tratar todos os casos da prova de que o(π) diminui com as reduções. Introduziremos agora uma noção que será muito utilizada nesta seção para fazer referência a uma derivação específica da seqüência estrela de alguma derivação π. 117 3.3.1 DEFIN IÇÃO: Derivação Limite Seja π uma derivação tal que π* ≡ π•n e A uma fórmula da linguagem de C'. Definimos a derivação limite de π para A, e denotamos por π[A], como a derivação π•i (0 ≤ i ≤ n) da seqüência-* de π tal que: (1) Se g(π) < gr(A), então π[A] é π•0 ≡ π; (2) Se g(π) ≥ gr(A), então, π[A] é π•i tal que: g(π•i-1) ≥ gr(A) e g(π•i) < gr(A). 3.3.1.1 OBSERVAÇÕES: (a) Pelo Teorema 2.3.10-(6), temos que para todo i (0 ≤ i< n), g(π•i+1) ≤ g(π•i). Assim, podemos dizer que a derivação limite de π para A é a derivação da seqüência-* βπ de menor índice que tem grau máximo multiplicativo menor a gr(A). (b) Como g(π•n)= 0 (pois π•n ≡ π* é derivação estrela) e, pelo Teorema 2.3.10-(6), g(π•i+1) ≤ g(π•i) (0 ≤ i < n), então, para toda fórmula A existe um π•i (0 ≤ i ≤ n) tal que π•i ≡ π[A]. (c) É claro, por propriedades da seqüência estrela, que βπ[ A] = π•1, ..., π•k ≡ π[A], a seqüência estrela limite de π para A é única, e para cada π e A existe um e apenas um π[A] associado. (d) Pela unicidade da seqüência estrela é claro que se π[A] ≡ π•k e r ≤ k, então (π•r)[A] ≡ π[A]. Além disso, π[A]* ≡ π*. 3.3.2 LEMA: Considere φ uma OMπ com g(π•)< gr(φ). Então g(π)= gr(φ). PROVA: Suponha, por absurdo, que g(π)> gr(φ). Isto implica que T (π) ≠ φ, logo, pelo Teorema 2.3.10-(2), todo resíduo (φ)k de φ é OMπ• e, portanto, g(π•) ≥ gr(φ), o que é um absurdo, pois g(π•)< gr(φ) por hipótese. Logo, descartamos a hipótese do absurdo e temos g(π) ≤ gr(φ). Mas pela Definição 2.3.4 não é possível que g(π)< gr(φ), pois φ é OMπ. Logo, g(π)= gr(φ). ♦ 118 A notação que apresentaremos a seguir nos permitirá identificar certas transformações que podem ocorrer em subárvores devido a multiplicações-*. Ela será bastante utilizada na demonstração do Item (3) do teorema seguinte. 3.3.3 N OTAÇÃO: A notação denota uma derivação π com um conjunto possivelmente vazio de hipóteses destacadas, todas com a forma de A. π }A{ Considere π a seguinte derivação: π ≡ . a n3 ]A[ ][][ π ππ 43421 L A forma de π, como definido em 2.2.8-(b), indica que πa é uma derivação que possui n ou mais hipóteses destacadas A. Em cada uma destas hipóteses existe uma cópia de , onde (3 ≤ i ≤ n). Os colchetes em volta de cada π A iπ i indicam que pode haver mais de uma cópia de cada πi em π. Considere πa com a seguinte forma: πa ≡ . 1 2 B π π De acordo com as formas de π e πa, podemos ter hipóteses destacadas A de πa tanto em π1 quanto em π2. Não é possível saber, apenas com as informações que temos, se todas as hipóteses destacadas A de πa estão em π1, em π2 ou se estão um pouco em cada subárvore. Desta forma, usando a notação de chaves descrita acima, podemos escrever πa como: πa ≡ 43421 1 2 B }A{ }A{ π π Tal notação indica exatamente as condições de πa. πa é composta por uma subárvore π1 e uma subárvore π2. π1 possui uma hipótese destacada B, que é raiz de π2, e algumas, possivelmente nenhuma, hipóteses destacadas A. π2, por sua vez, possui as outras hipóteses destacadas A de πa, quando nem todas elas estão em π1. 119 Assim, de acordo com a forma de πa descrita pela nova notação, podemos escrever π com a seguinte forma: {π3}...{πn} {A} {π3}...{πn} π2 π ≡ {A} B π1 Esta notação indica que π é obtido de πa colocando-se nas hipóteses destacadas de πa cópias das derivações (3 ≤ i ≤ n). Como não temos informação sobre quais πA iπ i são colocados nas hipóteses A de π1 e quais hipóteses A de π2, utilizamos o artifício das chaves e indicamos todas as cópias em cada derivação. Como as chaves indicam uma quantidade possivelmente vazia, a notação de π é coerente. Por exemplo, se todas as cópias de π3 em π têm as hipóteses A de π1 como raiz, então a notação {π3} que ocorre acima das hipóteses A de π2 indica uma quantidade vazia, ou seja, π3 não ocorre lá. ♦ O teorema seguinte estabelece, no Item (4), o fato fundamental desta seção: π* ≡ π∆*. Os Itens (5) e (6) também serão úteis para a prova de que o(π) diminui com as reduções. Os Itens (1), (2) e (3) representam apenas as etapas necessárias para a prova do Item (4). 3.3.4 TEOREMA: Seja π ≡ 3 k 2 k 1 B BA B ]A[ π ⊃ π π A , onde A⊃B é F(π) e OMπ. Seja π' uma derivação tal que: π → π' pela redução da FM φ ≠ A⊃B e π[A⊃B] ≡ π•n. Então: 120 (1) π•n-1 ≡ π π π 1 2 3 [ ] [ ] [ ] A B A B k A B ⊃ ⊃ ⊃ ⊃A [A] B A B B k , onde A⊃B é F(π•n-1). (2) π•n ≡ π[A⊃B] ≡ A [A] B A B B π π π 1 2 3 [ ] [ ] [ ] A B A B A B ⊃ ⊃ ⊃ ⊃ , onde A⊃B é F(π[A⊃B]). (3) π∆[A⊃B] ≡ π[A⊃B]. (4) π* ≡ π∆*. (5) π'* ≡ (π')∆*. (6) π∆ → (π')∆. PROVA: Itens (1) e (2) Provaremos os Itens (1) e (2) simultaneamente por indução em n. Como nos Itens (1) e (2) A⊃B é OMπ, então é claro que g(π) ≥ gr(A⊃B). Logo, pela Definição 3.3.1 temos que n> 0. Portanto, o caso básico é n= 1. BASE: n= 1 (Neste caso, π[A⊃B] ≡ π•) Como n= 1, então, pela Definição 3.3.1 temos: (i) g(π)= g(π•0) ≥ gr(A⊃B) e g(π•)< gr(A⊃B). (ii) Logo, por (i) temos que g(π)> g(π•). (iii) Mas, por (ii) e pelo Teorema 2.3.10-(4), temos que ng(π)= 1. Como A⊃B é OMπ , por (ii) e pelo Lema 3.3.2 temos: (iv) g(π)= gr(A⊃B). Assim, por (iv), (v) e pela forma de π temos: Mas se A⊃B é OMπ, por (iii), (iv) e pela Definição 2.3.6 de T (π) temos: (v) A⊃B é T (π). 121 (vi) π[A⊃B] ≡ π• ≡ A [A] B A B B 1 2 3 π π π ⊃ . Note que π• difere de π apenas na subárvore da premissa menor de A⊃B= F(π) e em top-fórmulas de π2. Mas em ambos os casos as alterações são feitas em ocorrências com posição maior que posπ(A⊃B). Portanto, pelo Teorema 3.1.6 temos: (vii) A⊃B é F(π•). Por (ii) e (iv) temos que g(π•)< gr(A⊃B). Como πi (1 ≤ i ≤ 3) são subárvores de π•, então, para (1 ≤ i ≤ 3), g(πi) ≤ g(π•)< gr(A⊃B). Portanto, pela Definição 3.3.1: (viii) πi[A⊃B] ≡ πi, com (1 ≤ i ≤ 3). Assim, por (vi), (vii) e (viii) temos: (ix) π[A⊃B] ≡ A [A] B A B B π π π 1 2 3 [ ] [ ] [ ] A B A B A B ⊃ ⊃ ⊃ ⊃ , onde F(π[A⊃B])= A⊃B; e (x) π•n-1 ≡ π•0 ≡ π ≡ π π π 1 k 2 3 A [A] B A B B ⊃ k ≡ π π π 1 2 3 [ ] [ ] [ ] A B A B k A B ⊃ ⊃ ⊃ ⊃A [A] B A B B k , onde F(π•n-1)= A⊃B. Por (ix) e (x) provamos a base para os Itens (1) e (2). PASSO: n> 1 HI: Se Σ é uma derivação que satisfaz as hipóteses do teorema tal que Σ[F(Σ)] ≡ Σ•k com k< n, então os itens (1) e (2) são válidos para Σ. Considere a derivação π•. Como π ≡ π•n com n> 1, pela Observação 3.3.1.1-(d) temos: [A⊃B] 122 (xi) (π•)[A⊃B] ≡ π[A⊃B] ≡ π•n ≡ (π•)•n-1. (xii) Como A⊃B= F(π) é OMπ, então: g(π)= gr(T (π)) ≥ gr(A⊃B) Como π• é obtido de π pela multiplicação-* de T (π), por (xii) e pelo Teorema 3.1.7-(1) temos: (xiii) posπ(T (π)) ≥ posπ(A⊃B). Vamos dividir a prova em casos conforme a ocorrência T (π). Temos que ou T (π) ocorre em π1, ou em π2 ou em π3 ou T (π) é A⊃B. Analisemos cada caso: CASO 1: T (π) ocorre em π1. Como π1 é subárvore completa de π e r(π1) não é OPπ (r(π1)= A é premissa menor de regra de eliminação), então r(π1) não é T (π). Logo, pelo Teorema 3.1.2 temos: (xiv) T (π)= T (π1) e π• ≡ 3 k 2 k 1 B BA B [A] A π ⊃ π π• . Como posπ(r(π1))> posπ(A⊃B), então, pelo Teorema 3.1.6: (xv) A⊃B é F(π•). (xvi) Note também, por (xiv), que A⊃B é OMπ•. Assim, por (xi), (xii), (xv) e (xvi) temos que vale a hipótese indutiva para π•. Logo: (xvii) (π•)•n-2 ≡ ]BA[ 3 k ]BA[ 2 k ]BA[ 1 B BA B [A] A )( ⊃ ⊃ ⊃ π ⊃ π π• , onde A⊃B é F((π•)•n-2), e (xviii) (π•)•n-1 ≡ (π•)[A⊃B] ≡ ]BA[ 3 ]BA[ 2 ]BA[ 1 B BA B [A] )( A ⊃ ⊃ ⊃ π ⊃ π π• , onde A⊃B é F((π•)[A⊃B]). Mas se T (π) ocorre em π1, então g(π1)= g(π) gr(A⊃B). Logo, pela Definição 3.3.1 π )xii( ≥ 1 [A⊃B] ≡ π1•k tal que k> 0. Portanto, pela Observação 3.3.1.1-(d) temos: 123 (xix) π1[A⊃B] ≡ (π1•)[A⊃B]. Portanto, por (xi), (xvii), (xviii) e (xix) temos: (xx) π•n-1 ≡ (π•)•n-2 ≡ π π π 1 2 3 [ ] [ ] [ ] A B A B k A B ⊃ ⊃ ⊃ ⊃A [A] B A B B k , onde A⊃B é F(π•n-1) e (xxi) π[A⊃B] )xi( ≡ π•[A⊃B] )xi( ≡ (π•)•n-1 ≡ π•n ≡ A [A] B A B B π π π 1 2 3 [ ] [ ] [ ] A B A B A B ⊃ ⊃ ⊃ ⊃ , onde A⊃B é F(π[A⊃B]). Assim, por (xx) e (xxi) provamos o Caso 1. CASO 2: T (π) ocorre em π2 Como π2 é subárvore completa de π e r(π2) não é OPπ (r(π2)= B é premissa de introdução), então r(π2) não é T (π). Logo, pelo Teorema 3.1.2 temos: (xxii) T (π)= T (π2) e π• ≡ 3 k 2 k 1 B BA B [A] A π ⊃ π π • . Como pos r(π2))> pos A⊃B), então, pelo Teorema 3.1.6: (xxiii) A⊃B é F(π•). π( π( (xxiv) Como as hipóteses destacadas de π2 são cortadas por regra que está abaixo de r(π2) nenhuma multiplicação-* em π2 coloca subárvores sobre as hipóteses destacadas de π2. Portanto, por (xxii), A⊃B é OMπ•. Assim, por (xi), (xxii), (xxiii) e (xxiv) temos que vale a hipótese indutiva para π•. Logo: 124 (xxv) (π•)•n-2 ≡ ]BA[ 3 k ]BA[ 2 k ]BA[ 1 B BA B )( [A] A ⊃ ⊃ ⊃ π ⊃ π π • , onde A⊃B é F((π•)•n-2), e (xxvi) (π•)[A⊃B] ≡ (π•)•n-1 ]BA[ 3 ]BA[ 2 ]BA[ 1 B BA B )( [A] A ⊃ ⊃ ⊃ π ⊃ π π • , onde A⊃B é F((π•)[A⊃B]). O resultado segue análogo ao Caso 1. CASO 3: T (π) ocorre em π3 Pelo Teorema 2.2.10-(5), se φ é OPnLπ(π3), então gr(φ) ≤ g(B). Mas, por (xii), gr(T (π))= g(π) ≥ gr(A⊃B)> gr(B). Portanto: (xxvii) T (π) é OPLπ(π3). Por (xxvii), pela forma de π e pelo Teorema 3.1.4 temos: (xxviii) T (π)= T (π3) e π• ≡ •π ⊃ π π 3 k 2 k 1 B BA B [A] A . Também por 3.1.4-(1) e 3.1.4-(4) temos que π• é distinto de π apenas em subárvores com raízes de posição maior que A⊃B= F(π). Então, pelo Teorema 3.1.6: (xxix) A⊃B é F(π•). (xxx) Note também, por (xxviii), que A⊃B é OMπ•. Assim, por (xi), (xxviii), (xxix) e (xxx) temos que vale HI para π•. Logo: (xxxi) (π•)•n-2 ≡ ]BA[ 3 k ]BA[ 2 k ]BA[ 1 )( B BA B [A] A ⊃ ⊃ ⊃ •π ⊃ π π , onde A⊃B é F((π•)•n-2), e 125 (xxxii) (π•) ≡ (π•)• ≡ [A⊃B] n-1 ]BA[ 3 ]BA[ 2 ]BA[ 1 )( B BA B [A] A ⊃ ⊃ ⊃ •π ⊃ π π , onde A⊃B é F((π•)[A⊃B]). O resultado segue análogo ao Caso 1. CASO 4: T (π) é A⊃B= F(π) Como neste caso T (π)= F(π), pelo Teorema 3.1.7-(2) temos que: (xxxiii) ng(π)= 1. Por (xxxiii) e pelo Teorema 2.3.10-(4) temos que: (xxxiv) g(π)> g(π•). (xxxv) Mas como A⊃B é T (π), então g(π)= g(π•0)= gr(A⊃B). (xxxvi) Logo, por (xxxiv) e (xxxv), g(π•)< gr(A⊃B). Assim, por (xxxv), (xxxvi) e pela Definição 3.3.1, π[A⊃B] ≡ π•. Portanto, o resultado para o Caso 4 segue exatamente como no caso básico.   Item (3) Vamos provar um resultado um pouco mais genérico, do qual o Item (3) é um caso particular. Considere π∇ uma derivação com a seguinte forma: π∇ ≡ 3 2 B BA B [A] A π ⊃ π ππ L , onde A⊃B é F(π∇) e onde vale a seguinte propriedade: n4 (i) Não existe top-fórmula em nenhum π4, ..., πn que seja cortada por regra externa a π4, ..., πn, cuja conseqüência tenha posição maior que F(π∇). Provaremos que: 126 (ii) π∇[A⊃B] ≡ B BA B [A] ][ ][ A ]BA[ 3 ]BA[ 2 ]BA[ n ]BA[ 4 ⊃ ⊃ ⊃⊃ π ⊃ π ππ L ,, onde A⊃B é F(π∇[A⊃B]). Pelo Teorema 3.1.10 temos que π∆ também satisfaz a propriedade (i), logo é claro que, se provarmos (ii), então π∆[A⊃B] ≡ A [A] B A B B π π π 1 2 3 [ ] [ ] [ ] A B A B A B ⊃ ⊃ ⊃ ⊃ , onde A⊃B é F(π∆[A⊃B]) e, portanto, pelo Item (2), π∆[A⊃B] ≡ π[A⊃B]. Seja π∇[A⊃B] ≡ π∇•m. Provaremos o item por indução em m. m= 0 BASE: (iii) Neste caso π∇[A⊃B] ≡ π∇•0 ≡ π∇. Logo, pela Definição 3.3.1, g(π∇)< gr(A⊃B) e para todo i (1 ≤ i ≤ n) g(πi)< gr(A⊃B), pois πi é subárvore de π∇. Assim, também pela Definição 3.3.1, temos: (iv) πi[A⊃B] ≡ πi tal que (1 ≤ i ≤ n). Portanto: π∇[A⊃B] π)iii(≡ ∇ ≡ 3 2 n4 B BA B [A] A π ⊃ π ππ L )iv( ≡ B BA B [A] A ]BA[ 3 ]BA[ 2 ]BA[ n ]BA[ 4 ⊃ ⊃ ⊃⊃ π ⊃ π ππ L , onde F(π∇[A⊃B])= A⊃B. PASSO: m> 0 HI: Se Σ é uma derivação que satisfaz as hipóteses do teorema tal que Σ[F(Σ)] ≡ Σ•k com k< m, então o Item (3) é válido para Σ. 127 128 Considere a derivação π∇•. Como π∇[A⊃B] ≡ π∇•m com m> 0, pela Observação 3.3.1.1-(d) temos: (v) (π∇•)[A⊃B] ≡ π∇[A⊃B] ≡ π∇•m ≡ (π∇•)•m-1. Note também que como m> 0, pela Definição 3.3.1 temos: (vi) g(π∇) ≥ gr(A⊃B). Como A⊃B não é OMπ∇, então temos três possibilidades para T (π∇): ou T (π∇) ocorre em algum π4, ..., πn, ou em π2, ou em π3. Analisemos cada um destes casos: CASO 1: T (π∇) ocorre em algum πj para (4 ≤ j ≤ n) Note, por (vi), que r(πj)= A não é T (π∇), pois g(π∇)= gr(T (π∇)) ≥ gr(A⊃B)> gr(A). Logo, pelo Teorema 3.1.2: (vii) T (π∇)= T (πj) e π∇• ≡ B BA B [A] A 3 2 n1jj1j4 π ⊃ π πππππ +− • LL .. Como posπ∇(r(πj))> posπ∇(A⊃B), então, pelo Teorema 3.1.6: (viii) A⊃B é F(π∇•). Note que como nenhuma nova marca de corte que não ocorria em πj é introduzida em πj• , então: (ix) π∇• satisfaz a propriedade (i). Assim, por (v), (vii), (viii) e (ix), temos que vale HI para π∇•, logo: (x) (π∇•)[A⊃B] ≡ B BA B [A] ][ ])[( ][ A ]BA[ 3 ]BA[ 2 ]BA[ n B][A m ]BA[ 4 ⊃ ⊃ ⊃⊃⊃ π ⊃ π π•ππ LL , onde A⊃B é F((π∇•)[A⊃B]). Por (vi) e (vii) temos: g(πj)= gr(T (πj)) )vii(= gr(T (π)) )vi(≥ gr(A⊃B). Logo, pela Definição 3.3.1, temos que πj[A⊃B] ≡ πj•r tal que r> 0. Portanto, pela Observação 3.3.1.1-(d) temos: (xi) πj[A⊃B] ≡ (πj•)[A⊃B]. Assim, por (v), (x) e (xi) temos: π∇[A⊃B] ≡ B BA B [A] ][ ][ A ]BA[ 3 ]BA[ 2 ]BA[ n ]BA[ 4 ⊃ ⊃ ⊃⊃ π ⊃ π ππ L , onde F(π∇[A⊃B])= A⊃B. CASO 2: T (π∇) ocorre em π2 Como T (π∇) ocorre em π2, pela Observação 2.1.13.1, ψ= assπ∇(T (π∇)) ocorre ou em π2 ou em algum πj (4 ≤ j ≤ n). (xii) Pelo Corolário 2.2.11-(5), todas as OPnLπ∇(π2) têm grau menor ou igual a A. Como, por hipótese, T (π∇) ocorre em π2, então g(π2)= g(π∇) gr(A⊃B)> gr(A) e, portanto, por (xii): )vi( ≥ (xiii) T (π∇) é OPLπ∇(π2). (xiv) Logo a regra R1 que gera a ocorrência ψ= assπ∇(T (π)) e a regra R2 da qual T (π) é premissa maior estão integralmente em π2. Mas é claro, pela forma de π pos (r(π pos (A⊃B). Então, por (xiv) e pelo Teorema 3.1.10: ∇, que: π∇ 2))> π∇ (xv) Toda top-fórmula que a regra que gera ψ= assπ∇(T (π∇)) corta é top-fórmula de π2. (xvi) Assim, por (xiii), (xiv) e (xv), temos que os itens (1) a (3) da Definição 2.3.1 de OM são satisfeitos por T (π∇) também em π2. Analisemos o que ocorre no Item (4) da Definição 2.3.1. Seja ξ a premissa menor da regra em que T (π∇) é PM. (xvii) Por (xiv) temos que ξ também ocorre em π2. Como T (π∇) é OMπ∇, então, pela Definição 2.3.1 de OM temos: Ou ξ é top-fórmula cortada em π∇, ou l(∇π∇(ξ))> 1. Vejamos cada caso: CASO 2.1: ξ é top-fórmula cortada em π∇ Se ξ é top-fórmula cortada em π∇ e ocorre em π2, como π2 é subárvore de π∇, é claro que: (xviii) ξ é top-fórmula cortada em π2. 129 Portanto, por (xviii) temos que o Item (4) da Definição 2.3.1 de OM também é válido para T (π∇) em π2, e portanto, por (xvi) e (xviii) T (π∇) é OMπ2. Como T (π∇) é OMπ2 e π2 é subárvore de π∇, é claro que não existe OMπ∇ com grau maior que T (π∇), nem ocorrência de mesmo grau com posição maior que T (π∇), pois se existisse em π2, existiria em π∇ (Teorema 3.1.5), o que contradiz a Definição 2.3.6 de ocorrência estrela. Portanto: (xix) T (π∇) = T (π2). Por (xv), (xviii) e (xix) podemos escrever π2 com a seguinte forma: [C]r {A} πb (xx) π2 ≡ Cs C⊃D , onde C⊃D= T (π∇)= T (π2). D {A} πc Assim, por (xx) e pela forma de π∇ temos: {π4} ... {πn} [C]r {A} πb Cs C⊃D {π4} ... {πn} D {A} πc B (xxi) π∇ ≡ A A⊃B , onde A⊃B= F(π∇). B π3 Por (xix), (xx) e (xxi) temos: [C]s {A} πb (xxii) π2• ≡ C C⊃D D {A} πc e 130 {π4} ... {πn} [C]s {A} πb C C⊃D {π4} ... {πn} D {A} πc B (xxiii) π∇• ≡ A A⊃B B π3 Note por (xxi) e (xxiii) que as mudanças de π∇• com relação a π∇ foram todas feitas em subárvores cujas raízes têm posição maior que posπ∇(A⊃B). Portanto, pelo Teorema 3.1.6: (xxiv) A⊃B é F(π∇•) Dessa forma, por (xxii), (xxiii) e (xxiv) temos: (xxv) π∇• ≡ B BA B [A] ][ ][ A 3 2 n4 π ⊃ π ππ • L , onde A⊃B é F(π∇•). Note também, por (xxi) e (xxiii) que não houve nenhuma modificação interna em nenhuma cópia de π , ... π , na passagem de π para π•. Portanto: 4 n ∇ ∇ (xxvi) π• também satisfaz a propriedade (i). ∇ Assim, por (vi), (xxv), (xxiv) e (xxvi) temos que vale a hipótese indutiva para π•. Portanto: ∇ (xxvii) (π•) ≡ [A⊃B] , onde F((π•) )= A⊃B. [A⊃B] B BA B )( [A] ][ ][ A ]BA[ 3 ]BA[ 2 ]BA[ n ]BA[ 4 ⊃ ⊃ ⊃⊃ π ⊃ π ππ • L ∇ ∇ 131 Por (vi) e (xix) temos: g(π2) = gr(T (π2)) gr(T (π)xix( = ∇) = g(π∇) gr(A⊃B) )vi(≥ Logo, pela Definição 3.3.1 π2[A⊃B] ≡ π2•s tal que s> 0. Portanto, pela Observação 3.3.1.1-(d) temos: (xxviii) (π2•)[A⊃B] ≡ π2[A⊃B]. Então, por (v), (xxvii) e (xxviii) temos: π∇[A⊃B] ≡ B BA B [A] ][ ][ A ]BA[ 3 ]BA[ 2 ]BA[]BA[ ⊃ ⊃ ⊃⊃ π ⊃ π ππ L , onde F(π∇[A⊃B])= A⊃B. n4 CASO 2.2: l(∇π∇(ξ))> 1 Como, por (xvii), ξ ocorre em π2, então: ou ξ é uma das hipóteses [A] destacadas em π2, ou não é. Analisemos cada um dos casos: SubCaso 2.2.1: ξ não é hipótese destacada de π2 (xxix) Pela forma de π∇ temos que, com exceção das ocorrências de ligação para cima de π2, todas as demais top-fórmulas de π2 são top-fórmulas de π∇. Como ξ não é hipótese destacada de π2 e não é top-fórmula de π∇ (l(∇π∇(ξ))> 1), então, por (xxix), temos que ξ não é top-fórmula de π2. Logo: (xxx) l(∇π2(ξ))> 1 Portanto, por (xxx) temos que o Item (4) da Definição 2.3.1 de OM também é válido para T (π∇) em π2, e portanto, por (xvi), T (π∇) é OMπ2. Assim, como e π2 é subárvore de π∇, é claro que não existe OMπ∇ com grau maior que T (π∇), nem ocorrência de mesmo grau com posição maior que T (π∇), pois se existisse em π2, existiria em π∇ (Teorema 3.1.5), o que contradiz a Definição 2.3.6 de ocorrência estrela. Portanto: (xxxi) T (π∇) = T (π2). Por (xv), (xxx) e (xxxi) podemos escrever π2 com a seguinte forma: 132 {A} [C]r {A} πa πb (xxxii) π2 ≡ C C⊃D , onde C⊃D= T (π∇)= T (π2). D {A} πc Assim, por (xxxii) e pela forma de π∇ temos: {π4} ... {πn} {π4} ... {πn} {A} [C]r {A} πa πb C C⊃D {π4} ... {πn} D {A} πc B (xxxiii) π∇ ≡ A A⊃B , onde A⊃B= F(π∇). B π3 Por (xxxi), (xxxii) e (xxxiii) temos: {A} πa [C] {A} πb (xxxiv) π2• ≡ C C⊃D D {A} πc e 133 {π4} ... {πn} {A} π a { 4} ... { n} π π [C] {A} πb C C⊃D {π π 4} ... { n} D {A} πc B (xxxv) π∇• ≡ A A⊃B . B π3 Note por (xxxiii) e (xxxv) que as mudanças de π∇• com relação a π∇ foram todas feitas em subárvores cujas raízes têm posição maior que posπ∇(A⊃B). Portanto, pelo Teorema 3.1.6 temos: (xxxvi) A⊃B é F(π∇•). Dessa forma, por (xxxiv), (xxxv) e (xxxvi) temos: π∇• ≡ B BA B [A] ][ ][ A 3 2 π ⊃ π ππ • L , onde A⊃B é F(π∇•). n4 A solução segue análoga a do Caso 2.1 a partir da cláusula (xxv). SubCaso 2.2.2: ψ é hipótese destacada de π2 Neste caso, π2 pode ser escrita da seguinte forma: [A]r {A} πb (xxxvii) π2 ≡ A (A⊃B)1 , onde (A⊃B)1= T (π∇). D {A} πc 134 O índice superior 1 em A⊃B é apenas para distinção de referência com a ocorrência de F(π∇). Assim, por (xxxvii) e pela forma de π∇ temos: {π4} ... {πn} [A]r {A} πj πb A (A⊃B)1 {π4} ... {πn} D {A} πc B (xxxviii) π∇ ≡ A (A⊃B)2 , onde: (A⊃B)1 é T (π∇), B (A⊃B)2 é F(π∇) e π3 4 ≤ j ≤ n. Dessa forma, por (xxxviii) temos: πj {π4} ... {πn} [A] {A} πb A (A⊃B)1 {π4} ... {πn} D {A} πc B (xxxix) π∇• ≡ A (A⊃B)2 B π3 Note por (xxxviii) e (xxxix) que as mudanças de π∇• com relação a π∇ foram todas feitas em subárvores cujas raízes têm posição maior que posπ∇((A⊃B) 2). Portanto, pelo Teorema 3.1.6 temos: (xl) (A⊃B)2 é F(π∇•). Dessa forma, por (xxxvii), (xxxix) e (xl) temos: 135 (xli) π∇• ≡ B BA B [A] ][ ][ A 3 2 n4 π ⊃ π ππ L , onde A⊃B é F(π∇•). 31 Note também, por (xxxviii) e (xxxix), que não houve nenhuma modificação interna em nenhuma cópia de π4, ... πn, na passagem de π∇ para π∇•. Portanto: (xlii) π∇• também satisfaz a propriedade (i). Assim, por (vi), (xli) e (xlii) temos que vale a hipótese indutiva para π∇•. Portanto: (xliii) (π∇•)[A⊃B] ≡ B BA B [A] ][ ][ A ]BA[ 3 ]BA[ 2 ]BA[ n ]BA[ 4 ⊃ ⊃ ⊃⊃ π ⊃ π ππ L , onde F((π∇•)[A⊃B])= A⊃B. Logo, por (v) e (xliii) temos: π∇[A⊃B] ≡ B BA B [A] ][ ][ A ]BA[ 3 ]BA[ 2 ]BA[ n ]BA[ 4 ⊃ ⊃ ⊃⊃ π ⊃ π ππ L , onde F(π∇[A⊃B])= A⊃B. CASO 3: T (π∇) ocorre em π3 Prova análoga à do caso 3 dos itens 1 e 2. 31 Note que, olhando para a notação simplificada (xli), parece que π∇• ≡ π∇. No entanto, olhando para as notações detalhadas vemos claramente que π∇ (descrito em (xxxviii)) é diferente de π∇• (descrito em (xxxix)). No entanto, a multiplicação-* de T (π∇) apenas trocou de lugar em π2 a subárvore πj. Tal mudança não é visível na notação simplificada que adotamos. 136 E com isso completamos todos os casos da prova da proposição (ii). Como provamos (ii) e pelo Teorema 3.1.10 temos que π∆ também satisfaz a propriedade (i), então, é claro que: π∆[A⊃B] ≡ ]BA[ 3 ]BA[ 2 ]BA[ 1 B BA B [A] A ⊃ ⊃ ⊃ π ⊃ π π , onde A⊃B é F(π∆[A⊃B]) e, portanto, pelo Item (2) deste teorema: π∆[A⊃B] ≡ π[A⊃B].   Item (4) π* (π (d)-3.3.1.1 ≡ [A⊃B])* (π (3) Item ≡ ∆[A⊃B])* π∆*.   (d)-3.3.1.1≡ Itens (5) e (6) (i) Seja φ a FM reduzida em π → π'. Vamos dividir a prova dos Itens (5) e (6) em tantos casos quantas forem as possibilidades para φ em π. CASO 1: φ ocorre em π1. Neste caso, π' é da forma: (ii) π' ≡ 3 k 2 k 1 B BA B [A] A ) π ⊃ π π , onde π1 → π'1. Note que π' difere de π apenas na subárvore π1. Mas como posπ(r(π1))> posπ(A⊃B), então, pelo Teorema 3.1.6 temos: (iii) A⊃B= F(π') Assim, por (ii), (iii) e (iv) temos que o Item (4) se aplica a π', logo: (iv) Note também, por (ii), que A⊃B é OMπ'. (v) π'* ≡ π'∆*. Além disso, também por (ii), (iii), (iv) e pela Definição 3.1.9, temos: 137 (vi) π'∆ ≡ 3 2 1 B BA B [A] A ) π ⊃ π π . Pela forma de π∆, se efetuarmos em cada cópia de π1 em π∆ a mesma redução feita em π1 de π temos: (vii) π ≡ ∆ 3 2 1 B BA B [A] A π ⊃ π π → 3 2 1 B BA B [A] A ) π ⊃ π π )vi( ≡ π'∆. Assim, por (v) e (vii), valem os Itens (5) e (6) para π do Caso 1. CASO 2: φ ocorre em π2 Neste caso, π' pode ter duas possíveis formas: (viii) π' ≡ 3 k 2 k 1 B BA B [A] A ) π ⊃ π π , quando a redução de φ não elimina todas as hipóteses A cortadas pela regra que gera A⊃B= F(π); ou (ix) π' ≡ 3 2 1 B BA B A ) π ⊃ π π , quando a redução de φ elimina todas as hipóteses A cortadas pela regra que gera A⊃B= F(π). Analisemos estes dois casos: 138 3 k 2 k 1 B BA B [A] A ) π ⊃ π π SubCaso 2.1: π' ≡ (como em (viii)) Note que π' difere de π apenas na subárvore π2. Mas como posπ(r(π2))> posπ(A⊃B), então, pelo Teorema 3.1.6 temos: (x) A⊃B= F(π'). (xi) Note também, por (viii), que A⊃B é OMπ'. Assim, por (viii), (x) e (xi) temos que o Item (4) se aplica a π', logo: (xii) π'* ≡ π'∆*. Além disso, por (viii), (x), (xi) e pela Definição 3.1.9, temos: (xiii)π'∆ ≡ 3 2 1 B BA B [A] A ) π ⊃ π π . Por (viii) e (xiii), é claro que repetindo a redução π → π π (xiv) π ≡ 2 '2 em ∆ temos: ∆ 3 2 1 B BA B [A] A π ⊃ π π → 3 2 1 B BA B [A] A ) π ⊃ π π ≡ π'∆. Note que como a redução de φ em π não elimina todas as hipóteses A cortadas por k, então em π∆ a redução de φ não elimina todas as cópias de π1. Note também que não corremos o risco da redução de π2 em π∆ multiplicar alguma subárvore de π2 em top-fórmula de π1, alterando assim alguma cópia de π1. Isso porque em π, a derivação original, as raízes de π1 e π2 ocorrem em ramos diferentes, ou seja, nenhuma top-fórmula de π1 ocorre acima de ocorrência de fórmula de π2. Logo, nenhuma regra de π2 139 corta top-fórmula de π1. Como π∆ foi obtida de π por uma multiplicação, as marcas de corte existentes nas ocorrências de π1 não se alteram em π∆. Portanto, a redução de φ é local a π2 em π∆, não alterando internamente nenhuma cópia de π1. Assim, por (xii) e (xiv), os Itens (5) e (6) valem para π do subcaso 2.1. SubCaso 2.2: π' ≡ 3 2 1 B BA B A ) π ⊃ π π (como em (ix)) Note que A⊃B não é mais ocorrência multiplicativa em π', logo, pela Definição 3.1.9: (xv) π'∆ ≡ π'. Portanto, por (xv), é claro que: (xvi) π'* ≡ π'∆*. É claro que se repetirmos a redução π2 → π2' em π∆ temos: 3 2 1 B BA B [A] A π ⊃ π π → 3 2 1 B BA B A ) π ⊃ π π )hip( ≡ π' π'. )xv( ≡ ∆(xvii) π∆ ≡ Note que como em π a redução de φ (π2 → π2') eliminou todas as hipóteses A destacadas em π2, ela produz o mesmo efeito em π∆. Assim, por (xvi) e (xvii), os Itens (5) e (6) valem para π do subcaso 2.2. CASO 3: φ ocorre em π3 Como φ é FM em π, π3 deve ter a seguinte forma: π3 ≡ 6 45 E C B D π ππ , onde φ ocorre em π5, pois como A⊃B é F(π), φ não pode ter posição menor que a posição de A⊃B. Logo: 140 (xviii) π ≡ E C B BA B ]A[ A D 6 4 k 2 k 1 5 π π ⊃ π π π e π' ≡ E C B BA B ]A[ A D 6 4 k 2 k 1 5 ) π π ⊃ π π π Como π5 é subárvore completa de π e posπ(D) > posπ(A⊃B), então a solução é análoga à do Caso 1. Note que por hipótese φ ≠ A⊃B. Com isso analisamos todos os casos e terminamos a prova dos Itens (5) e (6), e do teorema. ♦ §4 Resultados Gerais Obteremos nesta seção, depois de todo este desenvolvimento, os resultados principais sobre o sistema C'. Os teoremas desta seção garantem que o(π) diminui com as reduções, que é o menor Ordinal Natural para derivações em C' (o(π)= lp(π)), que a pior seqüência de redução de Massi é finita e, finalmente, que vale a Normalização Forte e Church-Rosser para C'. Vamos inicialmente provar que o(π) diminui com as reduções. 3.4.1 TEOREMA: Se π' é obtida de π através de uma redução qualquer, então o(π)> o(π'). Ou seja: (π → π') ⇒ (o(π)> o(π')). PROVA: Seja π* ≡ π•n. Provaremos por indução em p(π*). BASE: p(π*)= 0 ⇒3.4.1-(3) π é normal. Como π' não está definido neste caso, o teorema é válido por vacuidade. PASSO: HI: Para toda Σ, tal que p(Σ*) < p(π*), temos que (Σ → Σ') ⇒ (o(Σ) > o(Σ')). Queremos provar que o(π) > o(π'). 141 Apresentaremos, como dissemos na introdução do capítulo, uma solução por casos, baseada na forma de F(π). CASO 1: π ≡ π π π 1 2 3 A B A B B ⊃ , onde: (1) A⊃B é F(π); (2) A⊃B não é OMπ. (i) Pelo Teorema 3.2.2 temos: π  ≡ . π π 2 3 B (ii) Pelo Teorema 3.2.9-(2) temos: p(π*) = p(π *)+ p(π1*)+ 1. Temos aqui tantos subcasos quantas são as possíveis formas para π'. SubCaso 1.1: π' ≡ (obtida pela redução de A⊃B) π π 2 3 B (iii) Por (i) e pela hipótese do subcaso temos: π' ≡ π . Mas, por (ii) temos que p(π*)> p(π *). Logo, por (iii) temos p(π*)> p(π'*) e, portanto, o(π)> o(π'). SubCaso 1.2: π' ≡ 3 2 1 B BA B A ) π ⊃ π π Note que A⊃B é FM em π', π' é distinto de π apenas na subárvore determinada por A e posπ(A)> posπ(A⊃B). Então, pelo Teorema 3.1.6: (iv) A⊃B é F(π'). Pela forma de π', por (iv) e pelo Teorema 3.2.9-(2) temos: (v) p(π'*)= p(π' *)+ p(π1'*)+ 1. (vi) Também por (iv), pela forma de π' e pelo Teorema 3.2.2 temos: π'  ≡ . π π 2 3 B (vii) Por (i) e (vi) temos que π'  ≡ π . 142 (viii) Assim, por (v) e (vii) temos: p(π'*)= p(π *)+ p(π1'*)+ 1. (ix) Por (ii) temos que p(π1*)< p(π*). Logo, vale HI em π1. Então: (x) o(π1)> o(π1'). (xi) Assim, por (x) e pela Definição 2.4.1 temos: p(π1*)> p(π1'*). (xii) Portanto, por (ii), (viii) e (xi) temos: p(π*)> p(π'*) ⇒ o(π)> o(π'). SubCaso 1.3: π' ≡ 3 2 1 B BA B A ) π ⊃ π π Note que A⊃B é FM em π', π' é distinto de π apenas na subárvore determinada por B e posπ(B)> posπ(A⊃B). Então, pelo Teorema 3.1.6: (xiii) A⊃B é F(π'). (xiv) Por (xiii), pela forma de π' e pelo Teorema 3.2.2 temos: π'  ≡ . 3 2 B ) π π Também pela forma de π', por (xiii) e pelo Teorema 3.2.9-(2) temos: (xv) p(π'*)= p(π' *)+ p(π1*)+ 1. Além disso, fazendo a mesma redução de π em π  temos: (xvi) π  ≡ → ≡ π π π 2 3 B 3 2 B ) π π  ' π'≡ ( )xiv  . Por (ii) temos que p(π *)< p(π*). (xvii) Logo, vale em π  a hipótese indutiva e: o(π )> o(π '). (xviii) Então, por (xvi) e (xvii) temos: o(π )> o(π' ) (xix) Assim, por (xviii) e pela Definição 2.4.1 temos: p(π *)> p(π' *). (xx) Portanto, por (ii), (xv) e (xix) temos: p(π*)> p(π'*) ⇒ o(π)> o(π'). SubCaso 1.4: π' ≡ ) 3 2 1 B BA B A π ⊃ π π 143 Note que neste caso, como A⊃B é F(π), temos: π' ≡ E C B BA B A D 6 4 2 1 5 ) π π ⊃ π π π . A solução é análoga ao caso anterior. CASO 2: π tem a forma: π ≡ π π π 1 k 2 3 A [A] B A B B ⊃ k , onde: (1) A⊃B é F(π); (2) A⊃B é OMπ. Pela Definição 3.1.9, π∆, obtida de π pela multiplicação-* de A⊃B, tem a forma: (xxi) π∆ ≡ A [A] B A B B 1 2 3 π π π ⊃ . Note que A⊃B é FM em π∆, e π∆ é distinto de π apenas nas subárvores determinadas por A (A premissa menor de F(π) e nos As top-fórmulas de π2) e, para todo A expresso em π∆, posπ∆(A) > posπ∆(A⊃B). Então, por sucessivas aplicações do Teorema 3.1.6 (uma para cada ocorrência A) temos: (xxii) A⊃B é F(π∆). (xxiii) Chamemos π4 ≡ . Temos então, por (xxi), (xxii) e (xxiii), que: π π 1 2 [A] 144 (xxiv) π∆ ≡ A B A B B 4 3 π π ⊃ , onde A⊃B é F(π∆). Analisemos dois casos distintos para π': (1) A FM φ reduzida em π → π' é tal que φ ≠ A⊃B= F(π) e (2) φ= A⊃B= F(π). SubCaso 2.1 φ reduzida em π → π' é tal que φ ≠ A⊃B= F(π). (xxv) Pelo Teorema 3.3.4-(6), temos que: π → π' ⇒ π∆ → π'∆. (xxvi) Seja π∆ ≡ π∆1 → π∆2 → π∆3 →...→ π∆n ≡ π'∆ uma seqüência de redução para π∆ → π'∆ expressa em (xxv). Note que, por 3.3.4-(6), n ≥ 2, uma vez que π∆ ≡/ π'∆. Por (xxii) e (xxiv), temos que π∆ é uma derivação com a forma de π do Caso 1 deste teorema. Portanto, pelo Caso 1 e por (xxvi) temos: (xxvii) o(π∆) = o(π∆1) > o(π∆2). Portanto, p(π∆*) = p(π∆1*) > p(π∆2*). (xxviii) Mas pelo Teorema 3.3.4-(4), π* ≡ π∆*. Logo: p(π*) = p(π∆*). (xxix) Assim, por (xxvii) e (xxviii) temos: p(π*) = p(π∆1*) > p(π∆2*). Por (xxix) vale HI para π∆2. Logo, o(π∆2)> o(π∆3). Dessa forma, por (xxvii) e sucessivas aplicações de HI temos: (xxx) o(π∆) o(π)xxvi( = ∆1) o(π∆2) o(π)xxvii( > (HI) e )xxvii( > ∆3) > L > o(π(HI) ∆n) o(π')xxvi( = ∆). (xxxi) Pelo Teorema 3.3.4-(4) e 3.3.4-(5) temos: π* ≡ π∆* e π'* ≡ π'∆*. Portanto: o(π∆) o(π)xxx( > '∆) p(π∆*) > p(π⇒Def 2.4.1 '∆*) p(π*) > p(π'*) o(π) > o(π'). (xxxi)⇒ ⇒Def 2.4.1 SubCaso 2.2 φ reduzida em π → π' é tal que φ = A⊃B= F(π) Neste caso, pela forma de π temos: (xxxii) π' ≡ . 3 2 1 B ]A[ π π π )xxiii( = 3 4 B π π Note, por (xxiv), que π∆ é uma derivação na qual F(π∆) não é OMπ∆. Portanto, os Teoremas da Seção 3.2 valem para π∆. Logo, por (xxiv), (xxxii) e pelo Teorema 3.2.2 temos: (xxxiii) π' ≡ π∆ . 145 Considere π5 ≡ A, premissa menor da regra em que A⊃B é premissa maior em π∆. É claro que π5 é derivação normal, e portanto, π5 ≡ π5* e p(π5*)= 0. Portanto, por (xxiv) e pelo Teorema 3.2.9 temos: (xxxiv) p(π∆*)= p((π∆ )*)+ p(π5*)+ 1 ⇒ p(π∆*)= p((π∆ )*)+ 1. Assim, por (xxxiv) é claro que: (xxxv) p(π∆*)> p((π∆ )*) p(π'*). )xxxiii( = (xxxvi) Mas pelo Teorema 3.3.4-(4) temos: π∆* ≡ π*. Portanto: p(π*) p(π )xxxvi( = ∆*) p(π'*) o(π)> o(π'). )xxxv( > ⇒Def 2.4.1 CASO 3: π é do tipo: π ≡ π π π 1 2 3 A B A B B ∧ , onde A∧B é F(π). (xxxvii) Pelo Teorema 3.2.2 temos: π  ≡ . π π 2 3 B (xxxviii) Pelo Teorema 3.2.9-(2) temos: p(π*)= p(π *)+ p(π1*)+ 1. Temos aqui tantos subcasos quantas são as possíveis formas de π'. SubCaso 3.1: π' ≡ π π 2 3 B (xxxix) Por (xxxvii) e pela forma de π' temos: π' ≡ π . Então, por (xxxviii) e (xxxix) temos p(π*) > p(π'*) ⇒ 2.4.1 o(π) > o(π'). SubCaso 3.2: π' ≡ 3 21 B BA BA ) π ∧ ππ Note que A∧B é FM em π', π' é distinto de π apenas na subárvore determinada por A e posπ(A)> posπ(A∧B). Então, pelo Teorema 3.1.6: (xl) A∧B é F(π'). 146 (xli) Por (xl), pela forma de π' e pelo Teorema 3.2.2 temos: π'  ≡ . π π 2 3 B Além disso, pela forma de π', (xl), (xli) e pelo Teorema 3.2.9-(2) temos: (xlii) p(π'*)= p(π' *)+ p(π1'*)+ 1. (xliii) Por (xxxvii) e (xli) temos que π'  ≡ π . (xliv) Assim, por (xlii) e (xliii), temos: p(π'*)= p(π *)+ p(π1'*)+ 1. Por (xxxviii) temos que p(π1*)< p(π*). Logo, vale HI em π1. Portanto: (xlv) o(π1)> o(π1') ⇒ 2.4.1 p(π1*)> p(π1'*). Assim, por (xxxviii), (xliv) e (xlv) temos: p(π*)> p(π'*) ⇒ 2.4.1 o(π)> o(π'). SubCaso 3.3: π' ≡ 3 21 B BA BA ) π ∧ ππ Note que A∧B é FM em π', π' é distinto de π apenas na subárvore determinada por A e posπ(A)> posπ(A∧B). Então, pelo Teorema 3.1.6: (xlvi) A∧B é F(π'). (xlvii) Por (xlvi), pela forma de π' e pelo Teorema 3.2.2 temos: π'  ≡ . 3 2 B ) π π Também pela forma de π', por (xlvii) e pelo Teorema 3.2.9-(2) temos: (xlviii) p(π'*)= p(π' *)+ p(π1*)+ 1. Além disso, fazendo agora em π  a mesma redução (π2 → π'2) feita em π, temos: (xlix) π  ≡ → ≡ π π π 2 3 B 3 2 B ) π π  ' π' )xlvii( ≡  . Por (xxxviii) temos que p(π *) < p(π*). (l) Logo, vale em π  a hipótese indutiva e: o(π ) > o(π '). (li) Então, por (xlix) e (l) temos: o(π ) > o(π' ). (lii) Assim, por (li) e pela Definição 2.4.1 temos: p(π *) > p(π' *). Portanto, por (xxxviii), (xlviii) e (lii) temos: p(π*) > p(π'*) ⇒ 2.4.1 o(π) > o(π'). 147 SubCaso 3.4: π' ≡ ) 3 21 B BA BA π ∧ ππ A solução é análoga ao Caso 1.4. CASO 4: π é do tipo: π ≡ π π 1 2 A A A a x x t ∀ , onde ∀xAx é F(π) (liii) Pelo Teorema 3.2.2 temos: π  ≡ . π π 1 2 t a tA (liv) Pelo Teorema 3.2.9-(1) temos: p(π*)= p(π *)+ 1. Temos aqui tantos subcasos quantas são as possíveis formas de π'. SubCaso 4.1: π' ≡ π π 1 2 t a tA (lv) Por (liii) e pela forma de π' temos: π' ≡ π . Logo, por (liv) e (lv) temos: p(π*) > p(π'*) ⇒ 2.4.1 o(π) > o(π'). SubCaso 4.2: π' ≡ 2 1 tA xAx aA ) π ∀ π Note que ∀xAx é FM em π', π' é distinto de π apenas na subárvore determinada por Aa e posπ(Aa)> posπ(∀xAx). Então, pelo Teorema 3.1.6: (lvi) ∀xAx é F(π'). (lvii) Por (lvi), pela forma de π' e pelo Teorema 3.2.2 temos: π'  ≡ . 2 a t1 tA )( ) π π Também pela forma de π', por (lvi) e pelo Teorema 3.2.9-(1) temos: (lviii) p(π'*)= p(π' *)+ 1. Além disso, fazendo a mesma redução de π em π  temos: 148 (lix) π  ≡ → ≡ π π π 1 2 t a tA 2 a t1 tA )( ) π π  ' π' )lvii( ≡  . Por (liv) temos que p(π *)< p(π*). (lx) Logo, vale em π  a hipótese indutiva e: o(π )> o(π '). (lxi) Então, por (lix) e (lx) temos: o(π )> o(π' ) ⇒ 2.4.1 p(π *)> p(π' *). Portanto, por (liv), (lviii) e (lxi) temos: p(π*)> p(π'*) ⇒ 2.4.1 o(π)> o(π'). SubCaso 4.3: π' ≡ ) 2 1 tA xAx aA π ∀ π A solução é análoga ao Caso 1.4. Com isso verificamos todos os casos para todas as formas possíveis para π e π', provando assim o teorema. ♦ O teorema seguinte estabelece o fato fundamental para provarmos que o(π)= lp(π). Ele estabelece que se reduzirmos π a π' através da redução da pior seqüência, então o(π') é apenas uma unidade menor que o(π). A prova deste teorema está contida na prova do teorema anterior. O que temos que fazer é apenas verificar que nos casos específicos da redução da pior seqüência o(π) excede o(π') em apenas uma unidade. Optamos por apresentar demonstrações separadas devido aos significados distintos que estes dois resultados possuem dentro do nosso desenvolvimento. O teorema anterior garante que o(π), que havíamos provado ser finito, é de fato um ordinal natural, pois diminui com as reduções. Já o teorema seguinte garante que o(π) é o menor ordinal natural para C', pois coincide com o comprimento de uma seqüência de redução específica para π. 3.4.2 TEOREMA: Se π° é obtido de π através de uma redução da pior seqüência, então o(π)= o(π°)+ 1. Ou seja: (π →p π°) ⇒ o(π)= o(π°)+ 1. PROVA: Seja π* ≡ π•n. Provaremos por indução em p(π*). 149 BASE: p(π*)= 0 ⇒3.4.1-(3) π é normal. Como π° não está definido neste caso, o teorema é válido por vacuidade. PASSO: HI: Para toda Σ, tal que p(Σ*) < p(π*), temos que Σ → Σ° ⇒ o(Σ)= o(Σ°)+ 1. Queremos provar que o(π)= o(π°)+ 1. Apresentaremos uma solução por casos, baseada na forma de F(π). CASO 1: π é do tipo: π ≡ π π π 1 2 3 A B A B B ⊃ , onde: (1) A⊃B é F(π); (2) A⊃B não é OM em π. (i) Pelo Teorema 3.2.2 temos: π  ≡ . π π 2 3 B (ii) Pelo Teorema 3.2.9-(2) temos: p(π*)= p(π *)+ p(π1*)+ 1. De acordo com a Definição 1.5.2, de FP(π), temos duas alternativas para π°, conforme π1 seja normal ou não. SubCaso 1.1: π1 é normal Se π1 é normal, pela Definição 1.5.2: FP(π)= A⊃B. Logo: (iii) π° ≡ . π π 2 3 B (iv) Assim, por (i) e (iii) temos: π° ≡ π . (v) Como π1 é normal, pelo Teorema 3.1.11-(3), p(π1*)= 0. (vi) Portanto, por (ii) e (v): p(π*)= p(π *)+ 1. (vii) Logo, por (vi) e (iv): p(π*)= p(π°*)+ 1. Assim, por (vii) e pela Definição 2.4.1: o(π)= o(π°)+ 1. SubCaso 1.2: π1 não é normal Se π1 não é normal, então, pela Definição 1.5.2, de pior seqüência: 150 (viii) π° ≡ π π π 1 o A B A B B 2 3 ⊃ . Note que A⊃B é FM em π°, π° é distinto de π apenas na subárvore determinada por A e posπ(A)> posπ(A⊃B). Então, pelo Teorema 3.1.6: (ix) A⊃B é F(π°). Por (viii), (ix) e pelo Teorema 3.2.9-(2) temos: (x) p(π°*)= p(π° *)+ p(π1°*)+ 1. (xi) Também por (viii), (ix) e pelo Teorema 3.2.2 temos: π°  ≡ . π π 2 3 B (xii) Por (i) e (xi) temos que π° ≡ π (xvi) Assim, por (xv) e pela Definição 2.4.1 temos: p(π1*)= p(π1°*)+ 1.    . (xiii) Assim, por (x) e (xii) temos: p(π°*)= p(π *)+ p(π1°*)+ 1. (xiv) Por (ii) temos que p(π1*)< p(π*). Logo, vale em π1 a hipótese indutiva. Então: (xv) o(π1)= o(π1°)+ 1. (xvii) Portanto, por (ii), (xiii) e (xvi) temos: p(π*)= p(π°*)+ 1. Então, por (xvii) e pela Definição 2.4.1: o(π)= o(π°)+ 1. CASO 2: π é do tipo: π ≡ π π π 1 k 2 3 A [A] B A B B ⊃ k , onde: (1) A⊃B é F(π); (2) A⊃B é OM de π. Pela definição de pior seqüência temos, neste caso: FP(π)= A⊃B. Logo: 151 (xviii) π° ≡ . π π π 1 2 3 [A] B Pela Definição 3.1.9, π∆, obtida de π pela multiplicação-* de A⊃B, tem a forma: (xix) π∆ ≡ A [A] B A B B 1 2 3 π π π ⊃ . (xx) Pelo Teorema 3.3.4-(4), π* ≡ π∆*. Note que A⊃B é FM em π∆, e π∆ é distinto de π apenas nas subárvores determinadas por A (A premissa menor de F(π) e nos As top-fórmulas de π2) e, para todo A expresso em π, posπ(A)> posπ(A⊃B). Então, por sucessivas aplicações do Teorema 3.1.6 (uma para cada ocorrência A) temos: (xxi) A⊃B é F(π∆). Chamemos π4 ≡ [A] . Temos então, por (xviii), (xix) e (xxi), que: π π 1 2 (xxii) π∆ ≡ A B A B B 4 3 π π ⊃ , onde A⊃B é F(π∆); e (xxiii) π° ≡ . π π 4 3 B Note que π∆ é uma derivação na qual F(π) é uma FM não multiplicativa. Portanto, vale para ela os teoremas da Seção 3.2. 152 (xxiv) Por (xxii) e pelo Teorema 3.2.2 temos: π∆  ≡ . π π 4 3 B (xxv) Por (xxii) e pelo Teorema 3.2.9-(2) temos: p(π∆*)= p(π∆ *)+ 1. (xxvi) Por (xxiii) e (xxiv) temos que: π° ≡ π∆ . (xxvii) Logo, por (xxv) e (xxvi) temos: p(π∆*)= p(π°*)+ 1. (xxviii) Por (xx) e (xxvii) temos então: p(π*)= p(π°*)+ 1. Então, por (xxviii) e pela Definição 2.4.1: o(π)= o(π°)+ 1. CASO 3: π é do tipo: π ≡ π π π 1 2 3 A B A B B ∧ , onde A∧B é F(π) (xxix) Pelo Teorema 3.2.2 temos: π  ≡ . π π 2 3 B (xxx) Pelo Teorema 3.2.9-(2) temos: p(π*)= p(π *)+ p(π1*)+ 1. Temos duas alternativas para π°, conforme π1 seja normal ou não. SubCaso 3.1: π1 é normal Se π1 é normal, pela Definição 1.5.2 temos: FP(π)= A∧B. Logo: (xxxi) π° ≡ . π π 2 3 B (xxxii) Assim, por (xxix) e (xxxi) temos: π° ≡ π . (xxxiii) Como π1 é normal, pelo Teorema3.1.11-(3), p(π1*)= 0. (xxxiv) Portanto, por (xxx) e (xxxiii): p(π*)= p(π *)+ 1. (xxxv) Logo, por (xxxii) e (xxxiv): p(π*)= p(π°*)+ 1. Assim, por (xxxv) e pela Definição 2.4.1: o(π)= o(π°)+ 1. SubCaso 3.2: π1 não é normal Se π1 não é normal, então, pela Definição 1.5.2: 153 (xxxvi) π° ≡ π π π 1 2 3 o A B A B B ∧ . Note que A∧B é FM em π°, π° é distinto de π apenas na subárvore determinada por A e posπ(A)> posπ(A∧B). Então, pelo Teorema 3.1.6: (xxxvii) A∧B é F(π°). Por (xxxvi), (xxxvii) e pelo Teorema 3.2.9-(2) temos: (xxxviii) p(π°*)= p(π° *)+ p(π1°*)+ 1. (xxxix) Também por (xxxvi), (xxxvii) e pelo Teorema 3.2.2 temos: π°  ≡ . π π 2 3 B (xl) Por (xxix) e (xxxix) temos que π°  ≡ π . (xli) Assim, por (xxxviii) e (xl) temos: p(π°*)= p(π *)+ p(π1°*)+ 1. (xlii) Por (xxx) temos que p(π1*)< p(π*). Logo, vale em π1 a hipótese indutiva. Então: (xliii) o(π1)= o(π1°)+ 1. (xliv) Assim, por (xliii) e pela Definição 2.4.1 temos: p(π1*)= p(π1°*)+ 1. (xlv) Portanto, por (xxx), (xli) e (xliv) temos: p(π*)= p(π°*)+ 1. Então, por (xlv) e pela Definição 2.4.1: o(π)= o(π°)+ 1. CASO 4: π é do tipo: π ≡ π π 1 2 A A A a x x t ∀ , onde ∀xAx é F(π) Pela Definição 1.5.2 temos, neste caso: FP(π)= ∀xAx. Logo: (xlvi) π° ≡ . π π 1 2 t a tA (xlvii) Pelo Teorema 3.2.2 temos: π  ≡ . π π 1 2 t a tA (xlviii) Pelo Teorema 3.2.9-(1) temos: p(π*)= p(π *)+ 1. 154 (xlix) Por (xlvi) e (xlvii) temos: π° ≡ π . (l) De (xlviii) e (xlix) temos: p(π*)= p(π°*)+ 1. Então, por (l) e pela Definição 2.4.1: o(π)= o(π°)+ 1. Para qualquer que seja π não normal, π se enquadra em um dos 4 casos acima, e portanto: o(π)= o(π°)+ 1. ♦ Obteremos agora, como um corolário do teorema acima, a igualdade entre o(π) e lp(π) e, portanto, a finitude do comprimento da pior seqüência para toda derivação π. 3.4.3 COROLÁRIO: Finitude do Comprimento Pior Seqüência A pior seqüência de redução de toda derivação π termina (é finita) e seu comprimento é idêntico a o(π) (lp(π)= o(π)). PROVA: Como, para toda derivação π, pelo Corolário 2.4.2 o(π)< ω, se provarmos que para todo π, lp(π)= o(π), então teremos demonstrado que a pior seqüência de redução termina para todo π. Provaremos por indução em o(π). BASE: o(π)= 1 ⇒2.4.1 p(π*)= 0 ⇒3.4.1-(3) π é normal ⇒ lp(π)= 1. Portanto, o(π)= lp(π). PASSO: o(π)> 1 HI: Para toda derivação Σ: o(Σ)< o(π) ⇒ lp(Σ)= o(Σ). Quero provar que lp(π)= o(π). Seja π°, obtida de π pela redução de FP(π). (i) Pelo Teorema 3.4.2, o(π)= o(π°)+ 1. Logo, o(π°)< o(π) e, portanto, vale para π° a hipótese de indução. (ii) Portanto, lp(π°)= o(π°). (iii) Então, por (i) e (ii), o(π)= lp(π°)+ 1. Mas π° é obtido de π por uma redução de FP(π) e, por (ii), lp(π°) é finito. Logo, é claro, pela definição de pior seqüência, que: (iv) lp(π)= lp(π°)+ 1. Assim, por (iii) e (iv), o(π)= lp(π). 155 Como o(π)< ω, para toda derivação π (Corolário 2.4.2), então, lp(π)< ω, para toda derivação π. ♦ Como conseqüência do Teorema 3.4.1, que prova que o(π) é de fato um ordinal natural para as derivações em C', obtemos de uma maneira bastante simples o Teorema de Normalização Forte para C'. 3.4.4 TEOREMA: N ormalização Forte Considere h(π) o comprimento da árvore de redução de π. Para toda derivação π temos: h(π) ≤ o(π)< ω. PROVA: Indução em o(π). BASE: o(π)= 1 o(π)= 1 ⇒ p(π*)= 0 ⇒ π é normal ⇒ h(π)= 1. Logo h(π) ≤ o(π). o(π)> 1. PASSO: HI: o(Σ)< o(π) ⇒ h(Σ) ≤ o(Σ). (i) Seja μ = π ≡ π0 → π1→ π2 →... a mais comprida seqüência de redução para π. (ii) É claro que h(π)= l(μ). (iii) Consideremos também μ1= π1→ π2 →... a seqüência obtida de μ desconsiderando-se seu primeiro termo. É claro que μ1 é a mais comprida seqüência de redução para π1 e: (iv)h(π1)= l(μ1). Mas pelo Teorema 3.4.1, como π → π1 temos que: (v) o(π1)< o(π). Logo, por (iii), vale HI em π1, e portanto: (vi) h(π1) ≤ o(π1). Assim, por (vi) e (iv) temos: (vii) l(μ1) ≤ o(π1). Como o(π1)< ω, por (iii) e (vii) é claro que l(μ)< ω e portanto: (viii) l(μ)= l(μ1)+ 1. Portanto temos: h(π) l(μ) l(μ )ii( = )viii( = 1)+ 1 o(π)vii(≤ 1)+ 1 o(π)+ 1 ⇒ h(π) ≤ o(π) ω. ♦ )v(< 20.2.6 < 156 Além de implicar em normalização forte, como provamos que o(π)= lp(π), temos que o(π) é o menor ordinal natural para C'. 3.4.5 TEOREMA: o(π) é o menor Ordinal N atural em C' Para toda derivação π temos o(π)= h(π). PROVA: Pelo Teorema 3.4.3 temos que o(π)= lp(π). Mas como lp(π) é o comprimento de uma seqüência de redução específica, então é claro que: o(π) ≤ h(π). Mas pelo Teorema 3.4.4 temos: o(π) ≥ h(π). Portanto: o(π)= h(π). ♦ Mais um resultado que é conseqüência da finitude de lp(π) e do Teorema 1.5.4 é o teorema da unicidade da forma normal, que provamos agora finalizando assim os resultados desta tese relativos ao sistema C'. 3.4.6 TEOREMA: Church-Rosser - U nicidade da Forma N ormal Todas as seqüências de redução para cada derivação π terminam na mesma derivação normal. PROVA: Seja μ = π ≡ π1→π2→...→πn uma seqüência de redução qualquer para π. Pelo Teorema 3.4.4 temos que n< ω e πn é derivação normal. Para provar o teorema provaremos que πn ≡ π P, onde πP é, como definido em 1.5.3.1-(h), a última derivação da pior seqüência de redução para π. Provar que πn ≡ π P garante a unicidade da forma normal porque uma vez que μ é uma seqüência de redução qualquer, provando que πn ≡ π P estamos provando que toda seqüência de redução para π termina na mesma derivação que a pior seqüência de redução para π termina. Logo, todas as seqüências de redução para π terminam na mesma derivação e, portanto, a forma normal para π é única. Provaremos que πn ≡ π P por indução em l(μ)= n. BASE: l(μ)= n= 1 Neste caso: 157 (i) πn ≡ π1 ≡ π. Logo, π é normal e portanto (ii) πP ≡ π. Assim, por (i) e (ii) temos: πn ≡ π P. PASSO: l(μ)= n> 1 Considere π2 de μ e μ2 ≡ π2 → ...→ πn. É claro que l(μ2)< l(μ) e portanto vale HI para π2. Então temos: (iii) πn ≡ π2 P. Mas como π → π2, pelo Teorema 1.5.4 temos que existem j,k< ω tais que: (iv) π2°j ≡ π°k. Por (iv) e pela Observação 1.5.3.1-(i) temos: (v) (π2°j) P ≡ π2 P e (π°k)P ≡ πP; Além disso, por (iv) e pela Observação 1.5.3.1-(j) temos: (vi) (π2°j) P ≡ (π°k)P. Portanto: πn π)iii(≡ 2 P (π2°)v(≡ j)P (π° )vi( ≡ k)P π )v( ≡ P. ♦ A prova do Teorema de Church-Rosser que apresentamos aqui em 3.4.6 é uma versão da prova de Massi[1990], p. 106. No entanto, Massi não demonstra incondicionalmente este resultado. Ele assume como hipótese a finitude do comprimento da pior seqüência de redução lp(π) para toda derivação π. Uma vez que demonstramos a finitude de lp(π) no Teorema 3.4.3, retiramos a hipótese condicional da prova de Massi e obtemos incondicionalmente o Teorema de Church-Rosser para C'. Terminamos aqui esta primeira parte de nossa tese que apresentou os seguintes resultados relativos ao sistema C': (1) Introduzimos o Ordinal Natural o(π) para as derivações de C'. Ou seja, definimos a atribuição numérica unívoca o(π) e provamos que, para toda derivação π: ♦(a) o(π)< ω; ♦(b) π → π' ⇒ o(π)> o(π'). 158 (2) Provamos que, para toda derivação π, o(π) coincide com o comprimento lp(π) de uma seqüência de redução específica para π (a pior seqüência de redução definida por Massi[1990]. Ou seja: ♦ o(π)= lp(π). (3) Massi demonstrou que, considerando que π°n representa a (n+ 1)-ésima derivação da pior seqüência aplicada a π, então: ♦ π → π' ⇒ ∃j,k< ω / π°j ≡ π'°k. Como conseqüência de (1), (2) e (3), considerando π uma derivação qualquer de C', obtivemos os seguintes resultados sobre o sistema C': (4) Normalização forte para C': ♦ h(π)< ω. (5) o(π) é o menor ordinal natural para π e, portanto, representa exatamente a altura da árvore de reduções para π: ♦ o(π)= h(π). (6) A pior seqüência de redução é, de fato, a mais longa seqüência de redução para π: ♦ lp(π)= h(π). (7) Church-Rosser em C': ♦ A forma normal de cada derivação de C' é única. Podemos dizer que os itens (1) a (3) acima representam resultados técnicos cujo objetivo foi viabilizar a obtenção de (4) a (7), que representam os resultados importantes que obtivemos para o sistema C'. No entanto, uma vez que o resultado (3) foi provado por Massi, e que as provas de (4) a (7) foram obtidas trivialmente a partir dos itens (1) a (3), o nosso grande esforço aqui foi a obtenção dos resultados (1) e (2). 159 Capítulo IV O Cálculo Lambda Tipificado λ⊃ e A Noção de Fórmulas como Tipos O cálculo lambda livre de tipos foi inicialmente desenvolvido por Church[1932/3] como uma teoria sobre funções como regras. Isto significa que no cálculo lambda uma função não é encarada como um conjunto de pares (argumento e valor), mas como um "processo" que transforma o argumento no valor. Podemos dizer que a abordagem de funções como conjuntos de pares, que é mais freqüentemente encontrada na matemática, é uma abordagem de caráter denotacional, que se interessa apenas pela referência das expressões matemáticas. Abordar as funções como regras introduz um elemento novo à matemática: o sentido das expressões. As expressões matemáticas na notação lambda, além de denotarem um objeto matemático, passam a também ter interesse intrínseco, na medida em que descrevem os processos de obtenção de suas referências. Ainda que não se tenha obtido sucesso em fundamentar toda a matemática através do cálculo lambda, sua abordagem das funções como regras mostrou-se extremamente frutífera em muitos aspectos, sendo de fundamental importância para aplicações computacionais. O cálculo lambda tipificado foi criado como uma restrição ao cálculo lambda livre de tipos pelo acréscimo de certas regras de manipulação de tipos, que são aderidos às variáveis e termos da teoria. O desenvolvimento do cálculo lambda tipificado se deu, historicamente, em conexão com a teoria formal de funcionais T, apresentada em Gödel[1958] como uma interpretação para a aritmética intuicionista de primeira ordem. No entanto, desde a década de sessenta, o cálculo lambda tipificado tem sido extensamente utilizado em diversas áreas da lógica, álgebra e ciência da computação, que vão desde teoria da prova até o estudo de semânticas para linguagens naturais. 32 Algumas das aplicações do cálculo lambda tipificado em teoria da prova são obtidas através da noção de fórmulas como tipos, que relaciona diretamente derivações em dedução natural com termos em cálculo lamba tipificado. Neste sentido, resultados de normalização em sistemas de cálculo lambda tipificado representam resultados de normalização nos sistemas de dedução natural a eles relacionados. Como para praticamente todas as aplicações de cálculo lambda tipificado os resultados de normalização são extremamente úteis, foram escritos vários artigos relacionados a questões de normalização para estes sistemas. Como requisito para estudarmos aqui alguns destes artigos mais relacionados com 32 Para uma lista de referências a diversos tipos de aplicações de cálculo lambda tipificado ver Statman[1979], p.73. 163 o nosso trabalho, e também para produzirmos uma versão de nosso resultado em notação lambda, descreveremos brevemente, neste capítulo, as principais noções de cálculo lambda tipificado e a relação deste com dedução natural, expressa na noção de fórmulas como tipos. Vamos apresentar primeiramente a teoria λ⊃ de cálculo lambda tipificado, que possui uma quantidade enumerável de tipos básicos, uma única lei de formação de tipos e duas leis de formação de termos: a aplicação e a abstração. Quando discutirmos a noção de fórmulas como tipos, ampliaremos um pouco este universo para um sistema mais complexo. No entanto, o sistema que mais nos interessa é λ⊃. Os resultados e definições deste capítulo não são inéditos e foram obtidos, em sua maioria, adaptando para as restrições de tipos os resultados e definições apresentados em Barendregt[1990]. Também utilizamos, principalmente para as questões relacionadas à noção de fórmulas como tipos, Howard[1980], Girard, Lafont & Taylor[1989] e Troelstra & Schwichtenberg[1996]. Este capítulo está dividido em 5 seções. Na primeira apresentamos o conjunto Λ⊃ dos termos de λ⊃ e algumas outras definições fundamentais. Na segunda seção tratamos das questões relativas à substituição de variáveis e apresentamos a convenção de nomes que estamos adotando. Na terceira seção apresentamos a noção de redução e todos os conceitos a ela relacionados, juntamente com os resultados mais básicos envolvendo estas noções. Na quarta seção introduzimos o conceito de estratégia de redução e definimos a estratégia perpétua, que será extremamente útil em nossos desenvolvimentos futuros. Na quinta e última seção discutimos a noção de fórmulas como tipos. Cabe ressaltar que a padronização de notação que adotamos em nossas definições visa facilitar a explicitação da noção de fórmulas como tipos. §1 Tipos e Termos Apresentaremos nesta seção as definições e notações mais básicas que utilizaremos na descrição de λ⊃. 164 4.1.1 DEFIN IÇÃO: Tipo O conjunto Typ de tipos é definido indutivamente por: (i) o1, o2, ... ∈ Typ; (ii) A , B ∈ Typ ⇒ A⊃B ∈ Typ. 4.1.1.1 OBSERVAÇÕES (a) o1, o2, ... são os tipos básicos de λ⊃. (b) Na literatura, o tipo combinado A⊃B também é denotado como (A )B. (c) Para nos referirmos aos tipos em geral, utilizaremos as letras latinas maiúsculas iniciais (A , B, C, D, ...) possivelmente com subíndices. 4.1.2 DEFIN IÇÃO: O Alfabeto de λ⊃ Cada termo de λ⊃ é uma palavra sobre o seguinte alfabeto: (i) Uma lista enumerável de variáveis sintáticas v0 A v1 A, v2A, ... para cada A ∈ Typ; (ii) Os símbolos auxiliares "λ", "(" e ")". 4.1.3 DEFIN IÇÃO: Os Termos de λ⊃ O conjunto dos termos de λ⊃ para cada tipo A (denotado por ΛA) é definido indutivamente como segue: (1) viA ∈ ΛA (para todo i ∈ ω); (2) M ∈ ΛA⊃B e N ∈ ΛA ⇒ (MN) ∈ ΛB; (3) M ∈ ΛB e x ∈ ΛA é uma variável sintática ⇒ (λx.M) ∈ ΛA⊃B. O conjunto de todos os λ-termos tipificados (denotado por Λ⊃) é definido como: Λ⊃ = ∪{ΛA / A ∈ Typ}. 4.1.3.1 OBSERVAÇÕES: (a) A regra (2) acima é chamada de aplicação, pois é comumente interpretada como aplicação da função M ao argumento N. (b) A regra (3) é chamada de abstração, pois normalmente interpreta-se a notação λx.M como uma maneira de encarar o termo M como sendo uma função de x. Ou seja, a 165 expressão de cálculo que M denota, que possivelmente contém a variável x, é interpretada como uma função de x. 4.1.4 N OTAÇÕES: (a) xA, yA, zA,... com ou sem subíndices, denotam as variáveis sintáticas de λ⊃. (b) MA, NA, LA, ... com ou sem subíndices denotam termos arbitrários do tipo A . (c) Sempre que for possível fazê-lo sem confusão, omitiremos os superíndices indicadores de tipo das variáveis e termos. (d) Os parênteses mais externos serão omitidos. (e) O símbolo "≡" denota identidade sintática entre termos. (f) Seja x ≡ x1, ..., xn. Então: λx1 ... xn.M ≡ λx.M ≡ λx1.(λx2.(...(λxn.M)...)). (g) N1N2...Nn ≡ (...((N1N2)N3)...Nn). 4.1.5 DEFIN IÇÃO: Variável livre e ligada Uma variável x ocorre livre em M ∈ Λ⊃ se M possui uma ocorrência de x que não está no escopo de nenhum λx. Se uma ocorrência de x em M está no escopo de algum λx, então x ocorre ligada em M. 4.1.5.1 OBSERVAÇÃO Uma variável x pode ocorrer livre e ligada em um termo M. Por exemplo, em ((λxA.xA)A⊃AxA)A, a primeira ocorrência de x é ligada e a segunda é livre. Mais adiante adotaremos uma convenção que proibirá este fato. 4.1.6 DEFIN IÇÃO: Conjunto das Variáveis Livres (FV) e das Variáveis Ligadas (BV) (1) O conjunto das variáveis livres em M ∈ Λ⊃ (denotado por FV (M)) é definido indutivamente como segue: (i) FV (x) = {x}; (ii) FV (λx.M) = FV (M) – {x}; (iii) FV (MN) = FV (M) ∪ FV (N). 166 (2) O conjunto das variáveis ligadas em M ∈ Λ⊃ (denotado por BV (M)) é definido indutivamente como segue: (i) BV (x) = ∅; (ii) BV (λx.M) = BV (M) ∪ {x} - se x ∈ FV (M) BV (M) - se x ∉ FV (M); (iii) BV (MN) = BV (M) ∪ BV (N). 4.1.6.1 NOTAÇÕES: (a) M é fechado se FV(M)= ∅. (b) ΛA0= {M∈ΛA / M é fechado}. (c) ΛA0(x)= {M∈ΛA / FV(M)⊂{x}}. (d) O fecho de M∈Λ⊃ é λx.M tal que {x}= FV(M). 4.1.7 DEFIN IÇÃO: Subtermo (N ⊂ M) N é um subtermo de M (denotamos: N ⊂ M) se N∈Sub(M), onde Sub de M é definido indutivamente por: (1) Sub(x)= {x}; (2) Sub(λx.M1)= Sub(M1) ∪ {λx.M1}; (3) Sub(M1M2)= Sub(M1) ∪ Sub(M2) ∪ {M1M2}. 4.1.7.1 NOTAÇÕES: (a) Um subtermo pode ocorrer mais de uma vez em um termo. Por exemplo, em (MA⊃A(MA⊃ANA)A)A existem duas ocorrências do subtermo M. (b) Sejam N1 e N2 ocorrências de subtermos de M. Dizemos que N1 e N2 são ocorrências disjuntas se N1 e N2 não possuem símbolos comuns. Por exemplo, em M(MN), a primeira ocorrência de M e MN são ocorrências disjuntas, mas a segunda ocorrência de M e MN não são. (c) Muitas vezes, por abuso de linguagem, usaremos apenas subtermo no lugar de ocorrência de subtermo. (d) Dizemos que N é um subtermo próprio de M, e denotamos por N ⊂ M, quando N ⊂ M e N ≡/ M. 167 §2 Convenção de Variáveis e Substituição Temos que ter, com as variáveis ligadas em λ⊃, cuidados semelhantes aos que temos no cálculo de predicados. Ou seja, não podemos permitir substituições que tornem livres variáveis que eram ligadas e vice-versa. Seguindo os passos de Barendregt[1990], adotaremos as seguintes medidas para lidarmos com esta restrição da maneira mais econômica possível: (1) Consideraremos idênticos dois termos quaisquer que possam ser transformados um no outro apenas renomeando suas variáveis ligadas, criando assim classes de equivalência módulo variáveis ligadas. (2) Cada λ⊃-termo será uma testemunha destas classes de equivalência. (3) Interpretaremos substituições M[x/ N] (a operação de substituir cada ocorrência livre da variável x em M pelo termo N) como uma operação nas classes de equivalência módulo variáveis ligadas de M e N. (4) Adotaremos uma convenção para os nomes das variáveis livres e ligadas que, sem perda de generalidade, nos permite definir substituições sem a necessidade de explicitar quaisquer restrições. 4.2.1 DEFIN IÇÃO: Troca de Variáveis Ligadas e α-Congruência (a) Uma troca de variáveis ligadas em M é uma troca de um subtermo de M da forma λxA.N por λyA.(N[x/ y]), onde y não ocorre em N. (b) M é α-congruente com N (notação: M ≡α N) se N é obtido de M por uma série de troca de variáveis ligadas. 4.2.1.1 EXEMPLOS: (a) λx.xy ≡α λz.zy ≡/α λy.yy . (b) (λx.x)x ≡α (λy.y)x ≡α (λy.y)z ≡α (λy.y)y . 4.2.2 CON VEN ÇÕES: (a) Consideraremos idênticos termos que são α-congruentes. Ou seja, se M ≡α N, diremos simplesmente que M ≡ N. 168 (b) (Convenção de Variáveis) Se os termos M1,..., Mn ocorrem em um certo contexto matemático (uma prova, uma definição,...), então, em todos estes termos, as suas variáveis livres são diferentes das suas variáveis ligadas. 4.2.3 DEFIN IÇÃO: Substituição O resultado da substituição das ocorrências livres de xA em M por N∈ΛA (denotado por M[x/ N]) é definido indutivamente por: (1) x[x/ N] ≡ N; (2) y[x/ N] ≡ y, se x ≡/ y; (3) (λy.M1)[x/ N] ≡ λy.(M1[x/ N]); (4) (M1M2)[x/ N] ≡ (M1[x/ N])(M2[x/ N]). 4.2.3.1 OBSERVAÇÕES: (a) Quando escrevemos M[x/ N] estamos assumindo tacitamente que x e N têm o mesmo tipo. (b) Note que a restrição esperada para a cláusula (3) da definição acima (y ≡/ x e y não ocorre livre em N), que proibiria a possibilidade de transformação de variáveis livres em ligadas, não precisa ser feita. Como estamos adotando a Convenção 4.2.2-(b), as variáveis livres são sempre distintas das ligadas e, portanto, é claro que x ≡/ y e que y não ocorre livre em N. 33 4.2.4 LEMA: da Substituição Se y ≡/ x e x não ocorre livre em L, então: M[x/ N][y/ L] ≡ M[y/ L][x/ N[y/ L]]. PROVA: Indução na complexidade de M. É imediato, pela definição acima que, como x ∉ FV (L), então: (i) L[x/ P] ≡ L. 33 A adoção da convenção de variáveis nos permite, sem perda de generalidade, trabalhar em λ⊃ sem preocupação com as restrições tradicionais em substituições. Barendregt[1990] apresenta uma prova formal deste resultado para cálculo-λ livre de tipos que pode ser estendida para λ⊃. 169 BASE: M é variável. Caso 1: M ≡ x M[x/ N][y/ L] ≡ x[x/ N][y/ L] N[y/ L] 4.2.3(1) ≡ x[x/ N[y/ L]] 4.2.3(1) ≡ x[y/ L][x/ N[y/ L]] ≡ M[y/ L][x/ N[y/ L]]. 4.2.3(2) ≡ Caso 2: M ≡ y M[x/ N][y/ L] ≡ y[x/ N][y/ L] y[y/ L] -(pois y ≡/ x por hipótese) 4.2.3(2) ≡ L 4.2.3(1) ≡ ≡ L[x/ N[y/ L]] -(pois x ∉ FV(L) por hipótese) (i) y[y/ L][x/ N[y/ L]] ≡ M[y/ L][x/ N[y/ L]]. 4.2.3(1) ≡ Caso 3: M ≡ z ≡/ x, y M[x/ N][y/ L] ≡ z[x/ N][y/ L] z[y/ L] 4.2.3(2) ≡ z 4.2.3(2) ≡ z[x/ N[y/ L]] 4.2.3(2) ≡ z[y/ L][x/ N[y/ L]] ≡ M[y/ L][x/ N[y/ L]]. 4.2.3(2) ≡ PASSO: Caso 1: M ≡λz.M1 M[x/ N][y/ L] ≡ (λz.M1)[x/ N][y/ L] λz.(M 4.2.3(3) ≡ 1[x/ N][y/ L]) λz.(M H.I. ≡ 1[y/ L][x/ N[y/ L]]) (λz.M 4.2.3(3) ≡ 1)[y/ L][x/ N[y/ L]] ≡ M[y/ L][x/ N[y/ L]]. Caso 2: M ≡ M1M2 M[x/ N][y/ L] ≡ (M1M2)[x/ N][y/ L] (M 4.2.3(4) ≡ 1[x/ N][y/ L])(M2[x/ N][y/ L]) (M H.I. ≡ 1[y/ L][x/ N[y/ L]])(M2[y/ L][x/ N[y/ L]]) (M 4.2.3(4) ≡ 1M2)[y/ L][x/ N[y/ L]] ≡ M[y/ L][x/ N[y/ L]].♦ 170 §3 Reduções Apresentamos nesta seção a definição de redução-β, que terá papel fundamental em todo o nosso desenvolvimento. Juntamente, apresentamos várias outras noções derivadas desta, como estratégia de redução e forma normal, além de convenções de notação, como os contextosA,B, que nos permitem trabalhar melhor com as reduções. Vários resultados básicos envolvendo reduções e estes conceitos relacionados também serão apresentados. 4.3.1 DEFIN IÇÃO: redução-β (→) Definimos a redução-β de um termo M a um termo M' (notação: M → M') por indução na complexidade de M da seguinte forma: (1) (λx.P)Q → P[x/ Q]; (2) N → N' ⇒ ZN → ZN', para um termo Z qualquer; (3) N → N' ⇒ NZ → N'Z, para um termo Z qualquer; (4) N → N' ⇒ λx.N → λx.N'. 4.3.1.1 OBSERVAÇÕES: (a) Note que se M → M', a diferença entre M e M' é que M possui uma ocorrência de subtermo ∆ ≡ (λx.P)Q, chamado redex, que em M' é da forma ∆' ≡ P[x/ Q], chamado contractum. Assim, a notação M →∆ M' é utilizada para identificar explicitamente qual o redex de M que foi substituído por seu contractum na redução M → M'. (b) Considere o redex ∆ ⊂ M tal que ∆ ≡ (λx.P)Q. Se x ∈ FV (P), dizemos que ∆ é um I-redex. Quando x ∉ FV (P), ∆ é chamado K-redex. (c) Sempre que nos referirmos à uma ocorrência de subtermo pelo nome ∆ (possivelmente com subíndices), estaremos nos referindo a um redex. (d) Se M é tal que não existe ∆ ⊂ M, então dizemos que M está na forma normal, ou M é normal. (e) Uma seqüência de redução é uma seqüência do tipo: M ≡ M0 →∆1 M1 →∆2 M2 →∆3... . (f) A coleção de todas as seqüências de redução iniciadas em M ≡ M0 forma uma árvore chamada árvore de redução para M. Cada ramo desta árvore identifica uma seqüência de redução específica para M. 171 (g) Chamaremos de altura da árvore de redução para um termo M, e denotaremos por h(M), ao número de termos do mais comprido ramo da árvore de redução de M. Note que h(M) representa o comprimento da seqüência de redução mais longa para M. (h) Um termo M é fortemente normalizável se sua árvore de redução é finita, ou, em outras palavras, se todas as seqüências de redução para M são finitas. 4.3.2 DEFIN IÇÃO: (→ ) O fecho transitivo de "→", denotado por "→ ", é definido indutivamente como: (1) M → N ⇒ M → N; (2) M → N e N → P ⇒ M → P. 4.3.2.1 OBSERVAÇÕES: (a) O fecho transitivo e reflexivo de "→", denotado por "→ R", é definido pelo acréscimo do seguinte item aos Itens (1) e (2) acima: (3) M → R M. (b) Se M → R M', então é claro que existe uma seqüência de redução finita tal que: M ≡ M0 →∆1 M1 →∆2 ... →∆n Mn ≡ M', para 0 ≤ n< ω. A seguir apresentamos dois resultados básicos envolvendo as noções já introduzidas. 4.3.3 LEMA: (a) N → N' ⇒ ZN → ZN'. (b) N → N' ⇒ NZ → N'Z. (c) N → N' ⇒ λx.N → λx.N'. PROVA: Indução na definição de "→ " BASE: N → N' porque N→N' Como N → N', pela Definição 4.3.1 temos: (i) ZN → ZN' , NZ → N'Z e λx.N → λx.N'. Mas por (i) e pela Definição 4.3.2-(1) temos: ZN → ZN' , NZ → N'Z e λx.N → λx.N'. PASSO: N → N' porque N → P e P → N' H.I.: O resultado se aplica para N → P e P → N'. 172 Por HI temos: (ii) ZN → ZP , NZ → PZ e λx.N → λx.P. (iii) ZP → ZN' , PZ → N'Z e λx.P → λx.N'. Assim, por (ii), (iii) e pela Definição 4.3.2-(2) temos: ZN → ZN' , NZ → N'Z e λx.N → λx.N'. ♦ 4.3.4 LEMA: Se x∈FV(M) então: (a) (N → N') ⇒ (M[x/ N] → M[x/ N']). (b) (M → M') ⇒ (M[x/ N] → M'[x/ N]). PROVA: Item (a): Indução na complexidade de M BASE: M ≡ y (M é variável) Caso 1: y ≡/ x Note que o teorema não se aplica neste caso, pois y ≡/ x ⇒ x∉FV(y). Caso 2: y ≡ x Neste caso, pela Definição 4.2.3 temos: M[x/ N] ≡ N e M[x/ N'] ≡ N'. Logo, como N → N', pela Definição 4.3.2 temos N → N' e portanto: M[x/ N] → M[x/ N']. PASSO: Caso 1: M ≡ PQ Então, pela Definição 4.2.3-(4) temos: (i) M[x/ N] ≡ (PQ)[x/ N] ≡ P[x/ N]Q[x/ N]. (ii) M[x/ N'] ≡ (PQ)[x/ N'] ≡ P[x/ N']Q[x/ N']. (iii) Mas por HI: (a) P[x/ N] → P[x/ N'], (b) Q[x/ N] → Q[x/ N']. Então, por (iiia) e pelo Lema 4.3.3-(2) temos: (iv) P[x/ N]Q[x/ N] → P[x/ N']Q[x/ N]. Analogamente, por (iiib) e pelo Lema 4.3.3-(1) temos: (v) P[x/ N']Q[x/ N] → P[x/ N']Q[x/ N']. Logo, por (iv), (v) e pela Definição 4.3.2-(2) temos: 173 P[x/ N]Q[x/ N] → P[x/ N']Q[x/ N'] M[x/ N] → M[x/ N']. ⇒ ( )i e (ii) Caso 2: M ≡ λy.P Pela Definição 4.2.3-(3) temos: (vi) M[x/ N] ≡ (λy.P)[x/ N] ≡ λy.(P[x/ N]). (vii) M[x/ N'] ≡ (λy.P)[x/ N'] ≡ λy.(P[x/ N']). (viii) Mas por HI: P[x/ N] → P[x/ N']. Por (viii) e pelo Lema 4.3.3-(3) temos: (ix) λy.(P[x/ N]) → λy.(P[x/ N']). Logo, por (vi), (vii) e (ix) temos: M[x/ N] → M[x/ N'].   Item (b): Indução na complexidade de M BASE: M ≡ y (variável) Neste caso M está na forma normal, logo o resultado é válido por vacuidade. PASSO: Caso 1: M ≡ PQ Temos aqui três subcasos possíveis para definir a forma de M': (1) M' ≡ P'Q , onde P → P', (2) M' ≡ PQ', onde Q → Q', (3) P ≡ λy.P1, M ≡ (λy.P1)Q e M' ≡ P1[y/ Q]. SubCaso 1.1: M' ≡ P'Q , onde P → P' Então, pela Definição 4.3.2-(4) e pela hipótese do caso temos: (i) M[x/ N] ≡ (PQ)[x/ N] ≡ P[x/ N]Q[x/ N]. (ii) M'[x/ N] ≡ (P'Q)[x/ N] ≡ P'[x/ N]Q[x/ N]. (iii) Mas como P → P', por HI temos: P[x/ N] → P'[x/ N]. Então, por (iii) e pelo Lema 4.3.3-(2) temos: (iv) P[x/ N]Q[x/ N] → P'[x/ N]Q[x/ N]. Logo, por (i), (ii) e (iv) temos: M[x/ N] → M'[x/ N]. SubCaso 1.2: M' ≡ PQ' , onde Q → Q' O resultado segue análogo ao caso anterior, utilizando o Lema 4.3.3-(1). SubCaso 1.3: P ≡ λy.P1, M ≡ (λy.P1)Q e M' ≡ P1[y/ Q] 174 Temos neste caso que: (v) ((λy.P1)Q)[x/ N] (λy.P4.2.3≡ 1[x/ N])Q[x/ N] P4.3.1(1)→ 1[x/ N][y/ Q[x/ N]]. (vi) P1[x/ N][y/ Q[x/ N]] P4.2.4≡ 1[y/ Q][x/ N]. (vii) Então, por (v) e (vi) temos: ((λy.P1)Q)[x/ N] → P1[y/ Q][x/ N]. Portanto, por (vii) e pela Definição 4.3.2-(1) temos: M[x/ N] ≡ ((λy.P1)Q)[x/ N] → P1[y/ Q][x/ N] ≡ M'[x/ N]. Caso 2: M ≡ λy.P Pela Definição 4.2.3-(3) temos: (viii) M[x/ N] ≡ (λy.P)[x/ N] ≡ λy.(P[x/ N]). (ix) M'[x/ N] ≡ (λy.P')[x/ N] ≡ λy.(P'[x/ N]). (x) Mas por HI: P[x/ N] → P'[x/ N]. Então, por (x) e pelo Lema 4.3.3-(3) temos: (xi) λy.(P[x/ N]) → λy.(P'[x/ N]). Logo, por (viii), (ix) e (xi) temos: M[x/ N] → M[x/ N']. ♦ A definição que apresentamos a seguir é uma ótima ferramenta para explicitar uma ocorrência de subtermo específica. Ela será particularmente útil no estudo das alterações que as reduções provocam nos termos. Podemos relacioná-la com a noção de subárvore em dedução natural. 4.3.5 DEFIN IÇÃO: ContextoA,B - (C[ ]A)B Para cada A, B ∈ Typ, um contextoA,B (denotado por (C[ ]A) B) é uma estrutura do tipo B que contém um "espaço vazio" que, se preenchido por um termo do tipo A , produz um termo do tipo B. Mais formalmente temos: (1) ([ ]A)A é um contextoA,A. (2) Se (C1[ ]A) B⊃C é um contextoA,B⊃C e M∈Λ B, então ((C1[ ]A)M) C é um contextoA,C. (3) Se (C1[ ]A) B é um contextoA,B e M∈Λ B⊃C, então (M(C1[ ]A)) C é um contextoA,C. (4) Se (C1[ ]A) C é um contextoA,C e xB∈ΛB, então (λx.C1[ ]A) B⊃C é um contextoA,B⊃C. 175 4.3.5.1 OBSERVAÇÕES: (a) Note que um contextoA,B difere de um termo do tipo B apenas por possuir o símbolo "[ ]A" (um "buraco" do tipo A ) no lugar de um subtermo do tipo A . (b) Esta definição, difere da definição de Barendregt[1990], não apenas no que diz respeito aos tipos, mas também à quantidade de "buracos" em um contexto. Barendregt define contextos como estruturas contendo vários "buracos". A nossa definição permite apenas um "buraco". (c) Quando for possível fazê-lo sem provocar confusão, omitiremos as indicações de tipos de um contextoA,B. Por exemplo, o "contextoA,B (C[ ]A) B" poderá ser referido apenas como "contexto (C[ ])". (d) Os parênteses externos de um contexto também serão omitidos sempre que possível fazê-lo sem confusão. (e) Seja C[ ] um contexto da forma: C[ ] ≡ C1[ ]M, e seja ∆ ⊂ M. Se M →∆ M', então C1[ ]M', pela Definição 4.3.5-(3), também é um contexto, que denotaremos por C'[ ]. Por abuso de linguagem utilizaremos a notação C[ ] →∆ C'[ ] para denotar que o resultado da redução de ∆ em um subtermo de C[ ] também é um contexto. 34 4.3.6 DEFIN IÇÃO: C[M] Se (C[ ]A) B é um contextoA,B e M∈Λ A, então C[M] denota o resultado da substituição literal do "buraco" [ ]A de (C[ ]A)B por M. 4.3.6.1 OBSERVAÇÃO: Note que nesta substituição pode ocorrer que variáveis livres de M se tornem ligadas em C[M]. Esta é a principal característica dos contextos. O lema seguinte demonstra que se C[ ] é um contexto, então C[M] é um termo. 34 Nem sempre, em um contexto, a substituição de um redex pelo seu contractum resulta em um contexto. Este caso pode ocorrer quando o símbolo []A ocorre no redex que reduziremos. No exemplo: C[] ≡ ((λx.(λy.x)x)[])z → ((λy.[])[])z, temos que ((λy.[])[])z não é um contexto, pois possui dois "buracos". 176 4.3.7 LEMA: Se (C[ ]A) B é um contextoA,B e N∈ΛA, então C[N]∈ΛB PROVA: Queremos provar que C[N] é um termo do tipo B, o que será feito por indução na complexidade (comprimento) de C[ ]. BASE: (C[ ]A)B ≡ ([ ]A)B (i) Neste caso, pela Definição 4.3.5-(1) temos A ≡ B. Pela Definição 4.3.6, C[N] ≡ N ∈ ΛA = Λ ( )i B. Logo, C[N]∈ΛB. PASSO: Caso 1: (C[ ]A)B ≡ (C1[ ]AM )B (ii) Pela Definição 4.3.5-(2) temos: (C1[ ]A) C⊃B é um contextoA,C⊃B e M∈ΛC. Pela Hipótese do caso e por (ii) é claro que: (iii) (C[N]A)B ≡ ((C1[N]A)C⊃BMC) B. (iv) Mas por HI e (ii) temos que (C1[N]A)C⊃B∈ΛC⊃B. Logo, por (ii) (iii) e (iv) temos: (C[N]A)B∈ΛB. Caso 2: (C[ ]A)B ≡ (MC1[ ]A)B Análogo ao caso anterior utilizando a Definição 4.3.5-(3). Caso 3: (C[ ]A) B = (λx.C1[ ]A) B Análogo ao Caso 1 utilizando a Definição 4.3.5-(4). ♦ 4.3.8 OBSERVAÇÕES: (a) O Lema 4.3.7, juntamente com as Definições 4.3.5 e 4.3.6 viabilizam uma notação poderosa para tornarmos explícitas quaisquer ocorrências de subtermo. Podemos tornar explícita, por exemplo, uma certa ocorrência do subtermo N⊂M através da notação M ≡ C[N]. Neste caso, está implícita na notação M ≡ C[N] a posição de N em M. (b) No caso particular das reduções, se M →∆ M' tal que ∆ ≡ (λx.P)Q, podemos explicitar a contração de ∆ através da notação: M ≡ C[(λx.P)Q] → C[P[x/ Q]] ≡ M'. No lema seguinte demonstramos formalmente este importante resultado descrito no item (b) da observação acima, que relaciona a noção de contextos com redução. 177 4.3.9 LEMA: N →∆ N' ⇒ C[N] →∆ C[N'] PROVA: Indução na complexidade de C[ ] BASE: C[ ] ≡ [ ] Neste caso, C[N] ≡ N , C[N'] ≡ N', e portanto o resultado é trivial. PASSO: Caso 1: C[ ] ≡ C1[ ]M (i) Por HI temos que: C1[N] →∆ C1[N']. Logo, por (i) e pela Definição 4.3.1-(2) temos: C[N] ≡ C1[N]M →∆ C1[N']M ≡ C[N'] Caso 2: C[ ] ≡ MC1[ ] Análogo ao caso anterior aplicando a Definição 4.3.1-(1). Caso 3: C[ ] ≡ λx.C1[ ] Análogo ao caso anterior aplicando a Definição 4.3.1-(3). ♦ 4.3.9.1 COROLÁRIO: N → N' ⇒ C[N] → C[N']. PROVA: Imediata usando os Lemas 4.3.3 e 4.3.9. ♦ §4 A Estratégia Perpétua Nesta seção definimos o conceito de estratégia de redução e apresentamos uma estratégia específica, a estratégia perpétua, primeiramente definida em Barendregt[1990] para cálculo lambda livre de tipos. Esta estratégia, no caso de λ⊃, terá o mesmo papel que a pior seqüência de redução tem para o caso do sistema de dedução natural C'. 4.4.1 DEFIN IÇÃO: Estratégia de Redução (F) (1) A função F: Λ⊃ → Λ⊃ é uma estratégia de redução se: ∀M∈Λ⊃, M → R F(M); 178 (2) Uma estratégia F é uma estratégia-R1 (ou one-step) se: ∀M∈Λ⊃ que não é normal: M → F(M); 4.4.1.1 NOTAÇÕES: (a) Se F é uma estratégia de redução denotamos: (1) F0(M) ≡ M; (2) F(n+1)(M) ≡ F(Fn(M)). (b) Se F é uma estratégia-R1, denotamos o redex de M reduzido em M → F(M) por ∆F. 4.4.2 DEFIN IÇÃO: F-path Se F é uma estratégia de redução, o F-path de um termo M é a seguinte seqüência: M, F(M), F2(M), F3(M), ... . 4.4.2.1 OBSERVAÇÃO: Quando F é uma estratégia-R1, o F-path para M representa a seguinte seqüência de redução obtida a partir de M: M ≡ M0 →∆1F M1 →∆2F M2 →∆3F ... . 4.4.3 DEFIN IÇÃO: Comprimento do F-path (L M)) 4.4.3.1 OBSERVAÇÃO: F( Seja F uma estratégia de redução. O comprimento do F-path de M, denotado por LF(M), é μn[Fn(M) é normal] (o menor n tal que Fn(M) é normal). Além disso, LF(M)= ∞ se o F-path de M for infinito. Quando F é uma estratégia-R1, LF(M) representa o comprimento da seqüência de redução M ≡ M0 →∆1F M1 →∆2F M2 →∆3F ... . 4.4.4 DEFIN IÇÃO: Left-Most Redex (1) Seja ∆ ⊂ M. A primeira ocorrência do símbolo λ em ∆ é chamada de o λ de ∆. (2) Seja ∆1 e ∆2 ⊂ M. Dizemos que ∆1 está à esquerda de ∆2 em M se o λ de ∆1 está à esquerda do λ de ∆2 em M. (3) ∆ ⊂ M é o leftmost redex de M se ∆ está à esquerda de todos os outros redex de M. 179 4.4.4.1 OBSERVAÇÕES: (a) Em M ≡ λa.(λb.(λc.c)b)d((λe.N)a), por exemplo, temos 3 redex: ∆1 ≡ (λc.c)b, ∆2 ≡ (λe.N)a e ∆3 ≡ (λb.(λc.c)b)d((λe.N)a). Pela definição acima, ∆3 é o left-most redex de M, pois seu λ está à esquerda dos λs de ∆1 e ∆2. (b) Se ∆1, ∆2 ⊂ M e ∆2 ⊂ ∆1, então é claro que ∆1 está à esquerda de ∆2 em M. Isso porque, como ∆1 é redex, ele tem a seguinte forma: ∆1 ≡ (λx.P)Q. Mas pela forma de ∆1, se ∆2 ⊂ ∆1, então ou ∆2 ⊂ P ou ∆2 ⊂ Q. Em ambos os casos é claro que o λ de ∆1 está à esquerda do λ de ∆2. (c) Denotamos por M  o termo obtido pela redução do left-most redex de M. 4.4.5 DEFIN IÇÃO: A Estratégia Perpétua F∞ Seja M um termo normal ou com a forma M ≡ C[∆] ∈ Λ⊃ tal que ∆ ≡ (λx.P)Q é o left-most redex de M. Definimos então F∞(M) como: M , se M for normal F∞(M)= C[P[x/ Q]] , se ∆ for um I-redex Se M não for normal C[P] , se Q for normal Se ∆ for um K-redex C[(λx.P)F∞(Q)] , se Q não for normal 4.4.5.1 OBSERVAÇÕES: (a) Utilizaremos muitas vezes as abreviações: F∞(M) ≡ M° e F∞k(M) ≡ M°k. (b) É fácil ver que F∞ é uma estratégia-R1, e portanto utilizaremos a notação M → p M°. (c) Note que o F∞-path para o termo M (M ≡ M°0, M°1, M°2,... M°n,...) corresponde à uma seqüência de redução M ≡ M°0 →p M°1 →p M°2 →p ... M°n →p ..., que chamaremos de pior seqüência de redução para o termo M, cujo comprimento é LF∞(M). Dessa forma podemos utilizar a seguinte notação: M →p R M°k (para todo 0 ≤ k < LF∞(M)). (d) Como, para cada termo não normal M, a estratégia perpétua associa um e apenas um termo M°, é claro que para cada termo M a pior seqüência é única. 180 (e) É imediato, pela unicidade da pior seqüência que: (M°n)°m ≡ M°n+m. Ou seja, o (m+ 1)-ésimo termo da pior seqüência para M°n é exatamente o (n+ m+ 1)-ésimo termo da pior seqüência para M. (f) Quando LF∞(M)< ω, denotaremos o último termo da pior seqüência de redução para M por MP. (g) Para m< LF∞(M) é claro que (M° m)P ≡ MP, pois a pior seqüência é única e M°m pertence à pior seqüência de M. (h) Também pela unicidade da pior seqüência de redução é claro que: M ≡ N ⇒ MP ≡ NP. (i) A Definição 4.4.5 captura a mesma idéia que a definição de Massi da pior seqüência de redução: nenhum caminho curto é feito quando um mais longo é possível. Seguindo a estratégia perpétua, não é possível que uma redução qualquer elimine algum redex, nem que se reduza um redex quando for possível multiplicá-lo através de uma outra redução. (j) No Capítulo VI, quando desenvolveremos o nosso resultado para λ⊃, provaremos que: (1) ∀M (LF∞(M)< ω) e (2) (M → M') ⇒ (LF∞(M)< LF∞(M')). Ou seja, provaremos que LF∞(M) é o menor ordinal natural para λ⊃. §5 A N oção de Fórmulas Como Tipos Quem primeiro apresentou de uma maneira completa e batizou a noção de fórmulas como tipos foi Howard[1980] 35 . No entanto, as primeiras referências a esta noção são encontradas nos trabalhos de Curry. Mais precisamente em Curry & Feys[1958], seções 9E-F, esta noção é apresentada para uma lógica intuicionista implicativa. Segundo Troelstra & Schwichtenberg[1996], referências mais antigas ainda, e também menos desenvolvidas, são encontradas em Curry[1942], p.60, nota 28 e em Curry[1934], p.588. Uma abordagem independente à de Howard foi apresentada em Girard[1971]. 36 35 Texto que circulava informalmente desde 1969. 36 A noção de fórmulas como tipos também é mencionada na literatura como o "Isomorfismo Curry-Howard". 181 Explicitamente falando, a noção de fórmulas como tipos relaciona as regras de dedução natural com as leis de formação de termos do cálculo lambda tipificado. Dessa forma, um encadeamento de regras (uma derivação) corresponde a um encadeamento de subtermos (um termo). Constrói-se assim uma bijeção relacionando derivações com termos, onde a partir de uma estrutura (uma derivação ou um termo) obtém-se facilmente a estrutura relacionada no outro sistema. Vamos inicialmente relacionar o fragmento implicativo positivo de C (que denotaremos por C⊃) com λ⊃. Na construção desta relação, as questões fundamentais referentes à noção de fórmulas como tipos serão esclarecidas. Em seguida, apresentaremos uma extensão desta relação para o sistema de dedução natural I, de lógica intuicionista de Heyting, que introduzimos no Capítulo I. Por fim discutimos um pouco sobre a importante questão da transferência de provas de normalização entre sistemas, que é viabilizada pela noção de fórmulas como tipos. 4.5.1 DEFIN IÇÃO: O Sistema C⊃ O Sistema C⊃ é obtido restringindo os símbolos lógicos da linguagem de C a "⊃", e suas regras a (⊃I) e (⊃E). 4.5.1.1 OBSERVAÇÃO: Note que os tipos de λ⊃ têm a mesma estrutura que as fórmulas de C⊃. Assim, a noção de fórmulas como tipos produzirá um isomorfismo entre termos e derivações tal que um termo do tipo A será relacionado biunivocamente com uma derivação cuja raiz é a fórmula A. Ou seja, relacionaremos M ∈ ΛA com . A Mπ 4.5.2 DEFIN IÇÃO: Isomorfismo de Fórmulas como Tipos entre λ⊃ e C⊃ O isomorfismo de fórmulas como tipos entre λ⊃ e C⊃ é obtido relacionando cada termo M ∈ Λ⊃ a uma derivação πM, indutivamente, da seguinte forma: (1) M ≡ xA ⇔ πM ≡ A; 182 (2) M ≡ (M1B⊃AM2B)A ⇔ πM ≡ A ABB 12 MM ⊃ ππ (⊃E); (3) M ≡ (λxA.M1B)A⊃B ⇔ πM ≡ x M x BA B ]A[ 1 ⊃ π (⊃I). 4.5.2.1 OBSERVAÇÕES: (a) É imediato, por inspeção na definição acima, que as variáveis de um termo M correspondem às hipóteses da derivação πM. Variáveis livres de M correspondem a hipóteses abertas de πM, enquanto que variáveis ligadas correspondem a hipóteses cortadas. Assim, se xA ∈ FV (MB), então πM ≡ . Da mesma forma, se x B ]A[ Mπ A ∈ BV (MB), então πM ≡ . B ]A[ M x π (b) Uma aplicação da regra (⊃I) que não corta hipóteses, BA B 1M ⊃ π , corresponde a uma abstração (λxA.M1B) A⊃B na qual x não ocorre livre em M1. (c) Como as fórmulas de uma derivação πM representam os tipos dos subtermos de M e vice-versa, faz então sentido nos referirmos ao isomorfismo entre termos e derivações como o isomorfismo das "fórmulas como tipos". (d) Como as variáveis livres de um termo M representam hipóteses abertas de πM, é fácil ver que uma substituição da forma MB[xA/ NA] representa a substituição das hipóteses abertas A de pela derivação . Assim, temos a importante equivalência: B ]A[ Mπ A Nπ M ≡ M1 B[xA/ M2 A] ⇔ πM ≡ B ]A[ 1 2 M M π π O teorema seguinte estabelece uma relação fundamental obtida da noção de fórmulas como tipos para os sistemas C⊃ e λ⊃. Estabelece que reduções de FM em C⊃ são equivalentes a reduções-β em λ⊃. 183 4.5.3 TEOREMA: Equivalência entre redução de FM em C⊃ e redução-β em λ⊃ Para M e N λ⊃-termos, e πM e πN as respectivas C⊃-derivações obtidas pelo Isomorfismo 4.5.2 acima, temos: M → N ⇔ πM → πN. PROVA: Por indução na complexidade de M BASE: M ≡ (λx.M1)M2 N ≡ M )1(1.3.4 − ⇒ 1[x/ M2] O seguinte esquema demonstra a equivalência para o caso básico da contração de um redex: M ≡ ((λxA.M1B) A⊃BM2A) B M β− → redução 1 B[xA/ M2A] ≡ N c c 4.5.2 oIsomorfism 4.5.2 oIsomorfism πM ≡ B BA B ]A[ A x M x M 1 2 ⊃ π π ≡ πN . FM. de redução → 2 1 M M ]A[ B π π PASSO: CASO 1: MB ≡ (ZA⊃BM1 A)B e N ≡ (ZA⊃BN1 A)B O seguinte esquema prova este caso: π ≡ M1 A → N1 A M ≡ (Z )2(1.3.4 − ⇒ A⊃BM1 A)B → (ZA⊃BN1 A)B ≡ N c c c (Isomorfismo 4.5.2) c A 1M π π 4.1 ⇒ M B BAA ZM1 ⊃ ππ → B BAA ZN1 ⊃ ππ ≡ π N → A 1N HI: (M1→N1 ⇔ πM1 → πN1 ) M → N ⇔ πM → πN CASO 2: MB ≡ (M1 A⊃BZA)B e N ≡ (N1 A⊃BZA)B Analogamente ao caso anterior: 184 M1 A⊃B → N1 A⊃B M ≡ (M )3(1.3.4 − ⇒ 1 A⊃BZA)B → (N1 A⊃BZA)B ≡ N c c c (Isomorfismo 4.5.2) c → ⇒ π BA 1M ⊃ π BA 1N ⊃ π 4.1 M ≡ B BAA 1MZ ⊃ ππ → B BAA 1NZ ⊃ ππ ≡ πN HI: (M1→N1 ⇔ πM1 → πN1 ) M → N ⇔ πM → πN CASO 3: M ≡ (λx M1 B⊃A e N ≡ (λx N B B. A) B. 1 A)B⊃A Analogamente aos casos anteriores: M1 A → N1 A 4 M ≡ (λx )4(1.3. − ⇒ B.M1 A)B⊃A → (λxB.N1 A)B⊃A ≡ N c c c (Isomorfismo 4.5.2) c A 1M π → ⇒ π1Nπ 4.1 M ≡ x M x AB A ]B[ 1 ⊃ π → x N AB A 1 ⊃ π ≡ πN x]B[ A HI: (M1→N1 ⇔ πM1 → πN1 ) M → N ⇔ πM → πN ♦ O Teorema 4.5.3 demonstra que temos não apenas um isomorfismo entre termos de λ⊃ e derivações de C⊃, mas também uma equivalência destes dois sistemas como "rewriting systems". Isso significa que resultados sobre normalização, unicidade da forma normal e estimativas sobre o comprimento das seqüências de reduções são diretamente intercambiáveis entre os dois sistemas. Na verdade podemos mesmo considerá-los como sendo notações distintas para o mesmo objeto de estudo. Os sistemas de dedução natural correspondem a uma notação bastante analítica, que prioriza a visualização do encadeamento dos passos lógicos elementares que provam a dedução expressa na derivação. Sua motivação é de origem epistemológica, ou seja, queremos que uma derivação seja a justificativa da veracidade da dedução que ela expressa. Já os sistemas de cálculo lambda tipificado possuem uma notação mais compacta, no entanto extremamente precisa, "que nos diz exatamente como devemos manipular hipóteses 185 abertas e fechadas quando substituímos uma árvore de prova por outra" 37 . Além disso, a notação lambda possui um aspecto computacional bastante útil, pois melhor do que descrever os passos lógicos, ela descreve os objetos funcionais que subjazem a uma prova. Podemos de fato, como sugere Girard, Lafont & Taylor[1989], p. 17, interpretar um lambda termo como um programa que efetua os cálculos da dedução que ele representa. A seguir apresentaremos um isomorfismo de fórmulas como tipos entre o sistema I de dedução natural e um sistema de cálculo lambda tipificado sensivelmente mais complexo que λ⊃, que chamaremos de λI. A definição deste isomorfismo nos dará maior clareza a respeito do tipo de complicações introduzidas pelo tratamento de novos conectivos e regras. 4.5.4 DEFIN IÇÃO: O Sistema λ (v) M ∈ Λ ⇒ k M) ∈ Λ k M) ∈ Λ I (1) O Sistema λI é obtido estendendo λ⊃ ao conjunto TypI de tipos definido por: (i) Se t é termo da linguagem de I, então t ∈ TypI. 38 (ii) Se A é fórmula da linguagem de I, então A ∈ TypI. 39 (2) Os termos de λI são então definidos como: (i) Para todo i ∈ ω , viA ∈ ΛA (variáveis sintáticas), vit ∈ Λt (termos individuais), via ∈ Λa (variáveis individuais); (ii) M ∈ ΛA⊃B e N ∈ ΛA ⇒ MN ∈ ΛB; (iii) M ∈ ΛA e N ∈ ΛB ⇒ p(M,N) ∈ ΛA∧B; (iv) M ∈ ΛA∧B ⇒ p1(M) ∈ ΛA e p2(M) ∈ ΛB; A 0B( B∨A e 1B( A∨B; (vi) M ∈ ΛA∨B , N, Z ∈ ΛC e xA ∈ ΛA, yB ∈ ΛB são variáveis sintáticas ⇒ ⇒ E∨x,y(M,N,Z) ∈ ΛC; 37 Cf. Troelstra & Schwichtenberg[1996], p 26. 38 Não confundir "termo da linguagem de I" com "termo de λI". O primeiro se refere a um termo da linguagem do cálculo de predicados de primeira ordem (uma variável individual, ou uma constante individual, ou um símbolo funcional aplicado a termos). O segundo se refere a um λI-termo. 39 Usaremos letras maiúsculas A, B, C, ... com ou sem subíndices para indicar os tipos que correspondem a fórmulas. Para os tipos que correspondem a termos da linguagem de I, usaremos as letras minúsculas a, b, c, ... para indicar os tipos que correspondem à variáveis individuais, e a letra minúscula itálica t, possivelmente com subíndices, para indicar os tipos que correspondem a termos compostos (símbolos de função aplicados a termos) da linguagem de I. 186 (vii) M ∈ ΛB e xA ∈ ΛA é variável sintática ⇒ λx.M ∈ ΛA⊃B; (viii) M ∈ ΛA(a) e xa ∈ Λa é variável individual ⇒ λx.M ∈ Λ∀xA(x) tal que: (yB ∈ FV (M)) ⇒ (a não ocorre livre em B); (ix) M ∈ Λ∀xA(x) e yt ∈ Λt é termo individual ⇒ My ∈ ΛA(t); (x) M ∈ ΛA(t) e yt ∈ Λt é termo individual ⇒ p(M, y) ∈ Λ∃xA(x); (xi) M ∈ Λ∃xA(x) , N ∈ ΛC e y ∈ ΛA(a) ⇒ E∃y(M, N) ∈ ΛC, tal que: zB ∈ FV (N) e z ≡/ y ⇒ a não ocorre livre em B; (xii) M ∈ Λ⊥ ⇒ EA⊥(M) ∈ ΛA. 4.5.4.1 OBSERVAÇÕES: (3) Definimos, assim, ΛI = ∪{ΛA / A ∈ TypI}. (a) Não importa muito, para os nossos objetivos, sabermos exatamente a denotação dos novos operadores introduzidos (p, p1, p2, k0B, k1B, E∨x,y, E∃y, EA⊥). No entanto, apenas para dar um pouco mais de significado aos termos de λI, podemos interpretar estes novos operadores como: ♦ p(M,N) agrupa os termos MA e NB em um par (M,N) de tipo A∧B; ♦ p1(M) é a primeira projeção de um par. Assim, se MA∧B ≡ p(M1A,M2B) A∧B, então p1(M) ≡ M1A. Analogamente, p2(M) ≡ M2B. ♦ k0B(M) apenas modifica o tipo de M, para cada B ∈ TypI, da seguinte forma: k0B(M A) ≡ MB∨A. Analogamente, k1B(MA) ≡ MA∨B. ♦ E∨x,y(M,N,Z) agrupa o trio MA∨B, NC, ZC em um termo do tipo C, e, como veremos adiante, torna ligadas as variáveis xA e yB de N e Z respectivamente. Analogamente, E∃y(M, N) agrupa o par M∃xA, NC em um termo do tipo C, tornando ligada a variável yA de N. ♦ EA⊥(M), para cada tipo A, muda o tipo de qualquer M⊥ ∈ Λ⊥ para MA. 4.5.5 DEFIN IÇÃO: Variáveis Livres e Ligadas O conjunto das variáveis livres em M ∈ ΛI (denotado por FV (M)) é definido indutivamente como segue: (i) FV (x) = {x}; (ii) FV (MN) = FV (p(M,N)) = FV (M) ∪ FV (N); 187 (iii) FV (Myt) = FV (p(M,yt)) = FV (k0B(M)) = FV (k1B(M)) = FV (EA⊥(M)) = FV (M); (iv) FV ((λxa.MA(a))∀xA(x)) = FV (M); (v) FV ((λxA.MB)A⊃B) = FV (M) – {x}; (vi) FV (E∨x,y(M,N,Z)) = FV (M) ∪ ((FV (N) – {x}) ∪ ((FV (Z) – {y})); (vii) FV (E∃y(M,N)) = FV (M) ∪ ((FV (N) – {y}). 4.5.5.1 OBSERVAÇÃO: Note que os Itens (v) a (vii) acima descrevem todos os casos em que ocorrem variáveis ligadas. Além do operador λ, os operadores E∨x,y e E∃y também ligam variáveis em λI. Estes operadores corresponderão, em dedução natural, às regras (∨E) e (∃E), que também cortam hipóteses da derivação. Veremos mais adiante que os operadores que ligam variáveis são de grande importância em questões referentes a normalização. 4.5.6 DEFIN IÇÃO: Isomorfismo de Fórmulas como Tipos entre λI e I O isomorfismo de fórmulas como tipos entre λI e I é obtido relacionando cada termo M ∈ ΛI a uma derivação πM de I, indutivamente, da seguinte forma: (1) M ≡ xA ⇔ πM ≡ A; (2) M ≡ (M1B⊃AM2B)A ⇔ πM ≡ A ABB 12 MM ⊃ ππ (⊃E); (3) M ≡ (λxA.M1B)A⊃B ⇔ πM ≡ x M x BA B ]A[ 1 ⊃ π (⊃I); (4) M ≡ p(M1A,M2B) A∧B ⇔ πM ≡ BA BA 21 MM ∧ ππ (∧I); (5) M ≡ p (MA∧B)A ⇔ π ≡ A BA 1M ∧ π (∧Ed); 1 1 M 188 (6) M ≡ p2(M1A∧B) B ⇔ πM ≡ B BA 1M ∧ π (∧Ee); (7) M ≡ k0B(M1A) B∨A ⇔ πM ≡ AB A 1M ∨ π (∨Id); (8) M ≡ k1B(M1A) A∨B ⇔ πM ≡ BA A 1M ∨ π (∨Ie); (9) M ≡ E∨xA,yB(M1 A∨B,M2C, M3) C ⇔ πM ≡ yx M y M x M , C C ]B[ C ]A[ BA 321 ππ ∨ π (∨E); C (10) M ≡ (λxa.M1A(a))∀x A(x) ⇔ πM ≡ )x(x )a( M A A 1 ∀ π (∀I) (11) M ≡ (M1∀xA(x) yt) A(t) ⇔ πM ≡ )t( )x(x M A A 1 ∀ π (∀E); (12) M ≡ p(M1A(t),yt)∃x A(x) ⇔ πM ≡ )x(x )t( M A A 1 ∃ π (∃I); (13) M ≡ E∃yA(a)(M1∃x A(x), M2C) C ⇔ πM ≡ y M y )a( )x(x M C C ]A[ A 21 π ∃ π (∃E); (14) M ≡ EA⊥(M1⊥) A ⇔ πM ≡ A 1M ⊥ π . 189 4.5.6.1 OBSERVAÇÕES: (a) É imediato, por inspeção na definição acima, que as variáveis sintáticas de um termo M correspondem às hipóteses da derivação πM. Além disso, pela Definição 4.5.5 e pelos Itens (3), (9) e (13) acima, não é difícil ver que as variáveis livres de M correspondem às hipóteses abertas de πM, e as variáveis ligadas de M correspondem às hipóteses cortadas de πM. (b) Uma aplicação da regra (∨E) que não corta hipóteses, C CCBA 321 MMM ππ ∨ π , corresponde a um termo E∨xA,yB(M1 A∨B,M2C, M3C) C, no qual x ∉ FV (M2) e y ∉ FV (M3). Analogamente, para (∃E) temos: πM ≡ C CA 21 M )x(x M π ∃ π ⇔ M ≡ E∃yA(a)(M1∃x A(x), M2C) C tal que y ∉ FV (M2). (c) Note, pelo Item (10) acima, que a restrição apresentada em 4.5.4-(2)(viii) é exatamente equivalente à Restrição 1.2.6-(a) para a regra (∀I). Da mesma forma, pelo Item (13) acima, temos que a restrição apresentada em 4.5.4-(2)(xi) é equivalente à Restrição 1.2.6-(b) para a regra (∃E). (d) Para podermos relacionar reduções de FM em I com reduções-β em λI, temos que ampliar o item 1 Definição 4.3.1 de redução-β para tantas contrações quantas forem as diferentes formas de redução em I. Tais formas de redução, juntamente com o isomorfismo que acabamos de estabelecer, nos mostram exatamente as contrações que temos que definir como primitivas em λI para ampliar adequadamente a definição de redução-β, o que faremos a seguir. 4.5.7 DEFIN IÇÃO: redução-β em λI Definimos a redução-β de M ∈ ΛI a um termo N ∈ ΛI (notação: M → N) por indução na complexidade de M, da seguinte forma: (1) BASE: Contrações: (1.1) (λx.M1)M2 → M1[x/ M2]; (1.2) pi(p(M1, M2)) → Mi (i= 1,2); 190 (1.3) E∨x,y((k1 B(M1)), M2, M3) → M2[x/ M1]; (1.4) E∨x,y((k0 A(M1)), M2, M3) → M3[y/ M1]; (1.5) (λx.M1 A(x))∀xA(x)yt → M1〈a/ t〉; (1.6) E∃y(p(M1 A(t),zt)∃xA(x), M2) → M2[y/ M1〈t/ a〉 (2.3) M → N ⇒ o M M → o M N (2.6) M → N ⇒ E M M M → E M M N ]; Simplificações: (1.7) E∨x1,x2(N, M1, M2) → Mi (se xi ∉ FV (Mi)) (i= 1,2); (1.8) E∃y(M1, M2) → M2 (se y ∉ FV (M2); Reduções Permutativas: (1.9) f[E∃y(M1,M2)] → E ∃ y(M1, f[M2]); (1.10) f[E∨y1,y2(M1,M2,M3)] → E ∨ y1,y2(M1, f[M2], f[M3]); (2) PASSO: Seja M ≡ o1(M1) tal que o1 é algum operador unário de λI. Ou seja, o1(M1) é λx.M1 ou pi(M1) ou E⊥(M1) ou kiA(M1) ou M1yt ou p(M1,zt). Então: (2.1) M1 → N1 ⇒ o1(M1) → o1(N1). Seja M ≡ o2(M1,M2) tal que o2 é algum operador binário de λI. Ou seja, o2(M1,M2) é M1M2 ou p(M1,M2) ou Ey∃(M1,M2). Então: (2.2) M1 → N1 ⇒ o2(M1,M2) → o2(N1,M2); 2 2 2( 1, 2) 2( 1, 2). Seja M ≡ E∨x,y(M1,M2,M3). Então: (2.4) M1 → N1 ⇒ E∨x,y(M1,M2,M3) → E∨x,y(N1,M2,M3); (2.5) M2 → N2 ⇒ E∨x,y(M1,M2,M3) → E∨x,y(M1,N2,M3); 3 3 ∨x,y( 1, 2, 3) ∨x,y( 1, 2, 3). 4.5.7.1 OBSERVAÇÕES: (a) A notação M〈t1/ t2〉, usada nos Itens (1.5) e (1.6) acima, denota uma substituição que opera apenas nos tipos de todos os subtermos de M, trocando o termo da linguagem de I, t1, por t2. Ela é equivalente, para o caso de dedução natural, à notação . 12 t tπ (b) As simplificações (1.7) e (1.8) correspondem às simplificações que podemos fazer em regras de (∃E) e (∨E) que não eliminam hipóteses da derivação. 191 (c) Nas reduções permutativas ((1.9) e (1.10)), f representa um operador de eliminação E∨x1,x2 ou E∃x, no qual o argumento destacado entre colchetes é sua premissa maior. Assim, f[M], por exemplo, abrevia E∨x1,x2(M,N,Z) ou E∃x(M,N). 4.5.8 TEOREMA: Equivalência entre redução de FM em I e redução-β em λ O teorema seguinte demonstra a equivalência entre redução de FM em I e reduçõesβ em λI. A prova é imediata a partir do Isomorfismo 4.5.6 e da Definição 4.5.7 de redução-β em λI. Na verdade, como dissemos na Observação 4.5.6.1-(d), os casos da base da Definição 4.5.7 foram propositadamente definidos de modo que a equivalência entre reduções se estabeleça. I Para M e N λI-termos, e πM e πN as respectivas I-derivações obtidas pelo Isomorfismo 4.5.6 acima, temos: M → N ⇔ πM → πN. M PROVA: Por indução na complexidade de BASE: Caso 1: M ≡ (λx.M1)M2 N ≡ M1[x/ M2] )1.1(7.5.4 −⇒ Idêntico ao caso de λ ⊃ ( base do Teorema 4.5.3). Caso 2: M ≡ pi(p(M1 A1,M2 A2) N ≡ M )2.1(7.5.4 − ⇒ i Ai (i= 1,2) O seguinte esquema demonstra a equivalência para este caso: M ≡ pi(p(M1 A1,M2 A2) M )2.1(7.5.4 − → i Ai ≡ N (i= 1,2) c c 4.5.6 4.5.6 πM ≡ i 21 2 M 1 M A AA AA 21 ∧ ππ ≡ π 1.4.1 → i M A i π N (i= 1, 2) Caso 3: M ≡ ((λxa.M1A(a))∀x A(x)yt)A(t) N ≡ 〈M )5.1(7.5.4 − ⇒ 1[a/ t]〉 A(t) O seguinte esquema demonstra a equivalência para este caso: 192 M ≡ ((λxa.M1A(a))∀x A(x)yt)A(t) (M )5.1(7.5.4 − → 1〈a/ t〉) A(t) ≡ N c c 4.5.6 4.5.6 πM ≡ )t( )x(x )a( M A A A 1 ∀ π ( ≡ π 4.4.1 → )t( a tM A ) 1 π N Caso 4: M ≡ E∨xA,yB((k1 B(M1A)) A∨B, M2C, M3C) C N ≡ M )3.1(7.5.4 − ⇒ 2 C[xA/ M1A] O seguinte esquema demonstra a equivalência para este caso: M ≡ E∨xA,yB((k1 B(M1A)) A∨B, M2C, M3C) C M )3.1(7.5.4 − → 2 C[xA/ M1A] ≡ N c 4.5.6c 4.5.6 πM ≡ y,x M y M xM C C ]B[ C ]A[ BA A 32 i ππ ∨ π ≡ π 5.4.1 → C ]A[ 2 1 M M π π N Caso 5: M ≡ E∨xA,yB((k0 A(M1B)) A∨B, M2C, M3C) C N ≡ M )4.1(7.5.4 − ⇒ 3 C[yB/ M1B] O seguinte esquema demonstra a equivalência para este caso: M ≡ E∨xA,yB((k0 A(M1B)) A∨B, M2C, M3C) C M )4.1(7.5.4 − → 3 C[yB/ M1B] ≡ N c 4.5.6c 4.5.6 πM ≡ y,x M y M xM C C ]B[ C ]A[ BA B 32 i ππ ∨ π ≡ π 5.4.1 → C ]B[ 3 1 M M π π N Caso 6: M ≡ E∃yA(a)(p(M1 A(t),zt)∃xA(x), M2C) C N ≡ M )6.1(7.5.4 − ⇒ 2 C[yA(a)/ (M1[t/ a]) A(a)] O seguinte esquema demonstra a equivalência para este caso: 193 M ≡ E∃yA(a)(p(M1 A(t),zt)∃xA(x), M2C) C M )6.1(7.5.4 − → 2 C[yA(a)/ (M1[t/ a]) A(a)] ≡ N c 4.5.6c 4.5.6 πM ≡ y M y )a( )x(x )t( M C C ]A[ A A 2 1 π ∃ π ≡ π 7.4.1 → C ]A[ )( 2 1 M )a( t aM π π N Caso 7: M ≡ E∨xA,yB(M1 A∨B, M2C, M3C) C M )7.1(7.5.4 − ⇒ i C ≡ N (xi ∉ FV (Mi)) (i= 1,2) O seguinte esquema demonstra a equivalência para este caso: M ≡ E M M M M ≡ N (x ∉ FV (M i= 1,2) ∨ x2,x3( 1 A∨B, 2C, 3C) C )7.1(7.5.4 − → i C i i)) ( c 4.5.6c 4.5.6 πM ≡ C CCBA 321 MMM ππ ∨ π ≡ π 6.4.1 → C iM π N Caso 8: M ≡ E∃y(M1∃x A(x), M2C) C M )8.1(7.5.4 − ⇒ 2 C ≡ N (se y ∉ FV (M2) O seguinte esquema demonstra a equivalência para este caso: M ≡ E∃y(M1∃x A(x), M2C) C M )8.1(7.5.4 − → 2 C ≡ N (se y ∉ FV (M2) c 4.5.6 4.5.6c πM ≡ C CA 21 M )x(x M π ∃ π ≡ π 8.4.1 → C 2M π N Caso 9: M ≡ f[E∃y(M1∃x A(x),M2C) C]D E )9.1(7.5.4 − ⇒ ∃y(M1∃x A(x), f[M2C] D)D ≡ N O seguinte esquema demonstra a equivalência para este caso: 194 M ≡ f[E∃y(M1∃x A(x),M2C) C]D E )9.1(7.5.4 − → ∃y(M1∃x A(x), f[M2C] D)D ≡ N c c 4.5.6 4.5.6 πM ≡ D C CA 21 M )x(x M Σ π ∃ π 9.4.1 → D D C A 2 1 M )x(x M Σ π ∃ π ≡ πN onde C, conseqüência de (∃E) de πM, é premissa maior de regra de eliminação da qual Σ representa as subárvores das premissas menores. Caso 10: M ≡ f[E∨y1,y2(M1 A∨B,M2C,M3C) C]D E )10.1(7.5.4 − ⇒ ∨y1,y2(M1 A∨B, f[M2C] D, f[M3C] D)D ≡ N O seguinte esquema demonstra a equivalência para este caso: M ≡ f[E∨y1,y2(M1 A∨B,M2C,M3C) C]D E )10.1(7.5.4 − → ∨y1,y2(M1 A∨B, f[M2C] D, f[M3C] D)D ≡ N c c 4.5.6 4.5.6 πM ≡ D C CCBA 321 MMM Σ ππ ∨ π 10.4.1 → D D C D C BA 32 1 MM M Σ π Σ π ∨ π ≡ πN onde C, conseqüência de (∨E) de πM, é premissa maior de regra de eliminação da qual Σ representa as subárvores das premissas menores. PASSO: Apresentaremos a solução para o caso em que M é como em 4.5.7.(2.1) (M ≡ o1(M1)). A solução para os demais casos (2.2) a (2.6) é análoga a esta, usando as propriedades das reduções de FM . Caso 1: M ≡ o1(M1) O seguinte esquema demonstra a solução para este caso: 195 M1 A → N1 A 4 M ≡ o )1.2(7.5. − ⇒ 1(M1 A)B → o1(N1 A)B ≡ N c c c (Isomorfismo 4.5.6) c A 1M π → ⇒ ππ 4.1 M ≡ B A 1M π → B A 1N π ≡ πN A 1N HI: (M1→N1 ⇔ πM1 → πN1 ) M → N ⇔ πM → πN ♦ 4.5.9 Transferência de Provas de N ormalização Forte entre Sistemas Podemos separar os itens da base da Definição 4.5.7 de redução-β em dois grupos: o grupo A, contendo os Itens (1.2) e (1.5), e o grupo B, contendo os demais itens ((1.1), (1.3), (1.4) e (1.6)). A diferença entre os dois grupos é que nas reduções do grupo A não ocorrem substituições de variáveis livres por subtermos, enquanto que em todas as reduções do grupo B estas substituições ocorrem. Uma conseqüência imediata deste fato é que o comprimento do contractum, para o caso de uma redução do grupo B, pode ser maior que o comprimento do redex. Isto se dá quando existe mais de uma ocorrência livre da variável que está sendo substituída. Por exemplo, o comprimento de M[x/ N] é certamente maior que o comprimento de (λx.M)N, se M possuir mais de uma ocorrência livre de x e se o comprimento de N for maior que 1. É devido a este fato que os resultados sobre normalização para sistemas de cálculo lambda tipificado não são triviais. Um sistema que possua todas as reduções no grupo A é trivialmente normalizável, pois o comprimento do redex, ou no máximo este número multiplicado por alguma constante preestabelecida, será sempre um limitante superior para o comprimento do contractum. Dessa forma, nenhuma seqüência de redução poderia ter mais passos que o comprimento do termo inicial multiplicado por esta constante. Neste sentido, a passagem de um resultado de normalização forte de λ⊃ para o sistema λC', onde λC' é a versão em cálculo lambda tipificado do sistema de dedução natural C', seria imediata. Vejamos porque. Os conectivos primitivos de C' são ⊃, ∧ e ∀. Mas pelo Isomorfismo 4.5.6, as fórmulas máximas cujos conectivos principais são ∧ e ∀ correspondem, respectivamente, às reduções (1.2) e (1.5) da Definição 4.5.7. Tais reduções pertencem ao grupo A e portanto não representam problemas nas provas de normalização forte. Dessa forma, o único caso não trivial a resolver em uma prova de normalização forte para λC' é o caso da ⊃; e este é 196 exatamente o caso presente em λ⊃. Portanto, a noção de fórmulas como tipos, mais uma argumentação simples a respeito dos conectivos ∧ e ∀, transforma provas de normalização forte para λ⊃ em provas de normalização forte para C'. No entanto, não podemos transportar diretamente provas de normalização forte para λ⊃ em provas de normalização forte para os sistemas de dedução natural M, I e C, porque além do caso não trivial de ⊃, todos eles têm que tratar também dos casos de ∃ e ∨, que correspondem a reduções do grupo B. Com relação a questões de normalização, tais reduções possuem seus problemas específicos que exigem soluções específicas. Assim como em dedução natural, as soluções para o conectivo ⊃ não são diretamente válidas para os casos de ∃ e ∨. Assim, podemos dizer que os artigos que veremos adiante, que entre outras coisas estabelecem normalização forte para λ⊃, podem ser vistos como contendo provas de normalização forte para C', mas não para M, I e C. Neste sentido, a extensão não trivial de nosso resultado para estes sistemas, que apresentaremos no Capítulo VII, representa um avanço em relação ao alcance dos resultados destes artigos. Na pior das hipóteses, alguma argumentação tem que ser acrescida a eles para que provem de fato a normalização forte de λI e assim possam representar provas de normalização forte para M, I e C. A julgar pela complexidade do sistema λI com relação a λ⊃, e pela complexidade da definição de reduçãoβ em λI com relação à definição de redução-β em λ⊃, tal argumentação não parece ser trivial. 197 Capítulo V Os Ordinais Naturais de Howard, Vrijer e Beckmann Estudaremos neste capítulo alguns artigos da literatura em que encontramos definições de atribuições numéricas a termos do cálculo lambda tipificado λ⊃, que são de fato ordinais naturais para os termos deste sistema. Ou seja, em cada um destes artigos existe uma atribuição numérica n que satisfaz a seguinte propriedade: Para todo M∈Λ⊃, n(M)< ω e M → N ⇒ n(M)> n(N) Assim como para o caso dos sistemas de Dedução Natural, uma atribuição numérica para termos de λ⊃ que satisfaça esta propriedade representa um limitante superior para o comprimento de todas as seqüências de redução para o termo M, e leva a uma prova trivial do Teorema de Normalização Forte para λ⊃. Como vimos no capítulo anterior que através da noção de fórmulas como tipos é possível transportar provas de normalização forte para λ⊃ em provas de normalização forte para C', é importante analisarmos os métodos utilizados nestes artigos para podermos comparar com o nosso método. Neste capítulo apresentaremos detalhadamente três artigos, nos quais encontramos três diferentes ordinais naturais para λ⊃, os artigos Howard[1968], Vrijer[1987] e Beckmann[1998]. Temos conhecimento de outros dois artigos que trazem definições de ordinal natural: Gandy[1980] e Schwichtenberg[1991]. Não analisaremos estes artigos em detalhes. No entanto, o estudo dos três artigos anteriores nos fornecerá dados que permitirão comparar também estes dois últimos artigos com o nosso trabalho. O objetivo deste capítulo se resume apenas em apresentar o método que cada autor utilizou para obter o seu ordinal natural. Uma análise comparativa destes artigos que os relaciona com o nosso trabalho será feita apenas no final do capítulo seguinte, após termos desenvolvido detalhadamente o nosso método para o sistema λ⊃. O objetivo agora é apresentar e entender os resultados destes artigos. Dessa forma, dividiremos este capítulo em três seções principais, uma para cada um dos artigos que analisaremos. Cabe ressaltar que estes artigos não utilizam uma notação uniformizada para o cálculo lambda tipificado, cada um desenvolvendo a sua. A título apenas de uniformização modificaremos em nossa exposição as notações originais, utilizando as definições e resultados gerais de λ⊃ que foram desenvolvidos no Capítulo IV. 201 §1 O Artigo Howard[1968] O artigo Howard[1968] é um bonito exemplo de uma "proof-theoretic" análise de uma teoria formal. Gödel[1958] apresentou uma interpretação para a aritmética intuicionista de primeira ordem H em uma teoria formal T, livre de quantificadores, de funcionais recursivos de tipos finitos, que pode ser formalizada em λ⊃. Com tal interpretação temos que provas da consistência de T demonstram, de fato, a consistência de H . Formalizada em λ⊃ e livre de quantificadores, a teoria T é uma teoria equacional onde suas fórmulas são equações entre λ-termos. Se, por sua vez, fizermos uma "proof-theoretic" análise de T, redefinindo suas igualdades axiomáticas em termos de "reduções", a consistência de T é trivialmente obtida se provarmos, para estas reduções que representam as igualdades em T, os Teoremas de Normalização Forte e Church-Rosser. Isto se dá porque uma igualdade qualquer, por exemplo M= N, expressaria que M e N se reduzem a um termo comum. Mas se neste sistema vale Normalização Forte e Church- -Rosser, então, se ambos se reduzem a um termo comum, tanto M quanto N têm a mesma forma normal. Ou seja, podemos reduzir o conceito semântico de igualdade ao conceito sintático "ter a mesma forma normal". A consistência do sistema é obtida trivialmente quando tomamos, por exemplo, P e Q distintos e ambos na forma normal. Neste caso, é claro que não temos, em T, P= Q. Logo T não é trivial, e portanto é consistente.40 Além disso, uma vez que o conceito de igualdade se reduz ao de "ter a mesma forma normal", podemos verificar a validade de toda e qualquer fórmula de T, que certamente é uma equação do tipo M= N, efetuando a normalização de M e N, e verificando se ambos possuem a mesma forma normal. Temos portanto um procedimento efetivo para verificar a validade das fórmulas da teoria, o que nos daria um resultado de decidibilidade. No entanto, Gentzen[1938] já havia provado que a consistência da aritmética de primeira ordem, tanto intuicionista quanto clássica, pode ser provada por métodos finitários exceto pelo uso do "princípio da cadeia descendente para ordinais menores que ε0". Dessa forma, qualquer tentativa de provar normalização forte para T deve levar em conta tal princípio não finitário, e portanto não será uma normalização forte no sentido estrito do termo, mas o que Tait[1967] chamou de "computabilidade". Com base nisso, o objetivo de 40 Estamos utilizando aqui a noção clássica de que inconsistência implica em trivialidade. 202 Howard é realizar esta análise "proof-theoretic" de T e provar sua computabilidade, assumindo para isso o "princípio da cadeia descendente para ordinais menores que ε0". Ele faz isso estabelecendo uma atribuição de ordinais menores que ε0 aos termos de T e provando que esta atribuição diminui com as reduções. Ou seja, para cada seqüência de reduções de termos: A1 → A2 → ... → An → ... temos uma seqüência descendente de ordinais: a1 > a2 > ... > an > ... . Se tais ordinais são menores que ε0, então a "normalização forte" (ou computabilidade) de T segue diretamente do "princípio da cadeia descendente para ordinais menores que ε0". Se Howard permite a atribuição de ordinais infinitos (menores que ε0 mas maiores que ω) a termos, suas seqüências de redução, ainda que finitas, não são obtidas por uma atribuição numérica finita que diminui com as reduções. No entanto, se descartarmos o tratamento dado à recursão em T, e nos concentrarmos apenas nas reduções-β para termos de λ⊃, talvez o método de Howard represente uma atribuição de ordinais finitos a termos de λ⊃ que diminui com as reduções. Talvez tenhamos aqui o primeiro ordinal natural. Verificaremos que, com algumas importantes restrições, é isso de fato o que ocorre. O método geral da prova de Howard consiste basicamente em desenvolver uma teoria formal de expressões que possui uma interpretação correta na qual expressões são funções aritméticas de ordinais menores que ε0. Em seguida ele demonstra varias propriedades destas expressões e desenvolve uma atribuição unívoca de expressões a termos de T. Através das propriedades demonstradas, prova que se F → G e f e g são as expressões atribuídas à F e G respectivamente, então f(a)> g(a), onde f(a) e g(a) são os ordinais obtidos aplicando as funções que interpretam f e g à mesma constante a (por exemplo a = 〈0,...,0〉). Com base no discutido acima, na análise do artigo de Howard que faremos a seguir, já estamos desconsiderando as peculiaridades de T e aplicando seu método apenas às reduções-β aplicadas a termos de λ⊃. Além disso, estamos substituindo as ocorrências de ordinais menores que ε0, por naturais (ordinais menores que ω). 203 5.1.1 Definições Iniciais Apresentaremos aqui algumas definições de conceitos básicos utilizados por Howard. 5.1.1.1 CON VEN ÇÕES: Enumeração de Variáveis Sintáticas Consideraremos ξ: x0, x1, x2, ... uma enumeração das variáveis sintáticas de todos os tipos de λ⊃. 5.1.1.2 DEFIN IÇÃO: N ível - lv() O nível de um tipo A , denotado por lv(A ), é definido indutivamente como: (1) lv(A ) = 0, se A é tipo básico; (2) lv(A⊃B) = max{1+ lv(A ), lv(B)}. Se M é um termo do tipo A , o nível de M é definido como: lv(M) = lv(A ). 5.1.1.3 LEMA: Se MN ∈ Λ⊃, então: (a) lv(M) > lv(N); (b) lv(M) ≥ lv(MN). PROVA: Imediata pela Definição 5.1.1.2. ♦ 5.1.1.4 DEFIN IÇÃO: I-Subtermo Além do conjunto de subtermos de um termo, que definimos em 4.1.7, Howard define um outro conjunto, o de I-subtermos, que definimos indutivamente como: (1) ISub(x) = {x}; (2) ISub(MN) = ISub(M) ∪ ISub(N) ∪ {MN}; (3) ISub(λx.M) = (ISub(M) ∪ Sub(λx.M)) – ξx(M), onde ξx(M) = {N ∈ ISub(M) / x ∈ FV (N)} e Sub(λx.M) é como definido em 4.1.7. 204 5.1.1.4.1 COMENTÁRIOS: (a) Dizemos que N é I-subtermo de M quando N ∈ ISub(M). (b) Howard, em seu artigo, chama de "subfórmula" o que estamos chamando de "subtermo", e chama de "subtermo" o que estamos chamando de "I-subtermo". Decidimos trocar os nomes porque na literatura mais recente consolidou-se o uso da expressão "subtermo" com o sentido que estamos lhe dando na Definição 4.1.7. (c) A diferença entre subtermo e I-subtermo, expressa na cláusula (3) acima, garante que se M é um termo fechado, então todos os I-subtermos de M também são fechados. 5.1.1.5 DEFIN IÇÃO: Redução Geral e Redução Restrita Considere a redução-β M →∆ N como definida em 4.3.1. Com base na diferença entre subtermo e I-subtermo definida acima, diferenciamos dois tipos de reduções: (1) M →∆ N é uma redução geral quando ∆ é subtermo de M. (2) M →∆ N é uma redução restrita quando ∆ é I-subtermo de M. 5.1.1.5.1 OBSERVAÇÃO: Howard demonstra seu resultado primeiramente para o caso particular das reduções restritas. Em seguida o estende para o caso mais genérico das reduções gerais. 5.1.2 A Teoria Formal E de Expressões Apresentaremos agora a teoria E de expressões que será usada para a atribuição de ordinais aos termos de λ⊃. Expressões são construídas a partir de constantes (dentre as quais distinguimos 0 e 1), variáveis biindexadas (yir) e os símbolos de função "+ " e "( , )", da seguinte forma: (i) Uma constante é uma expressão. (ii) Uma variável yir é uma expressão. (iii) Se f e g são expressões, então: f+ g e (f , g) também o são. E é uma teoria axiomática da relação ∠ entre expressões, na qual a igualdade é tratada axiomaticamente e ∠ é símbolo definido, onde f∠ g significa f ∠ g, ou f= g. 41 41 Usaremos a letra y para nos referirmos a variáveis de E e a letra x para nos referirmos às variáveis de λ⊃. 205 5.1.2.1 DEFIN IÇÃO: Axiomas de E (1) Se f ∠ g e g ∠ h, então f ∠ h. (2) Se f ∠ g, então f ≠ g. (3) f + g = g + f; f + (g + h) = (f + g) + h. (4) Se f ∠ g, então f + h ∠ g + h. (5) f + g = f se, e somente se, g = 0. (6) 0 ∠ f. (7) (f , g + h) = (f , g) + (f , h). (8) Se g ∠ c e h ∠ c, então (g, f) + (h , f) ∠ (c , f). (9) Se f ∠ g, então (h , f) ∠ (h , g). (10) Se f ∠ g e h ≠ 0, então (f , h) ∠ (g , h). (11) (0 , f) = f. (12) (f , (g , h)) = (f + g, h). 5.1.2.2 COROLÁRIO: Conseqüências Imediatas dos Axiomas de E (13) (f , 0) = 0. (14) Se 0 ∠ g e 0 ∠ h, então (g , f) + (h , f) ∠ (g+ h , f). 5.1.2.3 DEFIN IÇÃO: U ma Interpretação de E A seguinte interpretação semântica de E será utilizada na atribuição de naturais aos termos de λ⊃: ♦ As variáveis percorrem os naturais e as constantes referem-se a números naturais. ♦ f + g é interpretado como a soma aritmética. 42 42 A definição de "+ " originalmente utilizada por Howard é mais complexa. Ele utiliza a soma de Hessemberg para ordinais, introduzida em Bachmann[1955]. Para somar a e b, primeiramente escrevemos a e b na Forma Normal de Cantor para a base ω, ou seja, a= ωa1+ ...+ ωan e b= ωb1+ ...+ ωbm tais que a1 ≥ ... ≥ an e b1 ≥ ... ≥ bm. a+ b é então definido como: a+ b= ω c1+ ...+ ωcn+m, onde c1 ≥ ... ≥ cn+m é um rearranjo da seqüência a1, ..., an, b1, ..., bm. Note que se a, b< ω, então a1= ...= an= b1= ...= bm= 0 e, portanto, a soma de Hessemberg restrita a naturais coincide com a soma aritmética que estamos utilizando. Cf Howard[1968], p. 449. 206 ♦ (f , g) é interpretado da seguinte maneira: ♦ Se g ≠ 0, escreva g como uma soma de potências de 2 tal que: g = 2g1 + 2g2 + ... + 2gn , onde (g1 > g2 > ... > gn) 43 (f , g) = 2(g1+f) + 2(g2+f) + ... + 2(gn+f) ♦ Se g = 0, então (f , g) = (f , 0) = 0 ♦ Os termos de E, ou seja, suas expressões, são então interpretadas como funções intencionais das variáveis que elas contém. Assim, a interpretação de uma expressão f é uma função de Nn → N (n representa o número de variáveis presentes em f) definida de acordo com as interpretações para "+ " e "( , )". ♦ f ∠ g é interpretado como f < g. 44 É fácil mostrar que esta interpretação satisfaz os axiomas de E, sendo portanto correta. É importante termos em mente que esta interpretação representa exatamente a interpretação apresentada por Howard, apenas restringindo seu universo aos números naturais. Como as interpretações que demos para "+ " e "( , )" são fechadas nos números naturais, a nossa interpretação é portanto submodelo da interpretação original de Howard. 5.1.2.4 COMEN TÁRIO: Finitude da Atribuição Note que com a interpretação 5.1.2.3 estamos garantindo que o número que será atribuído a cada termo de λ⊃ é finito. Isto se dá porque qualquer função que seja uma combinação finita de aplicações de "+ " e "( , )", como definidos acima, quando possui números naturais como argumentos, certamente tem como resultado um número natural. Mas se a um termo qualquer associamos uma expressão de comprimento finito, a função atribuída a esta expressão pela interpretação acima é uma combinação finita de aplicações 43 Esta forma é conhecida como a Forma Normal de Cantor para a base 2 e é única para cada número. 44 Interpretamos < como a relação de ordem tradicional entre funções. Se f e g são funções com mesmo domínio dizemos que f < g quando, para todo c ∈ dom(f)= dom(g), temos f(c)< g(c). Números são interpretados por funções constantes, e, neste caso, < é a ordem aritmética. Pode ocorrer, no entanto, que as variáveis que ocorrem na expressão de f sejam distintas das que ocorrem na expressão g. O que fazemos neste caso é fixar uma enumeração para as variáveis de δ (y0 0, y 10, y 01, y 11, y 20, ...) e considerar o domínio tanto de f quanto de g como sendo Ns, onde s representa a maior posição na enumeração das variáveis que ocorrem em f e g. Dessa forma, c = 〈c1, ... , cs〉 contém, nas posições adequadas, os valores para as variáveis que ocorrem em f e em g. Nas demais posições, c contém valores quaisquer que não interferem no cálculo de f(c) ou g(c). 207 de "+ " e "( , )", que tem como resultado, para qualquer argumento composto de naturais, um número natural. Dessa forma, a finitude da atribuição que será proposta já esta assegurada pela interpretação da teoria E apresentada acima. 5.1.2.5 DEFIN IÇÃO: Vetores de Expressões Se f0, ..., fn são expressões da teoria E, a n+ 1-tupla f = 〈f0, ..., fn〉 é chamada de um vetor de nível n (Not: lv(f) = n). Para 0 ≤ i ≤ n, as expressões fi ou (f)i denotam a i-ésima componente de f. Se i > lv(f) então definimos (f)i = 0. Definimos também a soma de vetores da seguinte forma: f + g = h tal que: • lv(h) = max{lv(f), lv(g)} e • hi = fi + gi (0 ≤ i ≤ lv(h)). 5.1.3 O Método de Howard Atribuição de Vetores a termos de λ⊃ Podemos agora explicar um pouco mais clara e detalhadamente o método de Howard. Considere a função l : N → N definida como: l(r) = lv(xr), onde xr é a r-ésima variável da enumeração ξ definida em 5.1.1.1. Assim, dado um número natural r, a função l recupera o nível da r-ésima variável da enumeração ξ. Considere a notação: yr = 〈y0r, y1r, ..., yrl(r)〉, onde cada yir (0 ≤ i ≤ l(r)) é uma variável de E, e portanto yr é um vetor de expressões de nível l(r). Howard primeiramente define uma atribuição de vetores a termos de λ⊃ para em seguida obter a atribuição de expressões a termos. Seja B a notação para o vetor atribuído ao termo B. Howard então define: xr = yr. A definição acima nos dá uma atribuição de vetores a termos atômicos de λ⊃ com a característica peculiar de que a termos de nível n (Definição 5.1.1.2) atribuímos vetores também de nível n (Definição 5.1.2.5). (1) A definição completa da atribuição de vetores a termos é feita por indução no comprimento dos termos: xr = yr; FG = h tal que (h)i = (f   g)i para (0 ≤ i ≤ lv(FG)); λxr.F = δrf. 208 Onde f = F, g = G, e   e δr são operações entre vetores de expressões de E que serão definidas adiante. Seja f o vetor de expressões atribuído ao termo F. A expressão atribuída a F é a primeira componente (f)0 do vetor f. O ordinal atribuído a F será o valor da função associada a (f)0 pela interpretação de E, quando aplicada a alguma constante do universo da interpretação. No nosso caso este valor será um número natural (ver Comentário 5.1.2.4) e no caso de Howard um ordinal menor que ε0. Podemos por exemplo fixar a constante 0= 〈0, ..., 0〉 como o argumento padrão que será utilizado. Dessa forma, todo o trabalho do artigo é então provar: (2) (∀F)(∀G)[((F = f) ∧ (G = g) ∧ (F → G)) ⇒ ((f)0(0) > (g)0(0))]. Howard faz isso provando através dos axiomas de E o seguinte resultado: (3) (∀F)(∀G)[((F = f) ∧ (G = g) ∧ (F → G)) ⇒ ((g)0 ∠ (f)0)]. Se (g)0 ∠ (f)0, então na interpretação de E: (g)0< (f)0. Em particular: (g)0(0) < (f)0(0). Foi com este objetivo que Howard definiu as operações   e δr e desenvolveu uma longa seqüência de teoremas sintáticos sobre relações entre expressões e vetores. Não cabe aqui escrever detalhadamente todas as demonstrações, mas sim apresentar as definições e a seqüência de resultados, procurando sempre a compreensão da intuição por trás de cada passo. 5.1.4 COMEN TÁRIO: Restrição ao Resultado de Howard Howard obtém seu resultado em duas etapas. Na primeira delas ele demonstra a proposição 5.1.3-(3) acima apenas para as reduções restritas. Para que seu resultado valha para as reduções gerais, Howard propõe uma nova atribuição não unívoca de expressões a termos de λ⊃. Ele liberaliza a atribuição de modo que para cada λ⊃-termo exista uma quantidade enumerável de vetores de expressões atribuídos. Ou seja, para cada termo M temos M1, M2, ... . Em seguida, Howard demonstra que dados dois termos M e N tais 209 que M → N através de uma redução geral, existem Mi e Nj com i,j < ω, tais que Mi> Nj. Tal liberdade representa uma limitação do resultado de Howard com respeito à definição construtiva de um ordinal natural para λ⊃. Limitação esta que veremos mais detalhadamente no final desta seção. 5.1.5 COMEN TÁRIO: Ordinal N atural para λR⊃ Chamemos de λR⊃ o sistema λ⊃ com apenas as reduções restritas. Como verificaremos a seguir, as operações   e δr para vetores de expressões de E são definidas sintaticamente em termos dos símbolos funcionais "+ " e "( , )". Dessa forma, escrever f g e δrf é o mesmo que escrever expressões finitas em que aparecem f, g e os símbolos funcionais "+ " e "( , )". Isso significa que através da nossa interpretação finitária para E podemos interpretar finitamente qualquer vetor de expressões em que os símbolos   e δr apareçam. Em particular, a atribuição de expressões a termos de λ⊃ esboçada acima representa, através da Interpretação 5.1.2.3, uma atribuição de números naturais a termos de λR⊃. Este fato já garante de antemão o sucesso da tentativa de encontrar o ordinal natural para termos de λR⊃ como conseqüência do artigo de Howard. Isso porque Howard de fato provou 5.1.3-(3) sintaticamente, através dos axiomas de E, para todos os termos e reduções restritas da teoria T. Mas se 5.1.3-(3) vale para todos os termos e reduções restritas da teoria T, vale em particular para termos de λR⊃. Neste casso, como a interpretação de E apresentada em 5.1.2.3 é correta, 5.1.3-(3), segundo esta interpretação, é válida. Ou seja, 5.1.2-(2) é válida. Como a interpretação 5.1.2.3 garante uma atribuição de naturais finitos aos termos de λR⊃ , então temos, por 5.1.2-(2), uma atribuição finita que diminui com as reduções restritas. Temos, portanto, um Ordinal Natural para os termos λR⊃. Nos resultados da segunda parte do artigo de Howard temos, a partir da construção do ordinal natural para λR⊃, uma prova de existência de um ordinal natural para λ⊃. Vamos agora definir formalmente as operações δr e  , e em seguida apresentar uma seqüência de resultados envolvendo estas operações, que culminará com a demonstração da Proposição 5.1.3-(3). 210 5.1.6 DEFIN IÇÃO: A Operação f   g Seja n = max{lv(f) , lv(g)}. Então f   g é definido como sendo o vetor: h = 〈h0, ..., hn〉 tal que hi = .    <≤+ + + n)i(0 se n)=(i se, ),( ii1i ii ,gfh gf 5.1.6.1 COMEN TÁRIOS: (a) Note que a definição de   só leva em conta as operações "+ " e "( , )", e que, portanto, f   g é um vetor de expressões bem formadas de E que possuem correspondentes na nossa interpretação de E. (b) O que devemos ter em mente quando olhamos para a definição de   é que, de acordo com a definição da atribuição 5.1.3-(1), o objetivo de   é calcular FG dados F e G. Ou seja, se F = f e G = g, por 5.1.3-(1) temos que FG = h tal que (h)i = (f   g)i para (0 ≤ i ≤ lv(FG)). Então, (h)0 = (f   g)0. Mas (h)0 é a função que calcula o ordinal atribuído a FG. Logo, o objetivo da operação f   g é acumular na sua primeira expressão componente (f   g)0 = (h)0 tudo o que f0 e g0 acumulam, que representa a soma dos ordinais associados a F e G mais um número que seja maior ou igual que todos os possíveis redex que a aplicação FG possa aumentar aos redex locais de F e G. Além disso, (f   g)0 não pode "explodir" exponencialmente, pois precisa manter a característica de diminuir com as reduções, para que possamos provar 5.1.3-(3). (c) Como podemos notar, a definição de   é de alta complexidade combinatória. Uma boa maneira de tentar compreender a intuição por trás desta definição é através do estudo das demonstrações do Lema 5.1.13.3 e Corolário 5.1.13.4. 5.1.7 DEFIN IÇÃO: As Classes Ci e C Com o intuito de definir a operação δr definiremos as classes de expressões Ci e a classe de vetores C. Vale lembrar que todas as variáveis da teoria E têm a forma ykr, ou seja, são representadas pela letra y seguida por um índice superior e um inferior. • Definimos para todo i a classe Ci de expressões, indutivamente, da seguinte forma: Cláusulas Básicas: (i) Se a expressão h não contém variável, então h está em Ci; (ii) Para todo r, a variável yir está em Ci. 211 Cláusulas Indutivas: (iii) Se f e g estão em Ci então f + g também está; (iv) Se f está em Ci+1 e g está em Ci, então (f , g) está em Ci. • A classe C consiste de todos os vetores h tais que: (h)i está em Ci para (0 ≤ i ≤ lev(h)). 5.1.8 DEFIN IÇÃO: A Operação δr em Expressões Para cada expressão h em ∪Ci associaremos um vetor δrh de nível l(r)+ 1 que não contém nenhum componente de yr= 〈y0r, y1r, ..., yrl(r)〉 em suas expressões. Ou seja, se ykr ocorre em alguma expressão de δrh, então k > l(r). Definimos o vetor δrh indutivamente da seguinte forma: Cláusulas Básicas: (i) Se h está em Ci e não contém componentes de yr, então δrh é o vetor de nível l(r)+ 1 tal que: (δrh)i = h + 1 e (δrh)k = 1, para (0 ≤ k ≤ l(r)+ 1 e k ≠ i); (ii) Se h = yir, então (δrh)k = 1, para (0 ≤ k ≤ l(r)+ 1). Cláusulas Indutivas: (iii) Se h contém alguma componente de yr e h = f + g, onde f e g estão em Ci, então: δrh = δrf + δrg; (iv) Se h contém alguma componente de yr e h = (f , g), onde f está em Ci+1 e g está em Ci, então: (δrh)k = (δrf)k + (δrg)k , se (0 ≤ k ≤ l(r)); (δrh)k = 2(δrf)k + 2(δrg)k + 1 , se k = l(r)+ 1, onde 2f= f+ f para toda expressão f e 2f = f+ f para todo vetor f. 5.1.9 DEFIN IÇÃO: A Operação δr em Vetores Podemos agora finalmente definir a operação δr sobre os vetores de expressões. Seja h = 〈h0, ..., hp〉 um vetor em C. δrh é um vetor de nível p tal que: (δrh)k = (δrh0)k + ...+ (δrhp)k, se (0 ≤ k ≤ l(r)+ 1). (δrh)k = hk + 1, se (l(r)+ 1 < k ≤ p). 212 5.1.9.1 COMEN TÁRIOS: (a) Note que a definição de δr só leva em conta as operações "+ " e "( , )", e que portanto δrh é um vetor de expressões bem formadas de E que possuem correspondentes na nossa Interpretação 5.1.2.3. (b) O objetivo da definição de δr, segundo 5.1.3-(1), é calcular λxr.F dado F. Ou seja, se F = f, por 5.1.3-(1) temos que λxr.F = δrf. Mas como o acréscimo de "λxr." a F não acrescenta nenhum possível novo redex a F, o objetivo da operação δr não é tanto mudar o valor de (f)0, mas sim rearranjar o vetor f de modo que se λxr.F for utilizado em alguma aplicação do tipo (λxr.F)G, δrf computa melhor do que f as possibilidades de novos redex em (λxr.F)G. 5.1.10 N OTAÇÃO: Substituição em E • h[yrj/ e] denota o resultado da substituição de todas as ocorrências de yjr pela expressão e na expressão h. • Para o vetor h = 〈h0, ..., hn〉 definimos: h[yrj/ e]= 〈h0[yrj/ e], ..., hn[yrj/ e]〉 . • Para os vetores h e e tais que lv(e)= l(r)= n e yr= 〈y0r, y1r, ..., yrn〉 definimos: h[yr/ e]= h[yr0/ (e)0][yr1/ (e)1]...[yrn/ (e)n] . Vamos agora apresentar a seqüência de resultados de Howard que culmina com o teorema expresso em 5.1.3-(3). Estes são resultados sintáticos que portanto independem da interpretação de E, sendo pois válidos tanto para a nossa interpretação quanto para a de Howard. Dividiremos esta apresentação em seções onde, em cada uma delas, os teoremas referentes a alguma definição especial são enunciados. Quanto às demonstrações, apenas indicaremos o caminho seguido por Howard. 5.1.11 Lemas sobre a Operação   Estes são lemas auxiliares que estabelecem propriedades da operação   com respeito à relação de ordem ∠. Todas as demonstrações são feitas por indução decrescente em i (índice das componentes dos vetores envolvidos) utilizando apenas a definição de   e os axiomas de E. As provas de 5.1.11.1 a 5.1.11.4 são simples e diretas. As de 5.1.11.5 e 5.1.11.6 têm um grau de dificuldade maior e utilizam os resultados anteriores. 213 5.1.11.1 LEMA: Se 0 ∠ (f)i, para todo i ≤ n, então 0 ∠ (f   g)i, para todo i ≤ n. ♦ 5.1.11.2 LEMA: Para todo i: (f)i ∠ (f   g)i. ♦ 5.1.11.3 LEMA: Seja lv(f)= lv(g)= n e (g)i ∠ (f)i, para 0 ≤ i ≤ n. Então: (g   h)i ∠ (f   h)i, para todo i. ♦ 5.1.11.4 LEMA: Seja lv(f)= lv(g) = n e (g)i ∠ (f)i, para 0 ≤ i ≤ n. Seja também (g)k ∠ (f)k, para 0 ≤ k ≤ s, para algum s ≤ n. Então: (g   h)k ∠ (f   h)k, para 0 ≤ k ≤ s. ♦ 5.1.11.5 LEMA: Seja lv(f)= lv(g)= n+ 1 > lv(h) e 0 ∠ (f)i e 0 ∠ (g)i, para 0 ≤ i ≤ n+ 1. Então: (f   h)i + (g   h)i ∠ ((f + g)   h)i, para 0 ≤ i ≤ n+ 1. ♦ 5.1.11.6 LEMA: Seja lv(f)= lv(g)= n+ 1 > lv(h) e 0 ∠ (f)i e 0 ∠ (g)i, para 0 ≤ i ≤ n+ 1. Seja d tal que: 2(f)n+1+ 2(g)n+1 ∠ (d)n+1 e (f)i+ (g)i ∠ (d)i, para 0 ≤ i ≤ n+ 1. Então: 2((f   h)   (g   h))i ∠ (d   h)i, para 0 ≤ i ≤ n+ 1. ♦ 5.1.12 Lemas sobre as Classes Ci e C. Estes lemas estabelecem propriedades de expressões e vetores com relação à pertinência nas classes Ci e C. Os Lemas 5.1.12.1 e 5.1.12.3 são provados por indução na complexidade (comprimento) da expressão h envolvida, enquanto 5.1.12.2, que trata de vetores, é provado por indução decrescente no índice que percorre as componentes do vetor f   g. 214 5.1.12.1 LEMA: Se h está em Ci, então h não contém variável do tipo yrk tal que k < i. ♦ 5.1.12.2 LEMA: Se f e g estão em C, então f   g também está. ♦ 5.1.12.3 LEMA: Para todo natural i e toda expressão h, se h está em Ci e e está em Ck, então h[ykr/ e] está em Ci. Em outras palavras, se e está em Ck então a operação de substituição de ykr por e é um mapeamento da classe Ci nela mesma. ♦ 5.1.13 Lemas sobre a Operação δr Apresentaremos dois lemas sobre δr aplicado a expressões, cada um deles com um corolário sobre δr aplicado a vetores. As provas de ambos os lemas são feitas por indução na complexidade da expressão h envolvida, enquanto que as provas dos corolários são obtidas aplicando-se os respectivos lemas a cada componente dos vetores envolvidos. A prova do Lema 5.1.13.1 utiliza apenas a definição de δr e os axiomas de E, enquanto que a prova de 5.1.13.3 utiliza, além disso, os Lemas 5.1.11.5 e 5.1.11.6, justificando assim o desenvolvimento dos lemas de 5.1.11. O Lema 5.1.13.3 juntamente com seu corolário são de importância crucial para o entendimento do desenvolvimento do artigo, pois estabelecem a principal propriedade que garantirá que a atribuição de ordinais diminui com as reduções. 5.1.13.1 LEMA: Suponha que e está em Cj e não contém componente de yr. Se s ≠ r, para qualquer h em ∪Ci temos: (δrh)[ysj/ e] = δr(h[ysj/ e]). ♦ 5.1.13.2 COROLÁRIO: Suponha que e está em C e não contém componente de yr. Se s ≠ r, para qualquer h em C temos: (δrh)[ys/ e] = δr(h[ys/ e]). ♦ 215 O que o Lema 5.1.13.1 e o Corolário 5.1.13.2 estabelecem é que substituições de variáveis diferentes das de yr não interferem na operação δr. O que é de se esperar, pois em λ⊃ vale o seguinte resultado: (λxr.M)[xs/ N] ≡ λxr.M[xs/ N] (com r ≠ s). 5.1.13.3 LEMA: Seja e um vetor tal que lv(e)= l(r), e h uma expressão em Ci. Então: h[yr/ e] ∠ ((δrh)   e)i. ♦ 5.1.13.4 COROLÁRIO: Seja e um vetor tal que lv(e)= l(r), e h um vetor em C. Então: (h[yr/ e])i ∠ ((δrh)   e)i. ♦ A importância destes resultados se dá pelo seguinte fato: Quando M →∆ N, então ∆ ≡ (λxr.F)G ⊂ M foi substituído em N por F[xr/ G]. Mas segundo a atribuição de vetores 5.1.3-(1), se F= f e G= g temos: (i) (λxr.F)G= h tal que (h)i = ((δrf)   g)i para (0 ≤ i ≤ lv((λxr.F)G)). Além disso, o lema 5.1.15.1, que apresentaremos adiante, estabelece o seguinte resultado, intuitivamente já esperado: (ii) F[xr/ G] = f[yr/ g]. Mas pelo Corolário 5.1.13.4 temos que (f[yr/ g])i ∠ ((δrf)   g)i. Em particular, (f[yr/ g])0 ∠ ((δrf)   g)0. Ou seja, a expressão atribuída a F[xr/ G] é menor, e portanto produz um ordinal menor, que a atribuída à (λxr.F)G. Temos aqui que no redex contraído a atribuição de ordinais diminui. Basta portanto verificar agora que esta diminuição no redex se estende ao termo inteiro, estabelecendo portanto que a expressão atribuída a N seja menor que a atribuída a M. É olhando para o Lema 5.1.13.3 e Corolário 5.1.13.4 que temos que procurar entender a complexa combinatória das definições de   e δr, e todo o método de Howard. Estes resultados representam o ponto crucial do artigo para os nossos propósitos. 216 5.1.14 Lemas sobre Substituição em E Os dois lemas que apresentaremos aqui estabelecem propriedades das expressões de E com respeito à substituição e relação ∠. Estes lemas serão utilizados na prova de que esta diminuição das expressões que as reduções provocam nos redex contraídos, que acabamos de apontar como conseqüência do Corolário 5.1.13.4, se estende ao termo reduzido. As provas dos dois lemas são facilmente obtidas por indução na complexidade da expressão h de que eles tratam, utilizando-se apenas as definições de substituição e os axiomas de E. 5.1.14.1 LEMA: Sejam a, b e h expressões tais que b ∠ a. Então: h[yir/ b] ∠ h[yir/ a]. ♦ 5.1.14.2 LEMA: Sejam a, b e h expressões tais que: b ∠ a, h está em C0 e y0r ocorre em h. Então: h[y0r/ b] ∠ h[y0r/ a]. ♦ 5.1.15 Resultados sobre a Atribuição de vetores a termos de λR⊃ Os resultados aqui completam esta seqüência de lemas do artigo de Howard. Após estabelecidas todas as propriedades sobre as expressões e vetores, finalmente vamos relacioná-los com os termos de λR⊃ e provar que, segundo a relação ∠, as expressões associadas a cada termo diminuem com as reduções. Como estamos considerando apenas a atribuição de vetores a termos de λR⊃ e não a atribuição completa de Howard de vetores a termos de T, as provas para este caso restrito são portanto obtidas diretamente das provas originais de Howard, apenas desconsiderando os casos que tratam das particularidades de T e considerando apenas os casos que tratam das reduções em λR⊃. 5.1.15.1 LEMA: Seja xs uma variável com ocorrências livres em H. Seja F um termo do mesmo tipo que xs, e sejam f e h os vetores associados a F e H respectivamente. Então h[ys/ f] é o vetor atribuído à F[xs/ H]. ♦ 217 A prova deste lema é obtida por indução na complexidade de h e utiliza, além das definições de substituição e atribuição de vetores a termos, o Corolário 5.1.13.2. 5.1.15.2 TEOREMA: Sejam F ≡ (λxs.P)Q e G ≡ P[xs/ Q]. Se F= f e G= g, então: (g)i ∠ (f)i para (0 ≤ i ≤ lv(f)). ♦ Este teorema estabelece exatamente o resultado que apontamos como conseqüência do Corolário 5.1.13.4. Sua prova é, como esboçada nos comentários daquele corolário, uma conseqüência direta de 5.1.13.4 e do Lema 5.1.15.1. 5.1.15.3 LEMA: Se xr ocorre em H e H= h então y0r ocorre em (h)0. ♦ Este lema não consta da seqüência de Howard, no entanto seu resultado, não óbvio à primeira vista, é utilizado na demonstração do teorema seguinte. Sua demonstração é obtida sem dificuldades por indução na complexidade de h utilizando-se apenas das definições de δr,   e da atribuição de vetores a termos. O teorema seguinte é o resultado principal do artigo. Representa exatamente a Proposição 5.1.3-(3) e assegura que as expressões atribuídas aos termos de λR⊃ diminuem com as reduções. Dessa forma, associando-o com a interpretação finitária para E, apresentada em 5.1.2.3, temos uma atribuição finita de ordinais a termos de λR⊃ que diminui com as reduções. Temos portanto um Ordinal Natural para cada termo de λR⊃. A título de esclarecer o papel de cada um dos resultados importantes da seqüência que apresentamos, esboçaremos a prova deste teorema. 5.1.15.4 TEOREMA: Seja F →∆ G uma redução restrita. Se F= f e G= g, então: (a) (g)i ∠ (f)i para 1 ≤ i ≤ lv(f); (b) (g)0 ∠ (f)0. 218 PROVA: (i) Como ∆ ⊂ F, é fácil ver que existe um termo H tal que F ≡ H[xr/ ∆], onde xr não ocorre em ∆. (ii) Seja (λxs.P)Q ≡ ∆ → ∆' ≡ P[xs/ Q] a contração expressa em F →∆ G. Então, analogamente a (i) temos: G ≡ H[xr/ ∆']. (iii) Considere: ∆= a, ∆'= b e H= h. (iv) Por (i), (ii), (iii) e pelo Lema 5.1.15.1 temos: f = F = H[xr/ ∆] = h[yr/ a]. g = G = H[xr/ ∆'] = h[yr/ b]. (v) Como xr ocorre livre em H, pelo Lema 5.1.15.3 temos que y0r ocorre em h0. (vi) Como h é vetor associado a um termo, então h está em C. Logo, h0 está em C0. (vii) Por (ii), (iii) e pelo Teorema 5.1.15.2 temos: bi ∠ ai, para 0 ≤ i ≤ lv(a). (viii) Note que como ∆ → ∆', então ∆ e ∆' são termos do mesmo tipo. Além disso, como H[x ∆] é termo bem formado, temos que ∆ e x 5.1.1.2, lv(∆) = lv(∆') = lv(x iii) e 5.1.3-(1), lv(a) = lv(b) = lv(y r/ r são do mesmo tipo. Logo, por r) e portanto, por ( r). (ix) Pela Definição 5.1.10 de substituição temos: h[yr/ a] = 〈h0[yr0/ a0]...[yrn/ an], ..., hp[yr0/ a0]...[yrn/ an]〉. h[yr/ b] = 〈h0[yr0/ b0]...[yrn/ bn], ..., hp[yr0/ b0]...[yrn/ bn]〉, onde, por (viii), n= lv(a)= lv(b)= lv(yr) e p= lv(h). (x) Como, por (vii), bi ∠ ai, para 0 ≤ i ≤ n, aplicando n vezes o Lema 5.1.14.1 a cada componente hj de h obtemos, por transitividade de ∠: hj[yr0/ b0]...[yrn/ bn] ∠ hj[yr0/ a0]...[yrn/ an] , para (0 ≤ j ≤ lv(h)) ⇒(5.1.10) (h[yr/ b])j ∠ (h[yr/ a])j , para (0 ≤ j ≤ lv(h)) ⇒(iv) (xi) gj ∠ fj para (0 ≤ j ≤ lv(f)), o que prova o Item (a). Como, por (i), xr não ocorre em ∆, então yir não ocorre em a nem em b (1 ≤ i ≤ n). Assim, a ordem das substituições em hj[yr0/ b0]...[yrn/ bn] e hj[yr0/ a0]...[yrn/ an] não importa, portanto: (xii) hj[yr0/ b0][yr1/ b1]...[yrn/ bn] ≡ hj[yr1/ b1]...[yrn/ bn][yr0/ b0] e hj[yr0/ a0][yr1/ a1]...[yrn/ an] ≡ hj[yr1/ a1]...[yrn/ an][yr0/ a0]. Como, por (vi), h0 está em C0 e por (iii), b e a estão em C, então, pelo Lema 5.1.12.3, temos que h0[yr0/ b0]...[yrn/ bn] está em C0. Além disso, como por (v), y0r ocorre em h0, é claro 219 que y0r também ocorre em h0[yr1/ b1]...[yrn/ bn], pois y0r não é uma das variáveis que sofreram substituição. Portanto, como por (vii) b0 ∠ a0, podemos aplicar o Lema 5.1.14.2 em h0[yr1/ b1]...[yrn/ bn] ≡ h0[yr1/ b1]...[yrn/ bn][yr0/ b0] e obtemos: (xiii) h0[yr0/ b0][yr1/ b1]...[yrn/ bn] ∠ h0[yr0/ a0][yr1/ b1]...[yrn/ bn]. Repetindo n-1 vezes este argumento temos: (xiv) h0[yr0/ b0]...[yrn/ bn] ∠ h0[yr0/ a0]...[yrn/ an] ⇒(5.1.10) (h[yr/ b])0 ∠ (h[yr/ a])0 ⇒(iv) (xv) g0 ∠ f0. Portanto, por (ix) e (xv) demonstramos o teorema. ♦ 5.1.16 Extensão dos Resultados de Howard para Reduções Gerais O sistema T de Gödel não é formalizado em λR⊃, mas em λ⊃. Então, para o artigo de Howard funcionar, mesmo para os seus propósitos originais, ele precisa estender seus resultados para abranger as reduções gerais (Definição 5.1.1.5). Em outras palavras, ele precisa provar um teorema similar a 5.1.15.4, no qual o redex contraído possa ser um subtermo, e não apenas um I-subtermo. Com este resultado teríamos como conseqüência não um Ordinal Natural para λR⊃, mas um Ordinal Natural para λ⊃. Howard propõe uma maneira de estender seus resultados para o caso das reduções gerais através da definição de uma atribuição não unívoca de vetores a termos. A nova atribuição difere da anterior (5.1.3-(1)) apenas para o caso de termos do tipo: λxr.H. Para este caso ele define: (1) λxr.H = δrd + h[yr/ e], onde: e = 〈1, ..., 1〉 com lv(e) = lv(yr), h é qualquer vetor atribuído a H, d é qualquer vetor atribuído a um termo D tal que D se reduz a H por um número finito de passos (D ≡ D0 → D1 → ... → Dk ≡ H e k∈ω). Com esta nova atribuição, λx.F não corresponde a um vetor específico, mas a um conjunto enumerável de vetores, com um vetor distinto para cada atribuição d de cada termo D distinto que se reduz finitamente a H. Genericamente, qualquer termo F que 220 possua alguma subfórmula do tipo λx.G terá uma quantidade enumerável de vetores a ele atribuídos. Howard, utilizando esta nova atribuição de vetores, prova então um teorema substituto de 5.1.15.4 para o caso das reduções gerais. 5.1.16.1 TEOREMA: Seja F →∆ G uma redução geral. Seja f algum vetor atribuído a F por 5.1.16-(1). Então existe um vetor g atribuído à G tal que: (g)i ∠ (f)i, para 1 ≤ i ≤ lev(f) e (g)0 ∠ (f)0. 5.1.16.2 COMEN TÁRIO: Restrição da Extensão dos Resultados de Howard A nova atribuição de vetores a termos permite uma quantidade enumerável de vetores atribuídos a um único termo. O Teorema 5.1.16.1, dada a redução geral F → G, não exibe qual dos possíveis vetores g atribuídos a G satisfaz (g)0 ∠ (f)0, apenas mostra que existe um vetor g que satisfaz tal propriedade. Portanto, 5.1.16.1 é apenas um resultado existencial. Ao contrário, 5.1.15.4 é um resultado construtivo, que exibe exatamente qual o vetor que satisfaz a propriedade desejada. Para a obtenção de normalização forte para λ⊃, este resultado existencial é suficiente, pois assegura que para cada seqüência de redução F1 → F2 → F3 → ... existe uma seqüência de números naturais relacionados a cada termo da seqüência de redução tal que f1> f2> f3... . Portanto, toda seqüência de redução termina. Apesar de conter um resultado de normalização forte para λ⊃, não podemos dizer, no entanto, que o artigo de Howard apresenta a definição construtiva de um ordinal natural para λ⊃, pois, seguindo os seus passos, não sabemos como construir, para cada termo, este número que diminui com qualquer redução. Sabemos que existe um entre uma lista enumerável de possibilidades que Howard nos oferece, mas não sabemos exatamente qual é. 221 5.1.17 Comentários Finais sobre Howard[1968] Como vimos, o artigo de Howard foi escrito com o objetivo de realizar uma análise ordinal da aritmética intuicionista de primeira ordem, formalizada pela teoria de funcionais de tipos finitos T, de Gödel, que por sua vez pode ser formalizada em cálculo lambda tipificado. Realizar uma análise ordinal de uma teoria formal T significa identificar o "tamanho" dos recursos infinitos necessários para provar a consistência de T . No caso da aritmética intuicionista de primeira ordem H , Howard provou, através da teoria T, que, admitindo indução transfinita até o ordinal ε0, conseguimos demonstrar a consistência de H . Tal resultado é o mesmo obtido por Gentzen[1938], que utilizou uma formalização de H em cálculo de seqüentes. Neste estudo que fizemos do artigo de Howard, desconsideramos as peculiaridades de T e focalizamos apenas os seus resultados aplicados às reduções-β em λ⊃. Agindo deste modo encontramos, como conseqüência imediata dos resultados de Howard, a prova do Teorema de Normalização Forte para λ⊃. Até bem pouco tempo atrás não tínhamos conhecimento de nenhum outro trabalho que apontasse, como conseqüência do artigo de Howard, uma prova de normalização forte para λ⊃. Recentemente tivemos notícia da dissertação de mestrado "Abschätzung der Berechnungskomplexität von Gödels T und seinen Teilsystemen", de Gunnar Wilken, defendida em agosto de 1998 na Universidade de Münster, que, segundo o autor, aponta a normalização forte de λ⊃ como uma das conseqüências do artigo Howard[1968]. Wilken realiza um bonito trabalho sobre a teoria T de Gödel, quando formalizada em λ⊃, que tem por base o artigo Howard[1968]. Utilizando os resultados de Howard ele define uma atribuição numérica finitária I a termos da teoria T que diminui com as reduções: Para t1 e t2, termos de T, Wilken demonstra que: I(t1)< ω. t1 → t2 ⇒ I(t1)> I(t2). Como conseqüência deste fato Wilken demonstra a normalização forte de T e ainda apresenta uma estimativa para a complexidade do comprimento das seqüências de redução para T. 222 À primeira vista, o resultado de Wilken reduz de ε0 para ω a análise ordinal da teoria T. No entanto, como comentamos no início desta seção, a normalização forte de T implica em uma prova finitária da consistência da aritmética intuicionista de primeira ordem H , o que contraria o Teorema da Incompletude, de Gödel. Como explicar então o resultado de Wilken? A resposta está na utilização de uma função de colapso de ε0 em ω (ψ : ε0 → ω) introduzida por Weiermann[1998]. 45 Wilken utiliza uma versão suavemente modificada da atribuição de Howard de ordinais menores que ε0 a termos de T e aplica a estes ordinais a função de colapso de Weiermann, obtendo assim um ordinal natural I para termos de T e, conseqüentemente, a normalização forte de T. No entanto, a função de colapso ψ não é computável, é apenas ε0-recursiva. Dessa forma, a prova de Wilken de que para cada termo de T existe uma seqüência de redução finita que termina em um termo normal não é, ela própria, finitária, pois sua atribuição numérica I(t1) necessita de pelo menos ε0 passos para encontrar um número natural que diminua com as reduções de t1. Assim, não podemos dizer que o resultado de Wilken reduz de ε0 para ω a análise ordinal de T, pois as seqüências de redução finitas indicadas por Wilken, que normalizam os termos de T, não podem ser obtidas finitamente. De qualquer forma, o trabalho de Wilken é bastante engenhoso e exigiu um conhecimento profundo do artigo Howard[1968], além do que, aponta para um dado bastante importante sobre provas de normalização forte via ordinal natural: a complexidade da atribuição numérica utilizada. Um resultado de normalização forte, via ordinal natural, que tenha sido obtido por uma atribuição numérica de complexidade não finita tem significado restrito. Ou seja, a complexidade da atribuição numérica aos termos é tão importante quanto o comprimento das seqüências de redução. 45 Weiermann[1998] apresenta os mesmos resultados que Wilken apresenta para a teoria I , no entanto Weiermann utiliza uma formalização de T em lógica combinatória, e como conseqüência disso, obtém seus resultados de modo mais simples que Wilken. 223 §2 O Artigo Vrijer[1987] Neste artigo o autor demonstra o Teorema de Normalização Forte para o sistema λ de cálculo lambda tipificado de duas maneiras: na primeira e mais direta delas, ele atribui para cada termo M um número natural que é limitante superior para o comprimento de todas as seqüências de redução para M. Através de um refinamento deste método, Vrijer obtém uma segunda atribuição que, para cada termo M de λ comprimento da árvore de redução de M. Tal expressão calcula "o número de passos de uma seqüência de redução para M de tamanho máximo" . Esta seqüência de redução de tamanho máximo é obtida aplicando-se a estratégia perpétua, definida em Barendregt[1990] que, para cada termo de cálculo lambda livre de tipos, sempre acha uma seqüência de redução infinita, quando existe uma. ⊃ ⊃, calcula exatamente o 46 Por se aproximar mais da nossa definição de o(π) para o caso de Dedução Natural, vamos aqui nos ater a esta segunda atribuição, denominada de estimativa exata. Quanto à primeira atribuição, a estimativa frouxa, apenas apresentaremos sua definição e alguns comentários. A estimativa exata [M] é definida de modo a conter uma expressão para o comprimento da árvore de redução de M, denotado por h(M) e, além disso, conter todas as informações necessárias para calcular a estimativa exata para o termo MN a partir da estimativa de N, se o termo aplicativo MN for bem formado. Mais explicitamente: Se M é termo do tipo A⊃B, então a expressão [M] denota o par 〈f, m〉, onde m é um número que indica a altura da árvore de redução de M (m= h(M)), e f é um funcional tal que a equação f[N]= [MN] é válida para cada termo N do tipo A . Se o tipo de M é atômico, então [M] apenas denota a altura h(M). Assim, denotando [M]= 〈[M]', [M]*〉, o objetivo principal do artigo é demonstrar que [M]*= h(M), ou seja, que a estimativa exata [M] de fato calcula exatamente o comprimento da árvore de redução para M. Estes pares de que estamos falando (〈[M]', [M]*〉) pertencem a uma hierarquia muito semelhante à hierarquia dos funcionais de tipos finitos, bastante estudada por Kleene. Tal 46 Cf. Vrijer [1987], p. 479. Na verdade, o resultado de Vrijer é obtido para um sistema mais simples que λ⊃, e que possui apenas um tipo básico, ao invés de uma quantidade enumerável deles. No entanto, seus resultados se aplicam diretamente para λ⊃ e vamos descrevê-los neste sistema. 224 hierarquia foi chamada por Vrijer de hierarquia dos funcionais de tipos finitos hereditariamente rotulados, ou, mais abreviadamente, de funcionais rotulados. 47 Apresentamos a seguir a seqüência de definições e resultados do artigo relativos à estimativa exata. Nosso principal objetivo é esclarecer totalmente o método utilizado pelo autor, e para tanto não nos preocuparemos com as demonstrações dos resultados, mas com explicações intuitivas das motivações e conseqüências tanto dos resultados parciais quanto das definições. No entanto, apresentaremos algumas demonstrações quando julgarmos oportuno para a compreensão do método. Algumas destas provas, inclusive, não foram desenvolvidas originalmente no artigo. 5.2.1 DEFIN IÇÃO: Os Funcionais Rotulados A coleção de funcionais rotulados do tipo A , LA, é definida por indução nos tipos da seguinte forma: Lo = ω, LB⊃C = (LB→LC) × ω, onde: o denota um tipo atômico qualquer, ω o conjunto dos números naturais, × o produto cartesiano e → o espaço de funções. 5.2.1.1 NOTAÇÕES: (a) Denotaremos f ∈ LB⊃C por f= 〈f', f*〉 tal que f': LB→LC e f*∈ω. (b) Dados f∈LB⊃C e g∈LB a notação f'g denota o funcional pertencente a LC, obtido da aplicação do componente funcional de f a g. (c) Muitas vezes, por abuso de linguagem, denotaremos f' apenas por f. Dessa forma a notação fg é uma abreviação para f'g. (d) Como regra, os subíndices de tipos serão omitidos sempre que for possível fazê-lo sem causar confusão. Assim, f∈L significa que f∈LA para algum tipo A . Também, ao 47 Para uma introdução à teoria de funcionais de tipos finitos ver Kleene[1959], Kleene[1978]. 225 escrevermos uma expressão do tipo fg, estamos assumindo os tipos apropriados, ou seja, para certos tipos A e B, f∈LA⊃B e g∈LA. 5.2.1.2 EXEMPLOS: (i) Lo⊃o = (Lo→Lo) × ω = (ω→ω) × ω e f∈Lo⊃o ⇒ f= < f',f*> tal que f':ω→ω e f*∈ω. (ii) L(o⊃o)⊃(o⊃o) = (Lo⊃o → Lo⊃o) × ω = (((ω→ω) × ω) → ((ω→ω) × ω)) × ω e )i( g∈ L ⇒ g= < g',g*> tal que g': ((ω→ω) × ω) → ((ω→ω) × ω) e g*∈ω. Para f∈L n∈ω definimos (f + )∈LA por indução em A da seguinte forma: (o⊃o)⊃(o⊃o) 5.2.2 DEFIN IÇÃO: A Operação +A A e A n m +o n = m + n, f +A⊃B n= < Λg.(fg+B n), f*+ n> (com g∈LA). 5.2.2.1 OBSERVAÇÕES: (a) O símbolo Λ é usado aqui para abstração funcional na metalinguagem, ou seja, está fazendo o papel que o símbolo λ faz na sintaxe de λ-cálculo. (b) Como estamos lidando com funcionais sobre ω que possuem características extensionais tanto quanto as funções da aritmética, vale na semântica as reduções-η, e portanto Λg.fg= f. Assim, a notação Λg.(fg+B n) representa uma maneira de dizer que estamos somando n à "expressão" da parte funcional de f. Ou seja, Λg.(fg+B n) representa um funcional que além de efetuar todas as operações descritas na expressão de f, realiza mais uma (+B n). (c) Note que se f∈LA⊃B, então, como g∈LA, temos que fg∈LB e (fg+B n)∈LB. Logo, Λg.(fg+B n) ∈ LA⊃B. (d) Demonstra-se facilmente, por indução nos tipos, que +A satisfaz as seguintes propriedades: (i) (f+ n)g= fg+ n; (ii) (f+ n)*= f*+ n; (iii) f+ 0 = f; (iv) (f+ m)+ n = f+ (m+ n). 226 5.2.2.2 EXEMPLO: Seja f ∈ Lo⊃o | f= 〈Λm.(m+ 2), 3〉 (Note que m∈ω, (Λm.(m+ 2)) ∈ ω→ω e 3∈ω). Assim, f +o⊃o 3 = 〈Λm.(m+ 2), 3〉 +o⊃o 3 = 〈Λm.((m+ 2) +o3), 3+ 3〉 = 〈Λm.(m+ 5), 6〉 ∈ L(o)o. 5.2.3 DEFIN IÇÃO: Funcionais Minimamente Cumulativos Por indução nos tipos definimos, para cada n∈ω, o funcional minimamente cumulativo cnA∈LA da seguinte maneira: cno = n, cnA⊃B = < Λf.cnB+f* , n> (com f∈LA). 5.2.3.1 PROPRIEDADES: Com relação a estes funcionais demonstra-se as seguintes propriedades: (a) cnf1...fm = cn+f1*+...+fm* (acumulação); (b) (cof1...fm)* = f1*+ ...+ fm* (caso particular de (i)); (c) cnα+ m = cαn+m. Vejamos, como ilustração, as provas de (a) e (c). PROVA : • Item (a) cnf1...fm = (((cnf1)f2)...)fm (por convenção de parênteses) Mas pela Definição 5.2.3: cnf1 = (Λf.cn+f*)f1 c=por β-reduç ão n+f1* Assim, cnf1...fm= (((cn+f1*)f2)...)fm. Dessa forma, aplicando-se m vezes a Definição 5.2.3 temos: cnf1...fm = cn+f1*+...+fm* .   • Item (c) Indução em A . BASE: (A= o) cno+ m n+ m c5.2.3= 5.2.3= o n+m. PASSO: A ≡ B⊃C 227 (i) (c m)* (c m n+ m (c (c m)f = c . Rigorizando a notação: (cB⊃C+ m)'f = (c f. (ii) {M M M n B⊃C+ (d)(ii)-5.2.2.1 = n B⊃C)*+ 5.2.3 = 5.2.3 = n B + ⊃ m C)*. Além disso, se f∈LB, então: (ii) (cnB⊃C+ m)f c(d)(i)-5.2.2.1= n B⊃Cf+ m c )a(1.3.2.5 = Cn+f*+ m. Mas por hipótese de indução: (iii) cCn+f*+ m = cCn+f*+m c)a(1.3.2.5 = n B + ⊃ m Cf. Portanto, por (ii) e (iii) temos: n B⊃C+ nB+⊃mCf n nB+⊃mC)' Logo, por extensionalidade dos funcionais: (iv) (cnB⊃C+ m)' = (cnB+⊃mC)'. Assim, por (i) e (iv) temos: cnB⊃C+ m = cnB+⊃mC. ♦ 5.2.4 DEFIN IÇÃO: Atribuição de Funcionais a Variáveis xA Seja xA uma variável de λ⊃ do tipo A . Uma atribuição v associa o valor v(xA)∈LA para cada variável xA. Seja f∈L. Utilizaremos a notação v(x/ f) para a atribuição que corresponde a v para qualquer argumento com exceção de x, para o qual v(x/ f) associa o valor f. Assim temos: v(x/ f)(x)= f; v(x/ f)(y)= v(y) se y ≠ x. 5.2.5 DEFIN IÇÃO: Estimativa Frouxa Seja M um termo do tipo A . A estimativa frouxa relativa a atribuição v {M}v ∈ LA é definida, para uma atribuição v qualquer, por indução na complexidade de M, da seguinte forma: (i) {x}v = v(x); 0M1}v = { 0}v{ 1}v; (iii) {λxA.M0}v = 〈Λf.{M0}v(x/f)+ f*+ 1 , {M0}v(x/cA0)*〉 (com f∈LA). Considere e a atribuição definida por e(xA)= c0A. A estimativa frouxa {M} para um termo M é definida por: {M}= {M}e. 228 5.2.6 DEFIN IÇÃO: Estimativa Exata Seja M um termo do tipo A . A estimativa exata relativa à atribuição v [M L definida para cada atribuição v, por indução na complexidade de M da seguinte forma: 5.2.6.1 OBSERVAÇÃO: (i) [λx λy x(xy))] = 〈Λf.[λy x(xy)] λyo.x(xy)] 〉. (iii) [x(xy)] x x]e(x/f)(y/m)[y f(fm). Por (i), (v) e (vi) temos: ]v∈ A é (i) [x]v = v(x); (ii) [M0M1]v = [M0]v[M1]v; (iii) [λxα. M0]v = 〈Λf.[M0]v+ f*+ 1 , [M0]v*〉 (com f∈LA) , se x ∉ FV (M0), e 〈Λf.[M0]v(x/f)+ 1 , [M0]v(x/cA0)*〉 (com f∈LA) , se x ∈ FV (M0). Considere e a atribuição definida por e(xA)= c0A. A estimativa exata [M] para um termo M é definida por: [M]= [M]e. Note que se x ∉ FV (M), a atribuição v e a atribuição v(x/ f) têm o mesmo efeito sobre M e, portanto, [M]v= [M]v(x/f). 5.2.6.2 EXEMPLOS: Vamos, a título de ilustração, calcular a estimativa exata para os seguintes exemplos: •(a) [λxo.yo] 〈Λf.[y )iii(6.2.5 = o]e+ f*+ 1 , [yo]e*〉 (com f∈Lo) (já que yo ∉ xo) 〈Λm.e(y )i(6.2.5 = o)+ m+ 1 , e(yo)*〉 (pois f∈Lo ⇒ f= m∈ω) 〈Λm.c= 0o+ m+ 1 , c0o*〉 (pois e(xA)= c0A) 〈Λm.m+ 1 , 0〉.   3.2.5 = •(b) [λxo⊃o.(λyo.x(xy))]. o⊃o.( o. o. e(x/f)+ 1, [ e(x/coo⊃o)* (ii) [λyo.x(xy)]e(x/f) = 〈Λm.[x(xy)]e(x/f)(y/m)+ 1, [x(xy)]e(x/f)(y/coo)*〉. e(x/f)(y/m)= [ ]e(x/f)(y/m)([ ]e(x/f)(y/m)) = (iv) [x(xy)]e(x/f)(y/coo)= [x]e(x/f)(y/coo)([x]e(x/f)(y/coo) [y]e(x/f)(y/coo)) = f(fco o)= f(f0). (v) [λyo.x(xy)]e(x/coo⊃o)* [x(xy)])ii(= e(x/coo⊃o)(y/coo)* c)iii(= o o⊃o(coo⊃ocoo) = coo⊃ocoo = coo = 0. Por (ii), (iii) e (iv) temos: (vi) [λyo.x(xy)]e(x/f) = 〈Λm.f(fm)+ 1, f(f0)〉. 229 [λxo⊃o.(λyo.x(xy))] = 〈Λf.〈Λm.f(fm)+ 1, f(f0)〉+ 1, 0〉. = 〈Λf.〈Λm.f(fm)+ 2, f(f0)+ 1〉, 0〉.   •(c) [(λx(o)oyo.x(xy))λzo.z] [λx )ii(6.2.5 = (o)oyo.x(xy)][λzo.z] (Λf.〈Λm.f(fm)+ 2 , f(f0)+ 1〉)〈Λn.n+ 1 , 0〉 (b) e )a( = = 〈Λm.(Λn.n+ 1)((Λn.n+ 1)m)+ 2 , (Λn.n+ 1)((Λn.n+ 1)0)+ 1〉 β-redução = 〈Λm.(Λn.n+ 1)(m+ 1)+ 2 , (Λn.n+ 1)1+ 1〉 = 〈Λm.((m+ 1)+ 1)+ 2 , (1+ 1)+ 1〉 = 〈Λm.m+ 4 , 3〉. ♦ 5.2.7 COMEN TÁRIOS: Entendendo a Definição 5.2.6 A expressão para [M] apresentada em 5.2.6 deve ser compreendida como uma contagem dos passos da redução de M de acordo com uma estratégia maximamente não econômica, que jamais permite um caminho curto quando uma rota mais longa possa ser efetuada. A estratégia contida nesta definição é exatamente a estratégia perpétua definida em Barendregt[1990] §13.4, que, em cálculo-λ livre de tipos, para cada termo M sempre encontra uma seqüência de redução infinita, se houver uma. No caso de cálculo-λ tipificado espera-se que esta estratégia produza, para um termo M, uma seqüência de redução de tamanho máximo, cujo comprimento portanto é h(M). Analisemos cada uma das três cláusulas de 5.2.6, começando com a segunda. (a) Entendendo 5.2.6-(ii): A cláusula (ii) da Definição 5.2.6 descreve o comportamento da parte funcional da estimativa exata. Ela assegura que a estimativa [M]= 〈[M]', [M]*〉 para o termo M não apenas contém o valor para h(M), que é [M]*, como também contém um funcional ([M]') que calcula a estimativa de MN, a partir de [N], para todo N, tal que MN é bem formado. Assim, se M ≡ M0M1, então [M]= [M0M1]= [M0]'[M1]= [M0][M1]. Dessa forma, o que 5.2.6-(ii) faz é descrever o comportamento da parte funcional da estimativa exata. 230 (b) Entendendo 5.2.6-(i): Considere o termo xM1...Mm. Note que, colocando os parênteses, temos (...((xM1)M2)...)Mm. Note também que em xM1 só ocorrem os redex de M1, pois o termo aplicativo xM1 só teria novos redex além dos de M1 se x fosse um termo da forma λy.N. Da mesma forma, (xM1)M2 só possui os redex que já ocorriam em M1 e em M2, pois xM1 não é da forma λy.N. Assim, o termo xM1...Mm possui apenas os redex internos a cada Mi, e a redução de algum deles só afeta o próprio Mi onde o redex ocorre, provocando um distúrbio apenas local. Dessa forma, se M1,..., Mm são fortemente normalizáveis (dos tipos apropriados), então xM1...Mm também o é. E mais ainda, o comprimento h(xM1...Mm) é dado pela equação h(xM1...Mm)= h(M1)+ ...+ h(Mm). Isto ajusta-se com o fato de que: (c) Entendendo 5.2.6-(iii): [xM1...Mm]* ([x][M)ii(6.2.5 = 1]...[Mm])* (c)i(6.2.5 = 0[M1]...[Mm])* [M)b(1.3.2.5 = 1]*+ ...+ [Mm]*. A clausula 5.2.6(i), juntamente com 5.2.6(ii), garante portanto que a estimativa exata se comporta adequadamente no tratamento das variáveis. É claro que h(λxA.M)= h(M), o que se ajusta ao fato de que, quer x ocorra livre ou não em M, [λxA.M]* [M]*, pois e(x/ c )ii(6.2.5 = 0 A) e(x). Quanto à parte funcional de [λx.M], ela se objetiva a que saibamos como calcular a estimativa para um termo do tipo (λx.M)N, a partir da estimativa [N] para o termo. Devemos portanto entender a cláusula 5.2.6-(iii) como uma tomada de decisão sobre qual redex deve ser reduzido em um termo do tipo (λx.M)N, de modo a obtermos uma seqüência de redução de tamanho máximo. = Se x ∉ FV (M), então a seguinte redução se aplica: (λx.M)N → M. Assim, para não prejudicarmos o potencial de passos de redução, o redex (λx.M)N não deve ser contraído até que N esteja na forma normal, pois N desaparece na redução de (λx.M)N. Isto sugere que, se x ∉ FV (M), então h((λx.M)N)= h(N)+ h(M)+ 1, pois a seqüência maximamente não econômica para (λx.M)N inicialmente normaliza N (computado em h(N)), contrai o redex (λx.M)N', onde N' representa a forma normal para N (computado em + 1), e finalmente normaliza M, que é o resultado da contração de (λx.M)N' (computado em h(M)). Tal fato está totalmente de acordo com o que ocorre em 5.2.6-(iii) quando x ∉ FV (M). Veja: 231 [(λx.M)N]* ([λx.M][N])* ((Λf.([M]+ f*+ 1))[N])* )ii(6.2.5 = )iii(6.2.5 = ([M]+ [N]*+ 1)* [M]*+ [N]*+ 1. β− = reducao )iv(e)ii()d(1.2.2.5 − = Por outro lado, se x∈FV (M), ((λx.M)N → M[x/ N]. Assim, é melhor não executar reduções dentro de N antes de contrair (λx.M)N, pois a redução de (λx.M)N multiplica N em M tantas vezes quantas forem as ocorrências de x em M. Assim, suponha que h(N)= 1, e que existam 5 ocorrências de x em M. Uma seqüência de redução para (λx.M)N que atue em N antes de contrair o redex (λx.M)N terá pelo menos quatro passos a menos que uma seqüência que primeiro contraia (λx.M)N e depois reduza cada uma das 5 cópias de N em M[x/ N]. Isto sugere que se x∈FV (M): h((λx.M)N)= h(M[x/ N])+ 1, ou seja, a primeira redução que devemos fazer, para não prejudicarmos o potencial de redução do termo é a de (λx.M)N. Tal fato está totalmente de acordo com o que ocorre em 5.2.6-(iii) quando x ∉ FV (M). Veja: [(λx.M)N]*= ([λx.M][N])*= ((Λf.[M]e(x/f)+ 1)[N])* = ([M]e(x/[N])+ 1)*= [M]e(x/[N])*+ 1 [M[x/ N]]*+ 1. adiante veremos 5.2.8 = Note que a diferença entre a estimativa exata e a estimativa frouxa, definida em 5.2.5, é que a estimativa frouxa trata os dois casos possíveis para 5.2.6-(iii) como um único caso onde as duas possibilidades são somadas. Assim, a estimativa frouxa excede o valor exato de h(M). No entanto, ainda que excedendo este valor, Vrijer provou que {M}* é limitante superior finito para h(M) que diminui com as reduções, ou seja, que {M}* é ordinal natural para λ⊃. Apresentaremos agora, em detalhes, a demonstração de que [M]v(x/[N])= [M[x/ N]]v. Faremos isso não apenas porque este resultado é importante para a compreensão intuitiva da definição da estimativa exata, mas também porque é uma prova simples que aparece apenas esboçada no artigo de Vrijer e pode ser tomada como um modelo para a estrutura geral da maioria das provas do artigo. 232 5.2.8 LEMA: da Substituição [M[x/ N]]v = [M]v(x/[N]v). PROVA: Indução na complexidade de M BASE: (t= yA) CASO 1: y ≡/ x [M[x/ N]]v = [y[x/ N]]v = [y]v = v(y) = v(x/ [N]v)(y) = [y]v(x/[N]v)= [M]v(x/[N]v). CASO 2: y ≡ x [M[x/ N]]v = [x[x/ N]]v = [N]v = v(x/ [N]v)(x) = [x]v(x/[N]v)= [M]v(x/[N]v). PASSO: CASO 1: M ≡ M0M1. [M[x/ N]]v = [(M0M1)[x/ N]]v (por hipótese do caso) = [(M0[x/ N])(M1[x/ N])]v (por def. de substituição) = [M0[x/ N]]v[M1[x/ N]]v (por 5.2.6-(ii)) = [M0]v(x/[N]v)[M1]v(x/[N]v) (por HI) = [M0M1]v(x/[N]v) (por 5.2.6-(ii)) = [M]v(x/[N]v) (por hipótese do caso). CASO 2: M= λy.M0 Pela convenção de variáveis temos: (i) y ≡/ x e y ∉ FV (N). SubCaso 2.1: y ∈ FV (M) [M[x/ N]]v = [(λy.M0)[x/ N]]v (por hipótese do caso) = [λy.(M0[x/ N])]v (por def. de subst.) = 〈Λf.[M0[x/ N]]v(y/f)+ 1 , [M0[x/ N]]v(y/c0)*〉 (5.2.6-(iii)) = 〈Λf.[M M 〉 (por HI) 0]v(y/f)(x/[N]v(y/f))+ 1 , [ 0]v(y/c0)(x/[N]v(y/co))* = 〈Λf. [M0]v(y/f)(x/[N]v)+ 1 , [M0]v(y/c0)(x/[N]v)*〉 ((i) ⇒ [N]v= [N]v(y/g)) = 〈Λf. [M0]v(x/[N]v)(y/f)+ 1 , [M0]v(x/[N]v)(y/c0)*〉 ((i) ⇒ v(y/ g)(x/ [N]v)= v(x/ [N]v)(y/ g)) = [λy.M0]v(x/[N]v) hip=. do caso [M]v(x/[N]v) (5.2.6-(iii)) . SubCaso 2.2: y ∉ FV (M) [M[x/ N]]v = [(λy.M0)[x/ N]]v (por hipótese do caso) = [λy.(M0[x/ N])]v (def de subst.) = 〈Λf.[M0[x/ N]]v+ f*+ 1, [M0[x/ N]]v*〉 ((i) ⇒ y ∉ FV (M0[x/ N]) e por 5.2.6-(iii)) 233 = 〈Λf.[M ] + f*+ 1 , [M ] *〉 (hip. indução) 0 v(x/[N]v) 0 v(x/[N]v) = [λy.M0]v(x/[N]v) hip [M]v(x/[N]v). (5.2.6-(iii)) .♦ =. do caso 5.2.8.1 COROLÁRIO: U niformidade da Estimativa Se [N ]= [N ], então [M[x/ N ]]= [M[x/ N ]]. 1 2 1 2 PROVA: Imediata a partir de 5.2.8. ♦ Se admitirmos como já demonstrado que [M]*= h(M), então o Corolário 5.2.8.1 está afirmando que h(N )= h(N ) ⇒ h(M[x/ N ]) = h(M[x/ N ]), o que significa dizer que o comprimento da árvore de derivação para um termo depende uniformemente dos comprimentos das árvores de derivações de seus subtermos constituintes. Este, segundo Vrijer, é um resultado inédito, não derivado de nenhuma outra prova de normalização forte para λ . 1 2 1 ⊃ 2 Para poder provar que [M]*= h(M), Vrijer utiliza o fato de que os funcionais rotulados que satisfazem a definição 5.2.6 pertencem a uma classe C ⊂ L que é cumulativa, com relação à operação +A, e monótona segundo as relações < A e ≤A que definiremos a seguir. 5.2.9 DEFIN IÇÃO: Funcionais Hereditariamente Cumulativos "Monótonos" As coleções CA são definidas simultaneamente às relações < A e ≤A por indução em A da seguinte forma: (i) Co= Lo; m< o n ⇔ m< n; m ≤o n ⇔ m ≤ n. (ii) CA⊃B= {f∈LA⊃B | as condições (a) a (d) abaixo são satisfeitas}. (a) (∀g∈CA) (fg∈CB) (fechado p/ aplicação); (b) (∀g, g'∈CA) (g< A g' ⇒ fg< B fg') (< -monotonicidade); (c) (∀g, g'∈CA) (g ≤A g' ⇒ fg ≤B fg') (≤-monotonicidade); (d) (∀g∈C ) ((fg)* ≥ f*+ g*) (acumulação). A (iii) Para f, g ∈ CA⊃B, (a) f< A⊃B g ⇔ (∀h∈CA) (fh< B gh) ∧ (f*< g*); (b) f ≤A⊃B g ⇔ (∀h∈CA) (fh ≤B gh) ∧ (f* ≤ g*). 234 5.2.9.1 COMENTÁRIOS: (a) C = ∪ACA é fechado para aplicações (condição (ii)(a)), e < A e ≤A são transitivos (o que é facilmente verificável por indução nos tipos). (b) Poderíamos ficar tentados a pensar que f ≤ g pudesse ser definido simplesmente como: f< g ou f= g. Este é o caso, é claro, para os tipos básicos, mas não para tipos maiores. Como um contra-exemplo em o⊃o considere os funcionais f= Λn.n e g= Λn.n2. Neste caso f ≤ g, mas f ≠ g e f </ g. (c) < -monotonicidade e ≤-monotonicidade são predicados independentes; um não implica no outro. Como contra-exemplos: funções constantes são ≤-monótonas mas não < -monótonas. Um funcional do tipo (o⊃o)(o⊃o) que é < -monótono mas não é ≤monótono pode ser definido por: f(Λn.n2)= Λn.n2, fg= Λn.gn+ 1 se g ≠ Λn.n2. (d) Freqüentemente escreveremos f ≥ g para g ≤ f, e f> g para g< f. Com exceção do Item (viii), o lema seguinte, juntamente com os resultados apresentados em 5.2.2.1(d), estabelece propriedades sobre < A, ≤A e +A, que dão a estes símbolos um comportamento semelhante ao que conhecemos na aritmética. O Item (viii), por sua vez, é conseqüência de (vii) por indução em n, e não tem correspondência na aritmética por se referir à operação de aplicação, exclusiva dos funcionais. As provas de cada item são simples e feitas por indução nos tipos ou em algum número natural envolvido na operação, utilizando apenas as definições e os itens anteriores. 5.2.10 LEMA: (i) C é fechado para + . (ii) f< g ⇒ f+ m< g+ m; f ≤ g ⇒ f+ m ≤ g+ m. (iii) m< n ⇒ f+ m< f+ n; m ≤ n ⇒ f+ m ≤ f+ n. (iv) m> 0 ⇒ f< f+ m e f ≤ f+ m. (v) f ≤ f. (vi) f< g ⇒ f ≤ g. (vii) f< g ≤ h ⇒ f< h; f ≤ g< h ⇒ f< h. (viii) f> g ⇒ f ≥ g+ 1. (ix) f(g+ n) ≥ fg+ n. ♦ 235 No lema seguinte, o item (i) estabelece que os funcionais cnA definidos em 5.2.3 pertencem à hierarquia C de funcionais monótonos, ou seja, que eles respeitam as restrições de monotonicidade e acumulação da Definição 5.2.9. Os Itens (ii) e (iii) estabelecem propriedades destes funcionais. 5.2.11 LEMA: (i) cnA ∈ C para qualquer A e n. (ii) m< n ⇒ cmA< cnA. (iii) m ≤ n ⇒ cmA ≤ cnA. ♦ O lema seguinte explica o sentido de chamarmos os cnA de funcionais minimamente cumulativos. Sua prova é obtida facilmente por indução em A . O corolário do lema mostra que os verdadeiros elementos minimais na classe C são os c0. 5.2.12 LEMA: f∈CA ⇒ f ≥ cAf*. ♦ 5.2.12.1 COROLÁRIO: f ∈ CA ⇒ f ≥ c0A. ♦ 5.2.13 N OTAÇÃO: Uma atribuição v para a qual todos os seus valores estão em C é chamada de C-atribuição. A atribuição e definida em 5.2.1.2 (e(xA)= c0A) é uma C-atribuição devido ao Lema 5.2.11. No Item (i) do lema seguinte provamos que os funcionais que representam a estimativa exata para qualquer λ⊃-termo M pertencem, de fato, à hierarquia C. Já o Item (ii) estabelece algumas propriedades da estimativa exata quando lidamos com C-atribuições do tipo v(x/ f). A prova deste lema é feita por indução na complexidade do termo M. Por possuir muitos casos é extensa, mas utiliza apenas as definições e os resultados anteriores. 5.2.14. C-Lema (i) [M]v∈C para qualquer C-atribuição v. 236 (ii) Se x∈FV (M) e f, g∈CA, então: (a) [M]v(x/f) ≥ [M] v(x/c0)+ f*; (b) f< g ⇒ [M]v(x/f)< [M]v(x/g); (c) f ≤ g ⇒ [M]v(x/f) ≤ [M]v(x/g). ♦ 5.2.14.1 COMEN TÁRIO: Finitude da Estimativa Exata O Item (i) do lema acima estabelece que os funcionais que representam a estimativa exata para qualquer λ⊃-termo M pertencem, de fato, à hierarquia C. Este resultado é de extrema importância, pois como C ⊂ L e [M]∈C então [M]∈L. Mas se [M] ∈ L, pela Definição 5.2.1 de L, temos que [M]* ∈ ω. Logo, o Item (i) acima assegura que para qualquer termo M, [M]*∈ω. Portanto, a estimativa exata para qualquer termo M é finita. Basta agora apenas provarmos que a estimativa exata diminui com as reduções para obtermos a normalização forte e completarmos os resultados de Vrijer. 5.2.15 DEFIN IÇÃO: Sejam M e N λ⊃-termos, e v uma atribuição. Então | M| v ∈ ω e | M, N| v ∈ ω são definidos da seguinte forma: (i) | M| v(x)*; v= )M(FVx∈ Σ (ii) | M, N| v= v(x)*. FV(N) x e )M(FVx ∉ ∈ Σ O Item (i) acima estabelece que | M| v representa a somatória de v(xi)* para toda variável livre xi que ocorre livre em M. O que é importante sobre | M| v é que ainda que x1, por exemplo, possua 5 ocorrências livres em M, | M| v computa apenas uma vez v(x1)*, e não cinco vezes. Assim, | λy.x(xy)| v= v(x)*= | λy.xy| v. Já o item (ii) define | M, N| v como a somatória de v(xi)*, para toda variável xi que possua ocorrência livre em M e não possua ocorrência livre em N. Assim, se M ≡ λy.x(zy) e N ≡ λy.zy, temos que | M, N| v= v(x)*. 5.2.15.1 PROPRIEDADES: (i) | x| v = v(x)*. (ii) | M0M1| v ≤ | M0| v + | M1| v. 237 (iii) x∉FV (M) ⇒ | λx.M| v = | M| v. (iv) x∈FV (M) ⇒ | λx.M| v + v(x)*= | M| v. (v) | M, N| v ≤ | M| v. (vi) M → N ⇒ | M| v = | N| v + | M, N| v. ♦ As propriedades (i) a (v) são demonstráveis, trivialmente, a partir da Definição 5.2.15. Com respeito à propriedade (vi), basta analisarmos os dois casos possíveis de redução, a de um K-redex e a de um I-redex, para concordarmos com sua validade. 5.2.16 LEMA: [M]v ≥ c|M|v para todo termo M e C-atribuição v. ♦ 5.2.16.1 COROLÁRIO: [M]v* ≥ | M| v. PROVA: [M] )16.2.5( ⇒ v ≥ c|M|v [M])b)(iii)(9.2.5( ⇒ v* ≥ c|M|v* [M]3.2.5⇒ v* ≥ | M| v .♦ O Lema 5.2.16 estabelece que a estimativa exata segundo v [M]v é maior ou igual ao funcional minimamente cumulativo c|M|v. Sua prova é obtida por indução na complexidade de M através dos resultados já estabelecidos. O Corolário 5.2.16.1 estabelece que a estimativa exata para qualquer termo M é maior ou igual que a somatória das atribuições de v às variáveis livres de M. Este resultado é fundamental para a prova do lema seguinte, que estabelece que a estimativa exata diminui com as reduções. 5.2.17 LEMA: da Redução Se M → N, então, para qualquer C-atribuição v, temos: [M]v > [N]v+ | M, N| v. ♦ 5.2.17.1 COROLÁRIO: Ordinal N atural [M]* é Ordinal Natural para λ⊃. 238 PROVA: Pelo Lema 5.2.14-(i) temos que [M]*< ω e pelo Lema 5.2.17 que [M]* diminui com as reduções. ♦ 5.2.17.2 COROLÁRIO: h(M) ≤ [M]*. PROVA: Indução em [M]* BASE: [M]*= 0 ¬∃N / M → N ⇒ h(M)= 0 ⇒ h(M) ≤ [M]*. 17.2.5 ⇒ PASSO: [M]*= n> 0 (i) Seja N / M → N. (ii) Por 5.2.17 e (i) temos: [M]*> [N]*. (iii) Por (ii) e HI temos: h(N) ≤ [N]*. (iv) Mas por (i) é claro que h(M)= h(N)+ 1. Assim temos: h(M) = h(N)+ 1 [N]*+ 1 [M]*+ 1 ≤ [M]* ⇒ h(M) ≤ [M]*. ♦ )iv( )iii( ≤ )ii( < Este corolário, obtido imediatamente a partir do lema da redução, prova que [M]* é limitante superior para o comprimento da árvore de redução de M (h(M)). Este resultado e o Lema 5.2.14-(i), que garante a finitude de [M]* para qualquer M, demonstram a normalização forte de λ⊃, pois estabelecem que todo termo M possui um limitante superior finito para o comprimento de sua árvore de redução. No entanto, Vrijer quer mais. Ele quer demonstrar que sua estimativa é "exata", ou seja, é o menor limitante superior para h(M) (h(M)= [M]*). Para fazer isso demonstra, no teorema seguinte, que existe uma seqüência de redução específica para cada termo M cujo comprimento é exatamente igual a [M]*. Esta seqüência é exatamente a seqüência obtida através da aplicação da estratégia perpétua de redução ao termo M. 5.2.18 TEOREMA: Se [M]*> 0, então existe um N com M → N tal que: (i) Se M não é da forma λx.M0, então [M]= [N]+ 1. (ii) Se M= λx.M0, então [M]*= [N]*+ 1. ♦ 239 Se para todo M tal que [M]*> 0 existe N tal que M → N e [M]*= [N]*+ 1, então é claro que existe uma seqüência de redução específica cujo comprimento é exatamente igual a [M]*, pois o teorema estabelece que existe a seguinte seqüência de redução para M: M ≡ M0 → M1 → ... → Mi → ... → Mn. [M]*= [M0]*= n, [M1]*= n–1, ..., [Mi]*= n–i [Mn]*= n–n= 0. Este N que o teorema assegura que existe é exatamente F∞(M), que definimos em 4.4.5. Assim, temos como conseqüência do Teorema 5.2.18 que [M]*= LF∞(M). 5.2.18.1 COROLÁRIO: [M]* ≤ h(M). PROVA: É claro que se o comprimento de uma seqüência de redução específica para M é igual a [M]*, então [M]* ≤ h(M). ♦ 5.2.19 TEOREMA: h(M)= [M]*. PROVA: Imediata pelos Corolários 5.2.17.2 e 5.2.18.1. ♦ §3 O Artigo Beckmann[1998] O objetivo principal de Beckmann, antes de provar a normalização forte ou encontrar um ordinal natural para λ⊃, é apresentar um limitante superior finito para o comprimento da árvore de redução para um termo qualquer M, que seja fácil e diretamente obtido a partir de propriedades imediatamente reconhecíveis do termo M. A principal virtude de tal estimativa seria uma medida simples da complexidade de uma função que calcula o comprimento da árvore de redução para um termo M. O método que Beckmann utiliza em seu artigo foi desenvolvido em Schwichtenberg[1991], onde já aparece uma estimativa para a complexidade do 240 comprimento da árvore de redução para termos de λ⊃. O trabalho de Beckmann é um aprimoramento deste método, e sua estimativa representa um refinamento nos resultados de Schwichtenberg. Uma primeira estimativa deste tipo foi introduzida por Schwichtenberg[1982], que utilizou o ordinal natural definido por Gandy[1980] para calcular sua estimativa. Schwichtenberg utilizou, para o desenvolvimento do seu método, os trabalhos de Howard[1980A], Sanchis[1967] e Diller[1968]. Vamos apresentar agora algumas definições importantes para a compreensão geral do método utilizado por Beckmann. 5.3.1 DEFIN IÇÃO: Comprimento de M l(M) Definimos o comprimento de um termo M, e denotamos por l(M), da seguinte forma: (i) l(x)= 1; (ii) l(λx.M)= l(M)+ 1; (iii) l(MN)= l(M)+ l(N). 5.3.2 DEFIN IÇÃO: Grau de M g(M) Considerando a Definição 5.1.1.2 de Howard para nível de um termo M, lv(M), definimos o grau de um termo M, que denotamos por g(M), como o nível máximo dos subtermos de M: g(M)= max{lv(N) / N ⊂ M}. 5.3.3 DEFIN IÇÃO: Exponenciação K-Iterada na Base 2 2k(n) Definimos a função 2k(n) por: 20(n)= n 2k+1(n)= 2 2k(n) 5.3.3.1 OBSERVAÇÃO: Note que 2n(m)= n vezes. m2 222 N 241 Decidimos denominar de número de Beckmann a seguinte atribuição numérica definida por Beckmann, que veremos mais adiante representar, para cada termo M, um limitante superior finito para o comprimento da árvore de redução para M. 5.3.4 DEFIN IÇÃO: N umero de Beckmann nB(M) O número de Beckmann para um termo M é definido como: nB(M)= 2g(M)(l(M)). 5.3.5 COMEN TÁRIO: Esclarecimentos sobre o Método Schwichtenberg-Beckmann O objetivo de Beckmann é mostrar que nB(M)= 2g(M)(l(M)) é limitante superior para o comprimento da árvore de redução para o termo M, ou seja, h(M) ≤ 2g(M)(l(M)). Fazendo isso temos não apenas um limitante superior finito para o comprimento das seqüências de redução para um termo M, mas temos uma estimativa sobre a complexidade de h(M) definida de uma maneira bastante simples, em termos de propriedades visíveis de M (l(M) e g(M)). Se tomarmos, por exemplo, a estimativa exata de Vrijer definida em 5.2.6, temos que [M]*= h(M). Mas olhando para a definição de [M]* não temos meios de estimar, de uma maneira simples, qual é o valor de [M]*. Para saber este valor temos que seguir todos os passos da construção de M, aplicando a estimativa exata aos subtermos de M de acordo com a Definição 5.2.6. 48 O mesmo ocorre no sistema C', com as atribuições o(π) e lp(π) olhando para suas definições não temos como estimar, de uma maneira direta, quão grandes são estes números. Beckmann vai ainda mais longe. Constrói uma classe S de termos para a qual existe uma constante estritamente positiva, cS, tal que se M∈S, então h(M) ≥ 2g(M)(l(M)/ cS). Dessa forma temos: 2g(M)(l(M)/ cS) ≤ h(M) ≤ 2g(M)(l(M)). Isso mostra que, para M∈S, h(M) difere de nB(M) apenas por uma constante aplicada a l(M), e que portanto, não pode haver estimativa para a complexidade de h(M) definida sobre g(M) e l(M) que seja uma exponencial com menos iterações do que as de nB(M). Este resultado representa um aprimoramento de um resultado semelhante obtido por Schwichtenberg[1982], o qual foi construído como um caso especial de um resultado mais genérico obtido por Statman[1979]. Statman 48 Veja os Exemplos 5.2.6.2 242 demonstrou que nenhuma função elementarmente recursiva 49 pode ser limitante superior para o comprimento das árvores de redução em λ⊃. Ocorre, no entanto, que o número de Beckmann não é um ordinal natural no sentido que estamos tratando nesta tese, pois ele não possui a propriedade de diminuir com as reduções. Vejamos um contraexemplo simples: Seja M ≡ (λx.P)Q tal que: (ii) l(Q)> 1; (vi) g(N)= g(M). Portanto, por (iv), (v) e (vi) temos: M → N e nB(N)> nB(M).   (i) P possui mais de uma ocorrência livre de x; (iii) g(Q)= g(M) (ou seja, ∃R⊂Q / lv(R)= g(M)). Considere a redução: (iv) M ≡ (λx.P)Q → P[x/ Q] ≡ N. Por (i), (ii) e (iv) é claro que: (v) l(N)> l(M). Por (i), (iii) e (iv) temos: Apesar disso, Beckmann utiliza um ordinal natural para provar que nB(M) ≥ h(M). Ele define uma atribuição numérica #M e prova que, para todo termo M: (a) #M ≤ nB(M)= 2g(M)(l(M))< ω. (b) M → N ⇒ #N< #M. pois se M é λ ⊃-termo, então l(M)< ω e g(M)< ω. Assim, por (a) e (b) é fácil provar que: h(M) ≤ #M ≤ nB(M). O número de Beckmann é então obtido como uma estimativa para a complexidade da função #M, que é de fato um ordinal natural para λ⊃. É indiretamente portanto, através de #M, que o número de Beckmann estima a complexidade de h(M). O Método de Beckmann está baseado no seguinte teorema de caracterização para os termos de λ⊃, cuja prova é trivialmente obtida por indução na complexidade de M. 49 Uma função é elementarmente recursiva quando ela é uma função primitiva recursiva cujos passos da recursão são limitados por alguma exponenciação finitamente iterada. 243 5.3.6 TEOREMA: Caracterização para λ⊃-termos Se M é λ M tem uma das seguintes formas: (b) (λx.N N N (para algum 0 ≤ n ≤ ω). ⊃-termo então (a) xN1...Nn ou 0) 1... n 5.3.6.1 NOTAÇÕES: (a) Denotaremos um termo da forma MN1N2...Nn por MN. (b) M[x/ N] ≡ M[x1/ N1]...[xn/ Nn]. 5.3.7 DEFIN IÇÃO: "Head Reduction Tree" Definimos head reduction tree ρ α M, para M arbitrário, com α, ρ < ω, indutivamente, da seguinte maneira: (a) ρ α (P[x/ Q])N e ρ α Q ⇒ ρ +α 1 (λx.P)QN 〈regra-β〉; (b) ρ α M ⇒ ρ +α 1 λx.M 〈regra-β0〉; (c) ρ α Mi (para i= 1,...,n) ⇒ ρ +α n xM1...Mn 〈regra-Var〉, em particular, ρ x (para qualquer variável x e α, ρ< ω); α (d) ρ α M, ρ α N e lv(M) ≤ ρ ⇒ ρ +α 1 MN 〈regra-Cut〉; (e) ρ α M, α< α'< ω e ρ< ρ'< ω ⇒ ' ' ρ α M 〈regra estrutural〉. 5.3.7.1 OBSERVAÇÕES: (a) Cada um dos itens acima estabelece uma regra de formação da árvore para ρ α M. A regra-β, por exemplo, estabelece que a partir das árvores para ρ α (P[x/ Q])N e para ρ α Q, obtemos uma árvore para ρ +α 1 (λx.P)QN. Ou seja: ρ α (P[x/ Q])N π1 (λx.P)QN. ρ +α 1 π2 ρ α S 244 (b) Encarando a regra-Var para n> 2 como um encadeamento de aplicações de Var para n= 2, e a regra-estrutural como uma repetição de nós da árvore, um nó para cada unidade aumentada em α, é fácil ver que em ρ α M, α representa o comprimento do maior ramo da árvore para ρ α M. A seguir temos uma série de lemas com o objetivo de demonstrar que, para todo termo M, escolhendo adequadamente α e ρ (α= l(M) e ρ= g(M)-1), a árvore para ρ α M está definida. A demonstração de todos eles é feita de maneira simples, por indução no comprimento da árvore para ρ α M, utilizando apenas a Definição 5.3.7, resultados anteriores e resultados envolvendo substituição de variáveis (Seção 4.2). Apresentaremos a prova do Lema 5.3.10 abaixo, por ser um resultado importante do desenvolvimento de Beckmann que possui uma prova bastante representativa do modelo das provas do artigo. 5.3.8 LEMA da Troca de N omes Se ρ M, então, α ρ α M[x/ y]. ♦ 5.3.9 LEMA da Aplicação Se ρ M e My é λα ⊃-termos, então ρ +α 1 My. ♦ 5.3.10 LEMA da Substituição Se ρ M e α ρ β Si (para i= 1, ..., n e lv(Si) ≤ ρ), então ρ β+α M[x/ S]. PROVA: Indução no comprimento da árvore para ρ α M. A prova é feita por inspeção em todos os casos das regras de formação de ρ α M descritas em 5.3.7. Consideraremos a seguinte abreviação: PS para P[x/ S]. CASO 1: ρ α M foi obtido pela regra-β 245 Então: M ≡ (λy.P)QN e π1 ρ −α 1 (P[y/ Q])N π ρ α M ≡ ρ α (λy.P)QN. π2 ρ −α 1 Q (i) Por HI temos: ρ β+−α )1( ((P[y/ Q])N)S e ρ β+−α )1( QS. (ii) Por (i) e propriedades de substituição temos: ρ −β+α 1 (PS[y/ QS])NS e ρ −β+α 1 QS. (iii) Por (ii) e pela regra-β temos: ρ β+α (λy.PS)QSNS. Assim, por (iii) e propriedades de substituição temos: ρ β+α ((λy.P)QN)S. CASO 2: ρ α M foi obtido pela regra-β0 Então: M ≡ λy.N e π ρ α M ≡ π1 ρ −α 1 N ρ α λy.N. Assim: HI ⇒ ρ N−β+α 1 S ⇒ 0β ρ β+α λy.NS ⇒ ρ β+α (λy.N)S. CASO 3: ρ α M foi obtido pela regra-Var Então: M ≡ yN1...Nn e π1 ρ −α n N1 π ρ M ≡ M α yN1...Nn. ρ α πn ρ −α n Nn Temos dois subcasos possíveis de acordo com y: SubCaso 3.1: y ≡/ xi ∈ x Neste caso: HI ⇒ ρ −β+α n Ni S (i= 1,...,n) Var ⇒ ρ β+α yN1 S...Nn S ⇒ ρ β+α (yN1...Nn) S. SubCaso 3.2: y ≡ xj ∈ x (iv) (HI) ⇒ ρ −β+α n Ni S (i= 1,...,n). Além disso: (v) (Var) ⇒ ρ −β+α n y ≡ ρ −β+α n xj ⇒ HI ρ −β+α n xjS ≡ ρ −β+α n Sj e (lv(Sj) ≤ ρ). (vi) Por (iv), (v) e regra-Cut temos: ρ +−β+α 1 n SjN1 S. (vii) Note que se lv(Sj) ≤ ρ, pelo Lema 5.1.1.3-(b)m lv(SjN1 S) ≤ ρ. Assim, por (vi) e (vii), aplicando n vezes a regra-Cut temos: 246 ρ β+α SjN1 S...Nn S ⇒substituição ρ β+α (yN1...Nn) S. CASO 4: ρ α M foi obtido pela regra-Cut Então M ≡ N1N2 e π1 ρ −α 1 N1 π ρ M ≡ α N1N2, onde lv(N1) ≤ ρ. ρ α π2 ρ −α 1 N2 (viii) HI ⇒ ρ −α 1 N1 S e ρ −α 1 N2 S . (xix) Como lv(N1) ≤ ρ, é claro que lv(N1 S) ≤ ρ. Assim, por (viii), (xix) e pela regra-Cut temos: ρ α N1 SN2 S ⇒ ρ α (N1N2) S. ♦ O lema seguinte estabelece o importante resultado de que para todo termo M, 1)M( (M) −g l M está definido. Sua prova é simples, por indução na complexidade de M, e utiliza apenas a Definição 5.3.7 e os resultados anteriores. 5.3.11 LEMA do Encapsulamento g(M) ≤ ρ+ 1 ⇒ ρ (M) l M. ♦ Note que com exceção da regra-Cut, todas as outras regras de formação de ρ α M não levam em consideração ρ. Isso significa que se na construção de ρ α M nenhuma regra do corte foi utilizada, então existe ρ α M onde ρ= 0. O lema seguinte estabelece um método para eliminarmos as utilizações da regra-Cut na construção de ρ α M. Como corolário deste fato, provaremos que para todo termo M, escolhendo-se α adequadamente temos: 0 α M. 5.3.12 LEMA da Eliminação do Corte Se 1+ α ρ M, então, ρ α 2 M. ♦ 247 5.3.12.1 COROLÁRIO: Para todo termo M, 0 (M)) (2 1-g(M) l M. ♦ A prova do Lema 5.3.12 é obtida de maneira simples, por indução no comprimento da árvore para 1 +ρ α M. A do Corolário 5.3.12.1 é obtida trivialmente a partir dos Lemas 5.3.11 e 5.3.12. A seguir definiremos a atribuição numérica #M, que Beckmann provará ser um Ordinal Natural para λ⊃. 5.3.13 DEFIN IÇÃO: Atribuição N umérica a Termos Definimos, por indução em 0 α M, a seguinte atribuição numérica a λ⊃-termos: (i) #((λx.P)QS) = #((P[x/ Q])S) + 1 + #S; (ii) #((λx.P) = #P+ 1; (iii) #(xN1...Nn)= . ∑ = n 1i iN# 5.3.13.1 OBSERVAÇÃO: Note, pelos três itens da definição acima e pela Definição 5.3.7, que #M está definido para todo M tal que 0 α M está definida, pois os três casos da definição de #M representam os três itens da definição de ρ α M que não dependem de ρ. Como provamos em 5.3.12.1 que para todo M, temos, escolhendo um α adequado, 0 α M, então #M está definido para todo λ⊃-termo M. A seguir apresentamos um lema técnico com propriedades de #M. Sua demonstração é simples e também obtida por indução no comprimento da árvore para 0 α M. 5.3.14 LEMA Técnico (a) #M = #M[x/ y]. (b) #My ≥ #M. ♦ 248 O teorema seguinte relaciona a atribuição #M com o α de 0 α M. Tal relação é obtida diretamente a partir da definição de #M e das regras de formação de ρ α M que não dependem de ρ. Como corolário imediato deste teorema temos que o número de Beckmann para o termo M é maior que #M, ou seja, (nB(M) ≥ #M). 5.3.15 TEOREMA da Estimativa Se 0 M, então #M ≤ 2 α α. ♦ 5.3.15.1 COROLÁRIO: #M ≤ 2g(M)(l(M)). ♦ A prova do corolário acima é obtida imediatamente através do Corolário 5.3.12.1 e do Teorema 5.3.15. O Corolário acima não apenas garante que a atribuição #M é finita, como apresenta uma estimativa para seu valor, em termos de g(M) e l(M). Para que o número de Beckmann seja uma estimativa para o comprimento da árvore de redução para M (h(M)), precisamos do resultado fundamental abaixo, que garante que a atribuição #M diminui com as reduções. Este resultado, juntamente com o corolário acima, garante que #M é ordinal natural para λ⊃, e que portanto, h(M) ≤ #M. 5.3.16 TEOREMA Principal Se M → N, então #N< #M. ♦ 5.3.16.1 COROLÁRIO: h(M) ≤ #M ≤ 2g(M)(l(M))= nB(M). ♦ A prova do Teorema 5.3.16 é obtida por indução em #M, inspecionando os três casos da Definição 5.3.13, utilizando apenas os resultados do Lema Técnico 5.3.14 e resultados envolvendo substituição de variáveis (Seção 4.2). A prova do Corolário 5.3.16.1 é obtida diretamente a partir do Teorema 5.3.16 e Corolário 5.3.15.1. 249 5.3.17 COMEN TÁRIO: Igualdade entre #M e { M} É fácil ver, sob a luz do Teorema 5.3.6, de caracterização para os λ⊃-termos, que o ordinal natural de Beckmann, definido em 5.3.13 coincide com a estimativa frouxa de Vrijer, definida aqui em 5.2.5. Apesar de tal coincidência, também nos parece claro, devido às diferenças nas definições, que os dois resultados foram obtidos independentemente. Devido ao Teorema de Caracterização 5.3.6, Beckmann evita a análise do complicado caso M ≡ M0M1 e, portanto, seu ordinal possui uma definição mais simples que o de Vrijer. No entanto, considerando que Vrijer provou, de fato, que {M} é ordinal natural para um λ⊃termo M qualquer, podemos dizer que a grande contribuição de Beckmann foi apresentar uma estimativa, definida de uma maneira bastante simples, para a complexidade de uma atribuição que é ordinal natural para λ⊃, e além disso provar que sua estimativa é a melhor possível definida nas variáveis que ela utiliza (l(M) e g(M)). 50 50 O artigo de Beckmann que utilizamos nesta análise ainda não foi publicado. Foi submetido ao JSL em 98, mas pelo menos até o momento em que escrevemos esta tese, não tínhamos notícia se foi aceito. Utilizamos uma versão preliminar que nos foi entregue em mãos no encontro europeu da ASL 98 pelo próprio autor, na qual muitos dos pontos que esclarecemos aqui estão ainda obscuros. Vale ressaltar também que, ao que parece, nem Schwichtenberg nem Beckmann conheciam o artigo Vrijer[1987]. O ordinal natural utilizado por Schwichtenberg[1991] foi obtido a partir de Gandy[1980], e o de Beckmann[1998], apesar de coincidir com a estimativa frouxa de Vrijer, foi obtido de uma maneira bastante diferente. Além do que, nenhum dos dois autores cita Vrijer[1987]. 250 Capítulo VI Normalização Forte para λ⊃ via Ordinal Natural Neste capítulo apresentaremos o desenvolvimento completo do nosso método para o sistema de cálculo lambda tipificado λ⊃. Tal desenvolvimento, apesar de acompanhar o que fizemos nos Capítulos II e III para o sistema C', não representa, entretanto, uma tradução direta desses resultados para λ⊃ através da noção de fórmulas como tipos. Como vimos no Capítulo IV, o sistema λ⊃ é isomorfo a C⊃, o fragmento implicativo do sistema C, que é mais simples que C'. A apresentação destes resultados ocupará as três primeiras seções do capítulo. Na primeira delas demonstraremos que, assumindo a finitude do comprimento da pior seqüência de redução para todo termo M, 51 então este comprimento representa um ordinal natural para λ⊃. Na segunda seção, definimos a atribuição numérica o(M), que mostramos ser única e finita para todo termo M. Na terceira seção provamos que o(M) corresponde ao comprimento da pior seqüência de redução do termo M, que portanto é finita. Utilizando então o resultado da Seção 1, provamos que o(M) é ordinal natural para λ⊃. Como conseqüência destes resultados, ainda na Seção 3 obtemos provas simples para os Teoremas de Normalização Forte e Church-Rosser em λ⊃. Na quarta e última seção apresentamos uma análise comparativa entre os nossos resultados e os artigos estudados no Capítulo V. Sobre o conteúdo do capítulo gostaríamos de dizer que apesar de várias das demonstrações dos resultados que introduzimos não serem difíceis, optamos por apresentálas todas no texto, para reforçar o argumento de que o nosso método, adequado para o sistema λ⊃, é distinto dos métodos utilizados pelos autores discutidos no capítulo anterior. §1 O Comprimento da Pior Seqüência, se Finito, Diminui com as Reduções Este primeiro lema é um resultado auxiliar que estabelece como é o left-most redex de um termo N obtido de C[(λx.P)Q] ≡ M →∆ N, onde (λx.P)Q é o left-most redex em M e ∆ ≡/ (λx.P)Q. 51 A seqüência definida a partir da estratégia perpétua em 4.4.5.1-(c). 253 6.1.1 LEMA: Seja M ≡ C[(λx.P)Q], onde ((λx.P)Q) é o left-most redex em M. Se M →∆ M', tal que ∆ ≡/ (λx.P)Q então: (a) (∆ ⊂ P) e (P → P') ⇒ M' ≡ C[(λx.P')Q], onde: ∆ (λx.P')Q é o left-most redex de M'. (b) (∆ ⊂ Q) e (Q →∆ Q') ⇒ M' ≡ C[(λx.P)Q'], onde: (λx.P)Q' é o left-most redex de M'. (c) (∆ ⊂ C[ ]) ⇒ (C[ ] →∆ C'[ ]) e M' ≡ C'[(λx.P)Q]α onde: (λx.P)Q é o left-most redex de M'. (d) (∆ ⊂ C[ ]A) ⇒ C[N] →∆ C'[N] ∀N∈ΛA. PROVA: Item (a): Hip: (∆ ⊂ P) e (P →∆ P') P →∆ P' (λx.P)Q → 4.3.1 ⇒ ∆ (λx.P')Q. Assim, é claro que M ≡ C[(λx.P)Q] →∆ C[(λx.P')Q] ≡ M'. Além disso, como (λx.P')Q é um redex e C[ ] não se alterou com a redução de ∆, é claro que (λx.P')Q é o left-most redex de C[(λx.P')Q] ≡ M'.   Item (b): Hip: (∆ ⊂ Q) e (Q →∆ Q'). Análogo ao Item (a).   Item (c): Hip: (∆ ⊂ C[ ]). Como ∆ ⊂ C[ ] e (λx.P)Q é o left-most redex de C[(λx.P)Q], então ∆ não pode ocorrer à esquerda do buraco [ ] em C[ ]. Logo, C[ ] é do tipo: C[ ] ≡ C1[ ]N, onde ∆⊂N. Então, pelo Comentário 4.3.5.1-(d) temos que: C[ ] ≡ C1[ ]N →∆ C1[ ]N' ≡ C'[ ] Portanto temos: M ≡ C[(λx.P)Q] ≡ C1[(λx.P)Q]N →∆ C1[(λx.P)Q]N' ≡ C'[(λx.P)Q] ≡ N' Além disso, como a única diferença entre C[(λx.P)Q] e C'[(λx.P)Q] é o subtermo N, que ocorre à direita de (λx.P)Q, temos que (λx.P)Q é o left-most redex de C'[(λx.P)Q].   254 Item(d): Hip: (∆ ⊂ C[ ]A). Pelo Item (c) temos que C[ ]A →∆ C'[ ]A. Logo, pelo Lema 4.3.7 é imediato que ∀N∈ΛA temos: C[N] →∆ C'[N]. ♦ O teorema seguinte é a contrapartida em cálculo lambda tipificado do resultado de Massi[1990] sobre a pior seqüência de redução. Ele estabelece que na hipótese do comprimento da estratégia perpétua para qualquer termo M ser finito (∀M (LF∞(M)< ω)), então LF∞(M) diminui com as reduções e, além disso, estabelece que para qualquer M' tal que M → M', existe um termo N tal que tanto M quanto M' se reduzem através da estratégia perpétua a N: M →p R N e M' → p R N. O primeiro resultado é uma parte da prova de que LF∞(M) é ordinal natural, e o segundo será utilizado na prova do Teorema de Church-Rosser sobre a unicidade da forma normal. Apesar de longa, a prova do teorema seguinte é simples. É obtida por indução em LF∞(M), que estamos assumindo ser finito, e por inspeção em todas as possibilidades para M° e para a redução M → M'. Constitui de fato uma aplicação para o sistema λ⊃ do método de prova desenvolvido por Massi para o sistema C'. 6.1.2 TEOREMA: Se para todo termo M, LF∞(M)< ω, então: (1) M → M' ⇒ LF∞(M)> LF∞(M'). (2) M → M' ⇒ ∃m,n < ω / M'°m ≡ M°n. PROVA: Provaremos os Itens (1) e (2) simultaneamente por indução em LF∞(M). BASE: LF∞(M) = 1 Neste caso, M é normal e o teorema é válido por vacuidade. PASSO: LF∞(M) > 1. HI: ∀N tal que LF∞(N) < LF∞(M), temos: N → N' ⇒ (a) LF∞(N) > LF∞(N'); (b) ∃k,j< ω / N°k ≡ N'°j. Como por hipótese LF∞(M)< ω é claro que: (i) LF∞(M) = LF∞(M°)+ 1. Por (i) temos que LF∞(M°) < LF∞(M). Logo, vale HI em M°. Portanto: 255 (ii) M° → N ⇒ LF∞(M°) > LF∞(N). (iii) M° → N ⇒ ∃j,k< ω / N°j ≡ (M°)°k. (•) Seja M ≡ C[(λx.P)Q] tal que (λx.P)Q é o left-most redex de M. Dividiremos a prova em casos, conforme os casos da definição de F∞ para M. CASO 1: (λx.P)Q é um I-redex Pela Definição 4.4.5 de F∞ temos: (iv) F∞(M) ≡ M° ≡ C[P[x/ Q]]. Seja M →∆ M'. Temos que todas as possibilidades para ∆ são: ∆⊂P, ou ∆⊂Q, ou ∆⊂C[ ], ou ∆ ≡ (λx.P)Q. Analisemos cada um destes casos. SubCaso 1.1: ∆ ⊂ C[ ] Neste caso, pela forma de M em (•) e pelo Lema 6.1.1-(c) temos: M' ≡ C'[(λx.P)Q], onde (λx.P)Q é o left-most redex de M'. (v) Então, pela Definição 4.4.5 de Fα temos: M'° ≡ C'[P[x/ Q]]. Mas, pelo Lema 6.1.1-(d) temos: M° ≡ C[P[x/ Q]] →∆ C'[P[x/ Q]] M'°. Ou seja: )v(≡ (vi) M° → M'°. Assim, por (ii) e (vi) temos: (vii) LF∞(M°) > LF∞(M'°). Então: LF∞(M) = L( )i F∞(M°)+ 1 L)vii(> F∞(M'°)+ 1 = L( )i F∞(M'), o que resolve o Item (1). Além disso, por (iii) e (vi) temos: ∃j,k< ω tais que: (M'°)°j ≡ (M°)°k. Logo, pela Observação 4.4.5.1-(d) temos que M'°j+1 ≡ M°k+1, o que resolve o Item (2). SubCaso 1.2: ∆ ⊂ Q (Seja Q →∆ Q') Neste caso, pela forma de M em (•) e pelo Lema 6.1.1-(b) temos: M' ≡ C[(λx.P)Q'], onde (λx.P)Q' é o left-most redex de M'. (viii) Então, pela Definição 4.4.5 de F∞ temos: M'° ≡ C[P[x/ Q']]. Como, por hipótese do Caso 1, (λx.P)Q é um I-redex, então: (ix) x ocorre livre em P. Logo, como Q →∆ Q', por (ix) e pelo Lema 4.3.4-(a) temos: (x) P[x/ Q] → P[x/ Q']. Logo, por (x) e pelo Corolário 4.3.9.1: 256 M° ≡ C[P[x/ Q]] → C[P[x/ Q']] M'°. Ou seja: )viii( ≡ (xi) M° → M'°. Portanto existe uma redução não vazia: (xii) M° ≡ N1 → N2 → N3 →...→ Nn ≡ M'°. Por (xii), (ii) e aplicando n-1 vezes HI, temos: (xiii) LF∞(M°)= LF∞(N1)> LF∞( N2) > ...> LF∞(Nn)= LF∞(M'°) Então: LF∞(M) = L( )i F∞(M°)+ 1 L)xiii( > F∞(M'°)+ 1 = LF∞(M'), o que resolve o Item (1). ( )i Além disso, por (xiii) e (iii), aplicando n-1 vezes HI, temos que existem k1,..., kn< ω tais que: (M'°)°kn ≡ (Nn)°kn ≡ (Nn-1)°kn-1 ≡ (Nn-2)°kn-2 ≡...≡ (N2)°k2 ≡ (N1)°k1 ≡ (M°)°k1. Logo, tomando j= kn+ 1 e k= k1+ 1, pela Observação 4.4.5.1-(d) temos: M'°j ≡ M°k, o que resolve o Item (2). SubCaso 1.3: ∆ ⊂ P (Seja P →∆ P') Neste caso, pela forma de M em (•) e pelo Lema 6.1.1-(a) temos: (••) M' ≡ C[(λx.P')Q], onde (λx.P')Q é o left-most redex de M'. Temos dois subcasos para definir a forma de M'°: (1) (λx.P')Q é um I-redex; (2) (λx.P')Q é um K-redex. SubCaso 1.3.1: (λx.P')Q é um I-redex Então, pela forma de M' em (••) e pela Definição 4.4.5 de F∞ temos: (xiv) M'° ≡ C[P'[x/ Q]]. Como, por hipótese do Caso 1, (λx.P)Q é um I-redex, então x ocorre livre em P. Além disso, temos que P →∆ P'. Logo, pelo Lema 4.3.4-(b) temos: (xv) P[x/ Q] → P'[x/ Q]. Logo, por (xv) e pelo Corolário 4.3.9.1: M° ≡ C[P[x/ Q]] → C[P'[x/ Q]] M'°. )xiv( ≡ Ou seja: M° → M'°, e portanto o resultado segue como no Caso 1.1.2. SubCaso 1.3.2: (λx.P')Q é um K-redex Temos aqui mais dois subcasos para definir o tipo de M'°: (1) Q está na forma normal; (2) Q não está na forma normal. 257 SubCaso 1.3.2.1: Q está na forma normal Então, pela forma de M' em (••) e pela Definição 4.4.5 de F∞ temos: (xvi) M'° ≡ C[P']. Por hipótese do Caso 1, (λx.P)Q é um I-redex, então x ocorre livre em P. Além disso, temos que P →∆ P'. Logo, pelo Lema 4.3.4-(b) temos: (xvii) P[x/ Q] → P'[x/ Q]. Mas como (λx.P')Q é um K-redex, então x não ocorre livre em P'. Logo: (xviii) P'[x/ Q] ≡ P'. (xix) Assim, por (xvii) e (xviii) temos: P[x/ Q] → P'. Então por (xix) e pelo Corolário 4.3.9.1 temos: M° ≡ C[P[x/ Q]] → C[P'] M'°. )xvi( ≡ Ou seja: M° → M'°, e portanto o resultado segue como no Caso 1.1.2. SubCaso 1.3.2.2: Q não está na forma normal Então, pela forma de M' em (••) e pela Definição 4.4.5 de F∞ temos: (xx) M'° ≡ C[(λx.P')Q°]. Se P → P' tal que (λx.P)Q é um I-redex e (λx.P')Q é um K-redex, como é o caso, então a redução P → P' eliminou de P o subtermo que continha todas as ocorrências livres de x. Temos então a seguinte situação: (*) P ≡ C1[(λx.P1)Q1] → C1[P1] ≡ P' , onde toda ocorrência livre de x em P ocorre em Q1. Note que (λx.P1)Q1 é um K-redex e P' não possui mais ocorrência livre de x. Assumindo P ≡ C1[(λx.P1)Q1] e P' ≡ C1[P1] como descritos acima, vamos rescrever os termos de que estamos tratando nesta prova. (xxi) M ≡ C[(λx.P)Q] ≡ C[(λx.C1[(λx.P1)Q1])Q]. (xxii) M° ≡ C[P[x/ Q]] ≡ C[C1[(λx.P1)Q1][x/ Q]] C[C 1Q em livre ocorre só x ≡ 1[(λx.P1)Q1[x/ Q]]]. (xxiii) M' ≡ C[(λx.P')Q] ≡ C[(λx.C1[P1])Q]. (xxiv) M'° ≡ C[(λx.P')Q°] ≡ C[(λx.C1[P1])Q°]. Note por (xxiv) e pela Definição 4.4.5 de F∞ que: M'°2 ≡ C[(λx.C1[P1])Q°2], se Q° não for normal. Em geral, M'°n ≡ C[(λx.C1[P1])Q° n] se Q°(n-1) não for normal. Se Q°n for normal então, pela Definição 4.4.5 temos: 258 (xxv) M'°(n+1) ≡ C[C1[P1]]. Dessa forma, o path da estratégia perpétua de M' é: M' C[(λx.C )xxiii( ≡ 1[P1])Q] → p C[(λx.C1[P1])Q°1] → p ...→p C[(λx.C1[P1])Q°n] → p C[C1[P1]] → p ..., onde Q°n é normal. Ou seja, LF∞(Q)= n e os LF∞(Q) primeiros termos da redução de M' pela estratégia perpétua realizam a normalização de Q, e o que sobra disso é C[C1[P1]]. (xxvi) Então temos: LF∞(M') = LF∞(Q)+ LF∞(C[C1[P1]]). (xxvii) Mas: LF∞(M) = L( )i F∞(M°)+ 1 L)xxii( = F∞(C[C1[(λx.P1)Q1[x/ Q]]])+ 1. (xxviii) Então, por (xxvi) e (xxvii), para provarmos que LF∞(M) > LF∞(M'), é suficiente provarmos que LF∞(C[C1[(λx.P1)Q1[x/ Q]]]) ≥ LF∞(Q)+ LF∞(C[C1[P1]]), o que faremos agora. (xxix) Seja Q →p Q° →p ...→p Q°n o path da redução de Q por F∞ (Note que Q°n é normal). Como x∈ FV (Q1), por (xxix), pelos Lemas 4.3.3-(a) e 4.3.4-(a) temos: (xxx) (λx.P1)Q1[x/ Q] → (λx.P1)Q1[x/ Q°] → ...→ (λx.P1)Q1[x/ Q°n]. Por (xxx) e pelo Corolário 4.3.9.1 temos: (xxxi) C[C1[(λx.P1)Q1[x/ Q]]] → ...→ C[C1[(λx.P1)Q1[x/ Q°n]]]. Esquematicamente temos: Q C[C1[(λx.P1)Q1[x/ Q]]] ≡ M° LF∞(M°) ↓ ↓↓ ⇒ ∨ ⇒( )xxx e (xxxi) HI Q° C[C1[(λx.P1)Q1[x/ Q°]]] ≡ (M°)' LF∞((M°)') ↓ ↓↓ ⇒ ∨ ⇒( )xxx e (xxxi) HI Q°2 C[C1[(λx.P1)Q1[x/ Q°2]]] ≡ (M°)'2 LF∞((M°)' 2) ↓ ↓↓ ∨ M ⇒ M M ⇒ ( )xxx e (xxxi) HI ↓ ↓↓ ∨ Q°n C[C1[(λx.P1)Q1[x/ Q°n]]] ≡ (M°)'n LF∞((M°)' n) ↓↓ ⇒ ∨ HI C[C1[P1]] LF∞(C[C1[P1]]) 259 Temos então a seguinte situação: LF∞(M°)(1)> LF∞((M°)')(2)> LF∞((M°)' 2)(3)> ...> LF∞((M°)' n)(LF∞(Q))> LF∞(C[C1[P1]])(LF∞(Q)+1). Pela atribuição de índices acima, podemos notar que esta cadeia estritamente ordenada tem LF∞(Q)+ 1 termos, onde o primeiro é LF∞(M°) e o último é LF∞(C[C1[P1]]). Portanto: LF∞(M°) = LF∞(Q) + LF∞(C[C1[P1]]). Logo LF∞(C[C1[(λx.P1)Q1[x/ Q]]]) L)xxii( = F∞(M°) ≥ LF∞(Q)+ LF∞(C[C1[P1]]). Com isso provamos (xxviii) e portanto, por (xxvi) e (xxvii), temos que: LF∞(M)> LF∞(M'), o que resolve o Item (1). Além disso, por (xxii) e (xxv) temos que: (xxxii) M° → M'°(n+1). Portanto, por (iii) e (xxxii) temos que: ∃j,k< ω tais que: (M'°(n+1))°j ≡ (M°)°k. Portanto, M'°(n+j+1) ≡ M°k+1 o que resolve o Item (2). SubCaso 1.4: ∆ ≡ (λx.P)Q Neste caso, como (λx.P)Q é um I-redex, pela forma de M em (•): M' ≡ C[P[x/ Q]]. Note que por (iv) temos M' ≡ M°. Portanto, por (i) temos: LF∞(M)> LF∞(M'), o que resolve o Item (1), e M'°0 ≡ M°0, o que resolve o Item (2). Com isso esgotamos todos os casos possíveis para M → M' e portanto terminamos o Caso 1. Caso 2: (λx.P)Q é um K-redex Segundo a Definição 4.4.5 temos aqui dois subcasos para definir a forma de M°: (1) Q está na forma normal; (2) Q não está na forma normal. SubCaso 2.1: Q está na forma normal Então, pela forma de M em (•) e pela Definição 4.4.5 de F∞ temos: (xxxiii) F∞(M) ≡ M° ≡ C[P]. Seja M →∆ M'. Como Q é normal, temos ∆⊂P, ou ∆⊂C[ ], ou ∆ ≡ (λx.P)Q. Analisemos cada um destes casos: SubCaso 2.1.1: ∆ ⊂ C[ ] Neste caso, pela forma de M em (•) e pelo Lema 6.1.1-(c) temos: M' ≡ C'[(λx.P)Q], onde (λx.P)Q é o left-most redex de M'. 260 (xxxiv) Então, como Q é normal, pela Definição 4.4.5 de F∞ temos: M'° ≡ C'[P]. Mas, pelo Lema 6.1.1-(d) temos: (xxxv) M° C[P] → )xxxiii( ≡ ∆ C'[P] M'°. )xxxiv( ≡ Ou seja: M° → M'°. Logo o resultado segue como no Caso 1.1.1. SubCaso 2.1.2: ∆ ⊂ P (Seja P →∆ P') Neste caso, pela forma de M em (•) e pelo Lema 6.1.1-(a) temos: M' ≡ C[(λx.P')Q], onde P → P'. (xxxvi) Então, como Q é normal, pela Definição 4.4.5 de F∞ temos: M'° ≡ C[P']. (xxxvii) Como P → P', então temos: M° C[P] C[P'] M'°. )xxxiii( ≡ 4.3.9 → ≡ ( )xxxvi Ou seja: M° → M'°. Logo o resultado segue como no Caso 1.1.1. SubCaso 2.1.3: ∆ ≡ (λx.P)Q Neste caso, pela forma de M em (•) e pelo Lema 6.1.1-(a) temos: M' ≡ C[P]. Note que por (xxxiii) temos M' ≡ M°. Portanto, por (i): LF∞(M)> LF∞(M'). Além disso, é claro que M'0 ≡ M°0. Portanto os Itens (1) e (2) estão resolvidos. Note que, como Q é normal, esgotamos todas as reduções possíveis para M e portanto terminamos o Subcaso 2.1. SubCaso 2.2: Q não está na forma normal Então, pela forma de M em (•), como (λx.P)Q é um K-redex, pela Definição 4.4.5 de F∞ temos: (xxxviii) F∞(M) ≡ M° ≡ C[(λx.P)Q°]. Seja M →∆ M'. Temos: ∆⊂P, ou ∆⊂Q, ou ∆⊂C[ ], ou ∆ ≡ (λx.P)Q. Analisemos cada um destes casos: SubCaso 2.2.1: ∆ ⊂ C[ ] Neste caso, pela forma de M em (•) e pelo Lema 6.1.1-(c) temos: M' ≡ C'[(λx.P)Q], onde (λx.P)Q é o left-most redex de M'. (xxxix) Então, pela Definição 4.4.5 de Fα temos: M'° ≡ C'[(λx.P)Q°]. Mas, pelo Lema 6.1.1-(d) temos: (xl) M° C[(λx.P)Q°] →≡ ( )xxxviii ∆ C'[(λx.P)Q°] M'°. ≡ (xxxix) Ou seja: M° → M'°. Logo o resultado segue como no Caso 1.1.1. SubCaso 2.2.2: ∆ ⊂ P (Seja P →∆ P') Neste caso, pela forma de M em (•) e pelo Lema 6.1.1-(a) temos: 261 M' ≡ C[(λx.P')Q], onde (λx.P')Q é o left-most redex de M'. (xli) Então, pela Definição 4.4.5 de F∞ temos: M'° ≡ C[(λx.P')Q°]. Como P →∆ P', pela Definição 4.3.1 temos: (xlii) (λx.P)Q° →∆ (λx.P')Q°. Por (xlii) e pelo Teorema 4.3.9 temos: M° C[(λx.P)Q°] → C[(λx.P')Q°] M'°. ≡ ( )xxxviii ≡ ( )xli Ou seja: M° → M'°. Logo o resultado segue como no Caso 1.1.1. SubCaso 2.2.3: ∆ ⊂ Q (Seja Q →∆ Q') Neste caso, pelo Lema 6.1.1-(b) temos: M' ≡ C[(λx.P)Q'], onde (λx.P)Q' é o left-most redex de M'. Temos aqui dois subcasos possíveis para o tipo de Q': (1) Q' ≡ Q°; (2) Q' ≡/ Q°. SubCaso 2.2.3.1: Q' ≡ Q° Então, pela forma de M em (•) temos: M' ≡ C[(λx.P)Q°]. Note, por (xxxviii) que M' ≡ M°. Portanto, por (i) temos: LF∞(M)> LF∞(M'). Além disso, é claro que M'0 ≡ M°0. Portanto os Itens (1) e (2) estão resolvidos. SubCaso 2.2.3.2: Q' ≡/ Q° Mais uma vez temos dois subcasos para analisar: (1) Q' está na forma normal; (2) Q' não está na forma normal. SubCaso 2.2.3.2.1: Q' está na forma normal (xliii) Então, pela forma de M em (•), pela Definição 4.4.5 de F∞ temos: M'° ≡ C[P]. Efetuando a left-most redução em M° temos: M° C[(λx.P)Q°] → C[P] M'°. )xxxviii( ≡ )xliii( ≡ Ou seja: M° → M'°. Logo o resultado segue como no Caso 1.1.1. SubCaso 2.2.3.2.2: Q' não está na forma normal Note que, como em todo o Caso 2 (λx.P)Q é um K-redex, pela Definição 4.4.5 de F∞ temos: M°2 ≡ C[(λx.P)Q°2], se Q° não for normal. Em geral, M°n ≡ M ≡ C[(λx.P)Q° n vezes ooKo 6 74 84 n] se Q°(n-1) não for normal. Se Q°n for normal então: 262 (xliv) M°(n+1) ≡ C[P]. Então, o path da estratégia perpétua de M é: M ≡ C[(λx.P)Q] →p ...→p C[(λx.P)Q°n] →p C[P] →p ..., onde Q°n é normal. Ou seja, os LF∞(Q) primeiros termos da redução de M pela estratégia perpétua realizam a normalização de Q, e o que sobra disso é C[P]. (xlv) Então temos: LF∞(M) = LF∞(Q)+ LF∞(C[P]). Logo, por (xlv), como para todo termo N, LF∞(N) ≥ 1, temos: (xlvi) LF∞(M)> LF∞(Q). Como, por hipótese do caso 2.2.3 temos M' ≡ C[(λx.P)Q'], onde (λx.P)Q' é o leftmost redex de M', fazendo com M' o raciocínio análogo ao feito anteriormente com M temos: (xlvii) M'°(m+1) ≡ C[P] , onde m= LF∞(Q'). (xlviii) LF∞(M') = LF∞(Q')+ LF∞(C[P]). Portanto, por (xlv) e (xlviii) temos: (xlix) LF∞(M)> LF∞(M') ⇔ LF∞(Q)> LF∞(Q'). Mas, por (xlv) vale HI em Q, portanto, para todo Q' tal que Q → Q' temos LF∞(Q)> LF∞(Q'). Logo, por (xlix), LF∞(M)> LF∞(M'), o que resolve o Item (1). Além disso, por (xliv) e (xlvii) temos: M'°(m+1) ≡ M°(n+1), o que resolve o Item (2). SubCaso 2.2.4: ∆ ≡ (λx.P)Q (l) Neste caso, como (λx.P)Q é K-redex, pela forma de M em (•) temos: M' ≡ C[P]. Efetuando a left-most redução em M° temos: M° C[(λx.P)Q°] → C[P] M'. Ou seja: ≡ ( )xxxviii )l( ≡ (li) M° → M'. Logo, por (li) e por (ii) temos: (lii) LF∞(M°) > LF∞(M'). (liii) Mas, por (i) temos que: LF∞(M)> LF∞(M°). Logo, por (lii) e (liii) temos que: LF∞(M)> LF∞(M'), o que resolve o Item (1). Além disso, por (li) e (iii) temos que ∃j,k< ω tais que: M'°j ≡ (M°)°k, e portanto, pela Observação 4.4.5.1-(d), M'°j ≡ M°k+1, o que resolve o Item (2). Com isso, terminamos todos os casos possíveis para as reduções de M quando ele é um K-redex, terminando assim o Caso 2 e a prova do teorema.♦ 263 Com o resultado do teorema acima, basta provarmos que LF∞(M)< ω para todo M para termos que LF∞(M) é ordinal natural para os termos de λ⊃. É isso o que faremos nas duas seções seguintes deste capítulo através da definição da atribuição o(M). A Seção 2 corresponde à contrapartida em λ⊃ dos resultados do Capítulo II desta tese, e a Seção 3 aos resultados do Capítulo III. §2 Finitude e U nicidade de o(M). O objetivo desta seção é definir a atribuição numérica o(M) e provar que é única e finita para todo termo M. Na seção seguinte provaremos que o(M)= LF∞(M) para todo termo M e portanto obteremos a partir do Teorema 6.1.2 acima que o(M)= LF∞(M) é ordinal natural para λ⊃. Vamos inicialmente redefinir para o caso de λ⊃ todos os conceitos fundamentais que utilizamos em nossa prova para C'. Dispensaremos aqui as explicações intuitivas sobre o método de prova que fizemos no Capítulo II. 6.2.1 DEFIN IÇÃO: Comprimento de um Tipo - lτ( ) Definimos o comprimento de um tipo A , e denotamos por lτ(A ), como o número de ocorrências de tipos básicos em A . Mais formalmente: (i) A= o ⇒ lτ(A )= 1; (ii) A= B⊃C ⇒ lτ(A )= lτ(B)+ lτ(C). Se M∈ΛA (M é termo do tipo A ), denotamos: lτ(M)= df lτ(A ). 6.2.2 DEFIN IÇÃO: Segmento-α N ⊂ M é um segmento-α de M, se N tem a seguinte forma: N ≡ (λx1.λx2...λxn.P)Q1Q2...Qn. 6.2.2.1 OBSERVAÇÃO: Como ocorre em C', a definição de segmento-α identifica os subtermos de um termo que têm a possibilidade de formarem um novo redex cada vez que uma certa redução é 264 efetuada. Note que a expressão de N acima possui apenas 1 redex explícito ((λx1.λx2...λxn.P)Q1), cuja redução cria um novo redex, cuja redução, por sua vez, cria um terceiro redex, e assim n vezes. Veja: (λx1.λx2...λxn.P)Q1Q2...Qn ((λx1.λx2...λxn.P)Q1 é o redex explicito) ↓ (λx2...λxn.P[x1/ Q1])Q2...Qn ((λx2.λx2...λxn.P[x1/ Q1])Q2 é o redex) ↓ M ↓ P[x1/ Q1][x2/ Q2]...[xn/ Qn]. 6.2.3 DEFIN IÇÃO: Subtermo Pesado (SP) Cada um dos Qis em um segmento-α ((λx1.λx2...λxn.P)Q1Q2...Qn) ⊂ M é um subtermo pesado (SP) de M. 6.2.3.1 OBSERVAÇÃO: Considere o segmento-α (λx1.λx2...λxn.P)Q1Q2...Qn ⊂ M. Definimos o λ de um subtermo pesado Qi (1 ≤ i ≤ n) como sendo o símbolo "λ" de λxi em M. 6.2.4 DEFIN IÇÃO: Subtermo Multiplicativo (SM) Considere o segmento-α (λx1.λx2...λxn.P)Q1Q2...Qn ⊂ M. Dizemos que Qi (1 ≤ i ≤ n) é subtermo multiplicativo (SM) em M se xi ∈ FV (P). 6.2.5 DEFIN IÇÃO: Grau de um Subtermo Pesado - (grM(Qk)) Seja (λx1.λx2...λxn.P)Q1Q2...Qn ⊂ M. O grau em M de um subtermo pesado Qk (1 ≤ k ≤ n) (denotado por grM(Qk)) é definido como o comprimento do tipo de λxk...λxn.P. Ou seja: grM(Qk)= lτ(λxk...λxn.P). 6.2.6 DEFIN IÇÃO: Grau Máximo Multiplicativo de um termo M - (g(M)) O grau máximo de um termo M, denotado por g(M), é o valor máximo dos graus dos subtermos multiplicativos de M. Ou seja: 265 g(M) = max{grM(Q) / Q é SM em M}. 52 6.2.7 DEFIN IÇÃO: N umero Máximo de um termo M (ng(M)) Definimos o número máximo de um termo M, ng(M), como a quantidade total de SMs em M com grau igual a g(M). 6.2.8 DEFIN IÇÃO: Multiplicação Estrela Considere M ≡ C[(λx1...λxi...λxn.P)Q1...Qi...Qn], tal que Qi é SM em M. Definimos a multiplicação estrela de Qi como a operação que transforma M em: M# ≡ C[(λx1...λxi...λxn.P[xi/ Qi])Q1...Qi-1 yi Qi+1...Qn], onde yi é variável nova. 6.2.8.1 NOTAÇÕES: (a) Quando M# é obtido de M através de uma multiplicação-* denotamos: M →* M#. (b) Quando M ≡ M1 →* M2 →* ...→* Mm e 1< m< ω, denotamos: M →* Mm. 6.2.8.2 COMENTÁRIO: Considere M ≡ C[(λx.P)Q] tal que x ocorre livre em P. Pelas Definições 6.2.2 e 6.2.4 temos que (λx.P)Q é segmento-α e Q é SM em M. Se efetuarmos a multiplicação estrela de Q obtemos: (i) M ≡ C[(λx.P)Q] →* C[(λx.P[x/ Q])y] ≡ M#, onde y é variável nova. Já a redução de (λx.P)Q em M produz: (ii) M ≡ C[(λx.P)Q] → C[P[x/ Q]] ≡ M'. Se prestarmos atenção em (i) e (ii) vemos que a multiplicação-* em (i) efetuou exatamente as multiplicações de Q em P que a redução em (ii). Além disso, o redex que existia em M continua existindo em M#, sendo que a sua redução recupera a forma de M' obtido pela redução direta. Veja: 52 Esta noção de grau é distinta da que apresentamos em 5.3.2, introduzida por Beckmann. Na nossa definição acima, g(M) se refere ao comprimento máximo dos subtermos multiplicativos de M. Na definição de Beckmann, g(M) se refere ao comprimento do encadeamento máximo de símbolos "⊃" nos tipos dos subtermos de M. 266 (iii) M# ≡ C[(λx.P[x/ Q])y] → C[P[x/ Q]] ≡ M'. y é variável nova ⇒ (λx.P[x/ Q])y é K-redex. Ou seja, a definição de multiplicação-* efetua aqui o mesmo papel que em C', isto é, provoca todos os "aumentos" que uma redução poderia fazer, sem no entanto eliminar o redex cuja redução produziria estes "aumentos". 6.2.9 DEFIN IÇÃO: Subtermo Estrela - T(M) Seja M ≡ C[Q] um termo de λ⊃. Dizemos que Q é o subtermo estrela de M, e denotamos por Q= T (M), se Q for o SM em M de máximo grau cujo λ ocorre mais à direita em M. 6.2.9.1 OBSERVAÇÕES: (a) Como para cada termo M só pode existir um subtermo multiplicativo de máximo grau cujo λ ocorre mais à direita em M, é claro que para cada termo não normal M T (M) é único. (b) Se R ≠T (M) é SM em M, é imediato pela definição acima que: (i) O λ de R ocorre à direita do λ de T (M) em M ⇒ grM(R)< grM(T (M)). (ii) O λ de R ocorre à esquerda do λ de T (M) em M ⇒ grM(R) ≤ grM(T (M)). 6.2.10 DEFIN IÇÃO: Termo Estrela Dizemos que o termo M é um termo estrela quando M não possui nenhum subtermo multiplicativo. 6.2.10.1 OBSERVAÇÃO: É claro que se M é termo estrela, então g(M)= 0 e ng(M)= 0. 6.2.11 DEFIN IÇÃO: Seqüência Estrela Uma seqüência estrela para um λ M, denotada por β termos M M M ⊃-termo M, é uma seqüência de •0, •1, •2,..., tal que são satisfeitas as seguintes condições: (a) M•0 ≡ M; (b) Cada M•i+1 é obtido de M•i através da multiplicação-* de T (M•i); 267 (c) O último termo da seqüência, quando existe, é um termo estrela. 6.2.11.1 OBSERVAÇÕES: (a) Note que se M é termo estrela, então βM = M é uma seqüência unitária. (b) Note também que como para cada termo M não estrela existe apenas um subtermo estrela T (M), então para cada termo M a seqüência estrela é única. (c) A notação M →* o M • indica que M se reduz a M• pela multiplicação estrela de T (M). (d) Utilizaremos para as seqüências estrela a notação βM = M •0 →* o M •1 →* o M •2 →* o ..., onde M•0 ≡ M, M• ≡ M•1 e, genericamente, M•n representa o (n+ 1)-ésimo termo da seqüência estrela para M. (e) Denotaremos por M* o último termo da seqüência estrela para M, quando esta for finita. (f) Se M* está definido (∃n< ω / M•m é termo estrela), então é claro que para todo m ≤ n temos (M•m)* ≡ M*, pois a seqüência estrela para M é única e M•m pertence à seqüência estrela de M. (g) Pela unicidade da seqüência estrela também é trivial que, se M* está definido, M ≡ N ⇒ M* ≡ N*. (h) É claro pela Definição acima que: (M•n)•m ≡ M•n+m. Ou seja, o (m+ 1)-ésimo termo da seqüência estrela para M•n é o (n+ m+ 1)-ésimo termo da seqüência estrela para M. Considerando M →* M#, uma multiplicação-* qualquer em M, a definição a seguir relaciona os subtermos de M# com os subtermos de M. Veremos que, com exceção da variável nova de M#, para cada S ⊂ M# existe um R ⊂ M que deu origem a S. 6.2.12 DEFIN IÇÃO: Resíduo-* Sejam M e M# termos tais que M →* M#. Podemos representar M e M# como: (i) M ≡ C[(λx1...λxn.P)Q1...Qn] e M# ≡ C[(λx1...λxn.P[xi/ Qi])Q1...Qi-1 yi Qi+1...Qn]. Seja R ⊂ M. Definiremos (R)1,..., (R)m ⊂ M# como os resíduos-* de R em M# da seguinte forma: Como R ⊂ M, pela forma de M em (i) temos três possibilidades básicas para R: 268 • R ⊂ (λx1...λxn.P)Q1...Qn; • R é disjunto em relação a (λx1...λxn.P)Q1...Qn; • (λx1...λxn.P)Q1...Qn ⊂ R. Analisemos cada uma delas: (1) R ⊂ (λx1...λxn.P)Q1...Qn. Neste caso temos três possibilidades para R, que são: (1.1) R ⊂ Qk (1 ≤ k ≤ n e k ≠ i) ⇒ Qk ≡ C1[R]. Por (i) temos: M ≡ C[(λx1...λxn.P)Q1...Qk-1C1[R]Qk+1...Qn] e M# ≡ C[(λx1...λxn.P[xi/ Qi])Q1...Qk-1C1[R]Qk+1...Qi-1 yi Qi+1...Qn] (se i> k) M# ≡ C[(λx1...λxn.P[xi/ Qi])Q1...Qi-1 yi Qi+1...Qk-1C1[R]Qk+1...Qn] (se i< k). Neste caso, m= 1 e (R)1 ≡ R ⊂ M#. (1.2) R ⊂ P ⇒ P ≡ C1[R]. Por (i) temos: M ≡ C[(λx1...λxn.C1[R])Q1...Qn] e M# ≡ C[(λx1...λxn.C1[R][xi/ Qi])Q1...Qi-1 yi Qi+1...Qn] ≡ C[(λx1...λxn.C1[xi/ Qi][R[xi/ Qi]])Q1...Qi-1 yi Qi+1...Qn]. Note que o subtermo R de M transformou-se em R[xi/ Qi] em M#. Neste caso, m= 1 e (R)1= R[x1/ Q1] ⊂ M#. (1.3) R ⊂ Qi ⇒ Qi ≡ C1[R]. Por (i) temos: M ≡ C[(λx1...λxn.P)Q1...Qi-1C1[R]Qi+1...Qn]. M# ≡ C[(λx1...λxn.P[xi/ C1[R]])Q1...Qi-1 yi Qi+1...Qn]. Note que existem tantas ocorrências de R em M# quantas são as ocorrências livres de x1 em P. Neste caso, m= número de ocorrências livres de xi em P e, para 1 ≤ i ≤ m, (R)i= R ⊂ M# tal que índices menores de (R)i correspondem a subtermos mais à esquerda em M#. (2) R é disjunto em relação a (λx1...λxn.P)Q1...Qn. Isso significa que R ocorre em uma parte de M externa ao segmento-α (λx1...λxn.P)Q1...Qn, ou seja, R ocorre ou à esquerda ou à direita deste segmento-α. Portanto, um dos dois subcasos abaixo ocorre: (2.1) M ≡ C1[R]C2[(λx1...λxn.P)Q1...Qn]. (2.2) M ≡ C2[(λx1...λxn.P)Q1...Qn]C1[R]. 269 Para cada um destes casos M# tem as seguintes formas: M# ≡ C1[R]C2[(λx1...λxn.P[xi/ Qi])Q1...Qi-1 yi Qi+1...Qn] (Caso 2.1). M# ≡ C2[(λx1...λxn.P[xi/ Qi])Q1...Qi-1 yi Qi+1...Qn]C1[R] (Caso 2.2). Note que em nenhum dos dois casos R se alterou em M#. Neste caso, m= 1 e (R)1 ≡ R ⊂ M#. (3) (λx1...λxn.P)Q1...Qn ⊂ R. Isso significa que o segmento-α no qual estamos realizando a multiplicação-* é um subtermo de R. Neste caso, R ≡ C1[(λx1...λxn.P)Q1...Qn]. Logo, como R é subtermo de M, temos que M e M# têm as seguintes formas: M ≡ C2[C1[(λx1...λxn.P)Q1...Qn]] e M# ≡ C2[C1[(λx1...λxn.P[xi/ Qi])Q1...Qi-1 xi Qi+1...Qn]]. Neste caso, m= 1 e (R)1 ≡ C1[(λx1...λxn.P[xi/ Qi])Q1...Qi-1 xi Qi+1...Qn]. 6.2.12.1 OBSERVAÇÃO: É claro, pela definição de resíduo-*, que se M →* M#, então todo subtermo S de M# é resíduo de algum subtermo R de M, com exceção apenas para yi em Q1...Qi-1 yi Qi+1...Qn. Veremos agora um lema que relaciona o grau dos subtermos pesados de um segmento-α com suas posições no segmento. 6.2.13 LEMA: Considere M ≡ C[(λx1...λxn.P)Q1...Qn]. Se 1 ≤ r< s ≤ n, então grM(Qr)> grM(Qs). PROVA: Considere r e s números naturais satisfazendo as condições do lema. Considere, para (1 ≤ i ≤ n): (i) xi ∈ Λ Ai (cada xi é do tipo A i). (ii) P ∈ ΛB (P é do tipo B). Pelas Definições 6.2.1 e 6.2.5 de comprimento de tipos e grau temos: (iii) grM(Qs)= lτ(λxs...λxn.P)= lτ(A s⊃...⊃A n⊃B). (iv) grM(Qr)= lτ(λxr...λxs...λxn.P)= lτ(A r⊃...⊃A s⊃...⊃A n⊃B). É claro pela Definição 6.2.1 de comprimento de tipos que: 270 (v) lτ(A r⊃...⊃A s⊃...⊃A n⊃B) > lτ(A s⊃...⊃A n⊃B). Portanto, por (iii), (iv) e (v) temos: grM(Qr)> grM(Qs) ♦ O lema seguinte é uma conseqüência imediata da Observação 6.2.12.1. 6.2.14 LEMA: Considere M e M# λ⊃-termos tais que M →* M#. Se S ⊂ M# é SM em M#, então existe R ⊂ M tal que S é resíduo-* de R. PROVA: Seja S ⊂ M# SM em M#. Pela Observação 6.2.12.1, todo subtermo S de M# ou é resíduo-* de algum subtermo R de M, ou é a ocorrência de yi expressa na Definição 6.2.4 de SM . Mas, pela Definição 6.2.4 , esta ocorrência de yi não é SM em M#. Logo existe R ⊂ M tal que S é resíduo-* de R. ♦ O lema a seguir estabelece vários resultados com relação à operação →* . O objetivo do lema é provar todos os principais argumentos que utilizaremos na prova de que a seqüência estrela para cada termo M é finita. As provas de cada item são simples e obtidas diretamente a partir das definições que elas envolvem, apenas por inspeção dos casos possíveis. Devido à importância que a finitude da seqüência estrela tem no nosso desenvolvimento, optamos por apresentar detalhadamente as provas de todos os itens do lema. 6.2.15 LEMA: Considere a seguinte multiplicação-*: M ≡ C[(λx1...λxn.P)Q1...Qn] →* C[(λx1...λxn.P[xi/ Qi])Q1...Qi-1 yi Qi+1...Qn] ≡ M# Seja R⊂M. Para todo k tal que (R)k é resíduo-* de R em M# valem os seguintes resultados: (1) R ≡/ Qi é SM em M ⇒ (R)k é SM em M# e grM(R)= grM#((R)k); (2) R não é SM em M e (R)k é SM em M# ⇒ grM#((R)k)< grM(Qi); (3) (R ⊄ Qi) e (R= T (M)) ⇒ k= 1 e (R)k= T (M#); 271 (4) Se Qi= T (M) e algum (Qi)k é SM em M #, então: grM#((Qi)k)< grM(Qi) (∀k / (Qi)k é resíduo-* de Qi); (5) Qi= T (M) ⇒ g(M) ≥ g(M#); (6) Qi= T (M) e ng(M)= 1 ⇒ g(M) > g(M#); (7) Qi= T (M) e g(M) > g(M#) ⇒ ng(M)= 1; (8) Qi= T (M) e ng(M)> 1 ⇒ g(M)= g(M#) e ng(M)= ng(M#)+ 1; (9) Qi= T (M) e g(M)= g(M#) ⇒ ng(M)> 1 e ng(M)= ng(M#)+ 1. PROVA: Item (1) Pela forma de M temos que se R é algum outro SM de M diferente de Qi, então todas as possibilidades para R são: (a) R ⊂ (λx1...λxn.P)Q1...Qn . Neste caso: • R é algum Qs (1 ≤ s ≤ n e s ≠ i), • R ocorre em algum Qr (possivelmente no próprio Qi), • R ocorre em P; (b) R é disjunto de (λx1...λxn.P)Q1...Qn; (c) (λx1...λxn.P)Q1...Qn ⊂ R. Analisemos cada caso. CASO 1: R é algum Qs (1 ≤ s ≤ n e s ≠ i) Neste caso, pela Definição 6.2.12, (R)1 ≡ Qs ⊂ M# é o único resíduo-* de Qs em M#. É fácil ver pela forma de M e de M# que qualquer Qs (s ≠ i) continua ou não SM em M# conforme ele seja ou não SM em M. Além disso, como xi e Qi têm o mesmo tipo, temos que: lτ(P) = P[x Q l λx λx .P)= λx λx .P[x Qlτ( i/ i]) e portanto: τ( s... n lτ( s... n i/ i]). Logo, pela Definição 6.2.5 de grau temos: grM(Qs)= grM#(Qs)= grM#((R)1) (s ≠ i). CASO 2: R ocorre em algum Qr (1 ≤ r ≤ n) ( Ou seja: R ⊂ Qr) Neste caso, como R é SM em M, o Qr em que R ocorre é do tipo: (i) Qr ≡ C1[(λy1. ...λyt.N)S1...Ss-1RSs+1...St]. Além disso, pela Definição 6.2.12: se r ≠ i, (R)1 ≡ R ⊂ Qr ⊂ M# é o único resíduo-* de R em M#; 272 se r= i, (R)1 ≡ ... ≡ (R)k ≡ R ⊂ M# são os k resíduos-* de R em M#, e k representa o número de ocorrências livres de xi em P. Pelas formas de M e M# e por (i) temos que a estrutura interna de Qr não se altera com a multiplicação-* M →* M#, mesmo quando r= i. Logo: (R é SM em M) ⇒ ((R)k é SM em M#) e, além disso, grM(R)= grM#((R)k). CASO 3: R ocorre em P (ii) Neste caso, P é do tipo: P ≡ C1[(λy1. ...λyt.N)S1...Ss-1RSs+1...St] ≡ C2[R]. Além disso, pela Definição 6.2.12, (R ≡ R[xi/ Q R em M Pelas formas de M e M ii) temos: (iii) M ≡ C[(λx λx .C R])Q Q ]. Note que: )1 i] é o único resíduo-* de #. # e por ( 1... n 2[ 1... n (iv) M# ≡ C[(λx1...λxn.C2[R][xi/ Qi])Q1...Qi-1 yi Qi+1...Qn]. P[xi/ Qi] C2[R][x)vi(≡ i/ Qi] ≡ C2[xi/ Qi][R[xi/ Qi]] ≡ ≡ C1[xi/ Qi][(λy1...λyt.N[xi/ Qi])S1[xi/ Qi]...Ss-1[xi/ Qi]R[xi/ Qi]Ss+1[xi/ Qi]...St[xi/ Qi]]. (v) É claro que se ys ocorre livre em N, então ys também ocorre livre em N[xi/ Qi][y1/ S1]...[ys-1/ Ss-1]. Portanto, por (iii), (iv) e (v), e pela Definição 6.2.4 de SM temos que se R é SM em P então R[xi/ Qi] ≡ (R)1 é SM em P[xi/ Qi]. Ou seja, (R)1 é SM em M#. Além disso, como substituições não alteram o tipo de um termo, temos que lτ(λys...λyt.N)= lτ(λys...λyt.N[xi/ Qi]). Logo, grM(R)= grM#(R[xi/ Qi])= grM#((R)1). CASO 4: R é disjunto de (λx λx .P)Q1...Q em M 1... n n Neste caso temos duas possibilidades para M: (vi) M ≡ C1[(λy1. ...λyt.N)S1...Ss-1RSs+1...St]C2[(λx1. ...λxn.P)Q1...Qn], ou M ≡ C2[(λx1. ...λxn.P)Q1...Qn]C1[(λy1. ...λyt.N)S1...Ss-1RSs+1...St]. E, além disso, pela Definição 6.2.12 (R)1 ≡ R é o único resíduo de R em M#. Por (vi) temos: (vii) M#≡C1[(λy1...λyt.N)S1...Ss-1RSs+1...St]C2[(λx1...λxn.P[xi/ Qi])Q1...Qi1yiQi+1...Qn], ou M#≡C2[(λx1...λxn.P[xi/ Qi])Q1...Qi-1yiQi+1...Qn]C1[(λy1...λyt.N)S1...Ss-1RSs+1...St]. 273 É claro, por (vi) e (vii) que o segmento-α ao qual R pertence não se alterou com a multiplicação-* de Qi. Logo, se R é SM em M, (R)1 ≡ R também o é em M# e grM(R)= grM#((R)1). CASO 5: (λx1...λxn.P)Q1...Qn ⊂ R Neste caso, R ≡ C1[(λx1. ...λxn.P)Q1...Qn]. Como R é SM e subtermo de M temos que M e M# são das seguintes formas: M ≡ C2[(λy1. ...λyt.N)S1...Ss-1C1[(λx1. ...λxn.P)Q1...Qn]Ss+1...St] e M# ≡ C2[(λy1. ...λyt.N)S1...Ss-1C1[(λx1. ...λxn.P[xi/ Qi])Q1...Qi-1 xi Qi+1...Qn]Ss+1...St]. Além disso, pela Definição 6.2.12 temos que o único resíduo de R em M# é definido como: (R)1 ≡ C1[(λx1. ...λxn.P[xi/ Qi])Q1...Qi-1 yi Qi+1...Qn]. Rescrevendo M e M# temos: M ≡ C2[(λy1. ...λyt.N)S1...Ss-1RSs+1...St] e M# ≡ C2[(λy1. ...λyt.N)S1...Ss-1(R)1Ss+1...St]. É claro, olhando para M e M# acima que se R é SM em M, então (R)1 também o é em M#, uma vez que as alterações que a multiplicação-* de Qi provocaram têm escopo apenas interno a R, não alterando a forma do segmento-α no qual R ocorre em M. Além disso, pela Definição 6.2.5 de grau temos: grM(R)= lτ(λys. ...λyt.N)= grM#((R)1). Com isso analisamos todos os casos possíveis e provamos o Item 1.   Item (2) Não é difícil ver, pela Definição 6.2.12 de resíduo-*, que o único caso possível no qual R não é SM em M e algum (R)j é SM em M# ocorre quando as condições (1) a (3) abaixo forem satisfeitas. (1) Qi tem a forma: (i) Qi ≡ λy1...λyt.N. (2) R ⊂ P e, para alguma ocorrência livre de xi em P, temos P do tipo: (ii) P ≡ C1[xiS1...Ss-1RSs+1...St]. (3) ys ocorre livre em N. Neste caso, por (i) e (ii) temos que M e M# têm as formas: 274 53 (iii) M ≡ C[(λx ...λx .C [x S ...S RS ...St])Q ...Q (λy ...λy .N)Q ...Qn].1 n 1 i 1 s-1 s+1 1 i-1 1 t i+1 (iv) M ≡ C[(λx ...λx .C [(λy ...λy .N)S ...S R S ...S ])Q ...Q y Q ...Q ], onde o índice que acrescentamos denota: X ≡ X[x / Q ]. #                 1 n 1 1 t 1 s-1 s+1 t 1 i-1 1 i+1 n i i Além disso, pela Definição 6.2.12 temos que (R) ≡ R é o único resíduo-* de R em M . Ou seja, k= 1. 1   # Neste caso, pela Definição 6.2.4 e por (iv) a ocorrência (R) ≡ R é SM em M . 1   # Note também, por (iii), que R não é SM em M, pois ocorre em x S ...S R. 1 1 r-1 Temos que x e Q são do mesmo tipo, caso contrário M não seria termo de λ . i i ⊃ Considere: (v) x ∈ Λ e Q ≡ λy .....λy .N ∈ Λ (A é o tipo de x e de Q ). i AA i 1 t i i (vi) λx ...λx .P ∈ Λ . i+1 n B Então, por (v), (vi) e pela definição de tipos, temos: (vii) λxi.λxi+1...λxn.P ∈ Λ A⊃B. Além disso, pela Definição 6.2.1 de comprimento de tipos e por (v) temos: (viii) lτ(A )= lτ(λy1...λyt.N) ≥ lτ(λys...λyt.N), onde (1 ≤ s ≤ t). Por (iv), (viii) e pela Definição 6.2.5 de grau temos que: (ix) grM#((R)1)= lτ(λys...λyt.N) ≤ lτ(A ) l(A⊃B). 1.2.6< Pela forma de M e pela Definição 6.2.5 de grau temos: (x) grM(Qi) = l (λxi.λxi+1...λxn.P) l(A⊃B). )xvi( =τ Portanto, por (ix) e (x) temos que grM#((R)1)< grM(Qi).   Item (3) Pela Definição 6.2.12 de resíduo-*, os únicos casos nos quais um subtermo R possui mais de um resíduo em M# ocorrem quando, ou R é o próprio SM multiplicado (R ≡ Qi), ou R é subtermo do SM multiplicado (R ⊂ Qi). Mas por hipótese do Item 3, nenhum destes dois casos ocorre, logo R só possui um resíduo-* em M#, ou seja: (i) k= 1. Note, pelo Item (1) deste lema, que (R)1 é SM em M# e: 53 Olhando para M ficamos tentados a pensar que a parte (λy1...λyr.N)Qi+1...Qn de M é um redex, o que na verdade é falso, porque devido à precedência na operação de aplicação em λ-termos Qi+1 não está sendo aplicado a (λy1...λyr.N) apenas, mas a ((...((λx1...λxn.C[xiS1...Ss-1RSs+1...St])Q1)...Qi-1)(λy1.....λyt.N)). 275 (ii) grM(R)= grM#((R)1). Pela Definição 6.2.9 de subtermo estrela, para provarmos que (R)1= T (M#) temos que provar que: (iii) Para qualquer S, SM de M#, vale: (a) o λ de S ocorre à direita do λ de (R)1 em M# ⇒ grM#(S)< grM#((R)1); (b) o λ de S ocorre à esquerda do λ de (R)1 em M# ⇒ grM#(S) ≤ grM#((R)1). Pelo Lema 6.2.14 vale: (iv) Para todo S, SM em M#, existe um S' ⊂ M do qual S é resíduo-*. Temos duas possibilidades para S': ou S' é SM em M, ou S' não é SM em M. CASO 1: S' não é SM em M Neste caso, pelo Item (2) deste lema temos: (v) grM#((R)1) gr)ii(= M(R) gr2 item> M#(S). É claro, por (v), que (iii)(a) e (iii)(b) são válidos e portanto (R)1= T (M#). CASO 2: S' é SM em M Neste caso, pelo Item (1) deste lema temos: (vi) grM(S')= grM#(S). Dessa forma, por (ii) e (vi), como R é T (M), pela Definição 6.2.9 temos: (vii) o λ de S' ocorre à direita do λ de R em M ⇒ grM#(S)< grM#((R)1); (viii) o λ de S' ocorre à esquerda do λ de R em M ⇒ grM#(S) ≤ grM#((R)1). Considere a afirmação: (*) O λ de S' ocorre à esquerda do λ de R em M ⇒ o λ de S ocorre à esquerda do λ de (R)1 em M#. Por (vii), (viii) e (*) temos: • O λ de S ocorre à direita do λ de (R)1 em M# ⇒ grM#(S)< grM#((R)1). • O λ de S ocorre à esquerda do λ de (R)1 em M# ⇒ grM#(S) ≤ grM#((R)1). (ix) Assim, se assumirmos a afirmação (*), então (iii)(a) e (iii)(b) são válidos para S e portanto, pela Definição 6.2.9, (R)1= T (M#). Mas analisando a Definição 6.2.8 de multiplicação-*, é fácil perceber que as únicas mudanças de posições de subtermos que a multiplicação-* de Qi provoca são da direita para a esquerda. Isto para o caso dos resíduos-* de Qi e dos subtermos de Qi. Como R não é Qi nem ocorre em Qi o máximo que pode ocorrer é o λ de S' ocorrer à direita do λ de R em M 276 e o λ de S ocorrer à esquerda do λ de (R)1 em M#. Nunca o contrário disso. Logo, a afirmação (*) é válida e, portanto, por (ix), provamos o Item 3.   Item (4) Pela forma de M# e pela Definição 6.2.4 de SM temos que para (Qi)m ser SM em M #, é porque (Qi)m ocorre em algum subtermo N de M # que tem a seguinte forma: (i) N ≡ (λy1...λyt.D)E1...Es-1 (Qi)m Es+1...Er , com ys ocorrendo livre em D. Pela Definição 6.2.8 de multiplicação-*, para que uma situação como a descrita em (i) ocorra em M#, as seguintes propriedades têm que ser válidas em M ≡ C[(λx1...λxn.P)Q1...Qn]: (ii) P ≡ C1[(λy1...λyt.N)S1...Ss-1 xi Ss+1...St]; (xi expresso é a m-ésima ocorrência de xi em P) (iii) ys ocorre livre em N. Pela forma de M e M# e por (ii) temos: (iv) M ≡ C[(λx1...λxn.C1[(λy1...λyt.N)S1...Ss-1 xi Ss+1...St])Q1...Qn]. (v) M# ≡ C[(λx1...λxn.C1[(λy1...λyt.N)S1...Ss-1 xi Ss+1...St][xi/ Qi])Q1...Qi-1 yi Qi+1...Qn] ≡ C[(λx1...λxn.C1 [(λy1...λyt.N )S1 ...Ss -1 Qi Ss +1...St ])Q1...Qi-1 yi Qi+1...Qn], onde usamos a seguinte abreviação: X  ≡ X[xi/ Qi]. Como, por (ii), estamos considerando a m-ésima ocorrência de xi em P, então, pela Definição 6.2.12 temos que a ocorrência de Qi em M# é (Qi)m. Portanto, por (v) temos: (vi) M# ≡ C[(λx1...λxn.C1 [(λy1...λyt.N )S1 ...Ss -1 (Qi)m Ss +1...St ])Q1...Qi-1 xi Qi+1...Qn]. Como, por (iii), ys ocorre livre em N, ys certamente também ocorre livre em N , pois a substituição   é definida em xi. Logo, considerando: D ≡ N  e Ej ≡ Sj  (1 ≤ j ≤ t), por (vi) temos que (Qi)m ocorre em um contexto do tipo expresso em (i), e portanto é SM em M #. Por (iii), (iv) e pela Definição 6.2.4 de SM temos: (vii) a ocorrência de xi expressa em M é SM em M. Além disso, por (iii): (viii) O segmento-α de xi em M ocorre mais à direita que o segmento-α de Qi. Como, por hipótese do item, Qi= T (M), então por (vii), (viii) e pela Definição 6.2.9 de T (M) temos: 277 (ix) grM(xi) < grM(Qi). Pela Definição 6.2.5 de grau, por (iv) e por (vi) temos: (i) É claro, pela Definição 6.2.6 de grau de um termo, que (*) ⇒ g(M) ≥ g(M#). Vamos portanto provar (*). (x) grM(xi)= lτ(λys...λyt.N). (xi) grM#((Qi)m)= lτ(λys...λyt.N  )= lτ(λys...λyt.N[xi/ Qi]). Mas como xi e Qi têm que ser do mesmo tipo, caso contrário M não seria termo de λ⊃, temos, por (x) e (xi): (xii) grM(xi)= lτ(λys...λyt.N)= lτ(λys...λyt.N[xi/ Qi])= grM#((Qi)m). Assim, por (ix) e por (xii) temos: grM#((Qi)m)< grM(Qi).   Item (5) Considere a proposição: (*) Para qualquer S, SM em M#, vale grM#(S) ≤ g(M). Seja S ⊂ M# SM em M#. (ii) Pelo Lema 6.2.14 existe R ⊂ M tal que S é resíduo-* de R. Temos duas possibilidades para R e Qi: ou R ≡ Qi ou R ≡/ Qi. CASO 1: R ≡ Qi Neste caso, por (ii) e pelo Item (4) deste lema temos: grM#(S)< grM(Qi)= g(M). CASO 2: R ≡/ Qi Neste caso, por (ii) e pelo Item (1) deste lema temos: (iii) grM#(S)= grM(R). Além disso, como Qi= T (M), pela Definição 6.2.6 de grau de um termo temos: (iv) grM(R) ≤ grM(Qi)= g(M). Logo, por (iii) e (iv) temos: grM#(S) ≤ g(M).   278 Item (6) Analogamente ao item anterior, provar que g(M#)< g(M) é provar: (*) Para qualquer S, SM de M#, vale grM#(S)< g(M). Seja S ⊂ M# SM em M#. (i) Pelo Lema 6.2.14 existe R ⊂ M tal que S é resíduo-* de R. Temos duas possibilidades para R e Qi: ou R ≡ Qi ou R ≡/ Qi. CASO 1: R ≡ Qi Neste caso, por (i) e pelo Item (4) deste lema temos: grM#(S)< grM(Qi)= g(M). CASO 2: R ≡/ Q Neste caso, por (i) e pelo Item (1) deste lema temos: i (ii) grM#(S)= grM(R). Além disso, como Qi= T (M) e ng(M)= 1, pela Definição 6.2.7 temos: (iii) grM(R)< grM(Qi)= g(M). Logo, por (ii) e (iii) temos: grM#(S)< g(M).   Item (7) Como Qi= T (M), provar que ng(M)= 1 é provar que para qualquer R ⊂ M: (*) R ≡/ Qi e R é SM em M ⇒ grM(R)< g(M). Seja R ⊂ M tal que R é SM em M. Pelo Item (1) deste lema, como R ≡/ Qi temos: (i) (R)k é SM em M# e grM#((R)k)= grM(R) (∀k / (R)k é resíduo-* de R). Como g(M#)< g(M), pela Definição 6.2.6 temos: (ii) grM#((R)k)< g(M). Assim, por (i) e (ii): grM(R)< g(M).   Item (8) Se ng(M)> 1, então existe pelo menos um subtermo R ≡/ Qi tal que: (i) R é SM em M e grM(R)= g(M). 279 Como R ≡/ Qi, pelo Item (1) deste lema temos: (ii) (R)k é SM em M# e grM#((R)k)= grM(R) (∀k / (R)k é resíduo-* de R). Por (i) e (ii): (iii) grM#((R)k)= g(M). Mas como Qi= T (M), pelo Item (5) deste lema: (iv) g(M) ≥ g(M#). Portanto, por (iii), (iv) e pela Definição 6.2.6 de grau de um termo temos: (v) g(M)= g(M#). (vi) Seja S SM em M# tal que grM#(S)= g(M #) g(M). )v( = Pelo Lema 6.2.14 existe R ⊂ M tal que S é resíduo-* de R. Temos dois casos possíveis para R: R não é SM em M ou R é SM em M. Se R não é SM em M, então, pelo Item (2) deste lema, grM#(S)< grM(Qi)= g(M), o que, por (vi), é um absurdo. Portanto: (vii) S é resíduo-* de R que é SM em M. Pelo Item (4) deste lema, se S é resíduo de Qi, então grM#(S)< grM(Qi)= g(M), o que, por (vi), é um absurdo. Portanto: (viii) R ≡/ Qi. Por (vii), (viii) e pelo Item (1) deste lema temos: (ix) grM#(S)= grM(R). Assim, por (vi), (vii), (viii) e (ix) temos: (x) Os únicos SM em M que têm grau igual a g(M#) são os resíduos dos ng(M)-1 SM de M com grau igual a g(M) que são distintos de Q1= T (M). É claro, pela forma de M, que se B é SM em M e B⊂Qi, então o λ de B ocorre à direita do λ de Qi. Portanto, pela Definição 6.2.9 de subtermo estrela temos: (xi) B⊂Qi é SM em M ⇒ grM(B)< g(M). Logo, por (vi), (ix) e (xi) temos: (xii) R⊄Qi. (xiii) Pela Definição 6.2.12 de resíduo-*, os únicos casos em que um SM B em M possui mais de um resíduo-* em M# ocorrem quando B ≡ Qi ou quando B⊂Qi. Portanto, por (viii), (xii) e (xiii) temos: (xiv) R só possui um resíduo em M#. 280 Sejam R1, ..., Rr os ng(M)-1 SM de M, distintos de Qi= T (M), com grau igual a g(M). (xv) Por (xiv) (R1)1, ..., (Rr)1 são todos os ng(M)-1 resíduos-* destes SMs em M#. (xvi) Por (x) e (xv), (R1)1, ..., (Rr)1 são os únicos SM em M# com grau igual a g(M#). Logo, por (xvi) temos: ng(M#)= ng(M)-1.   Item (9) (i) Seja S SM em M# tal que grM#(S)= g(M #)= g(M). Pelo Lema 6.2.14 existe R⊂M tal que S é resíduo-* de R. Temos dois casos possíveis para R: R não é SM em M ou R é SM em M. Se R não é SM em M, então pelo Item (2) deste lema grM#(S)< grM(Qi)= g(M), o que, por (i), é um absurdo. Portanto: (ii) S é resíduo-* de R que é SM em M. Pelo Item (4) deste lema, se S é resíduo de Qi, então grM#(S)< grM(Qi)= g(M), o que, por (vi), é um absurdo. Portanto: (iii) R ≡/ Qi. Por (ii), (iii) e pelo Item (1) deste lema temos: (iv) grM(R)= grM#(S) g(M). )i(= Assim, por (iii), (iv) e pela Definição 6.2.7 temos: (v) ng(M)> 1. Como Qi= T (M) e, por (v), ng(M)> 1, pelo Item (8) deste lema temos: (vi) ng(M)= ng(M#)+ 1. Logo, por (v) e (vi) provamos o Item (9). ♦ Vamos agora iniciar o argumento principal da prova de finitude da seqüência estrela. No lema seguinte provamos que para um termo não estrela M qualquer é necessário um número finito de passos da seqüência estrela para diminuir o grau de M. Ou seja, existe M•n em βM, com n< ω, tal que g(M)> g(M •n). 6.2.16 LEMA: Se M é um λ⊃-termo tal que ng(M) ≥ 1, então existe n< ω tal que g(M•n)< g(M). 281 PROVA: Provaremos por indução em ng(M). BASE: ng(M)= 1 Pelo Lema 6.2.15-(6) temos: ng(M)= 1 ⇒ g(M) > g(M•). Portanto, n= 1< ω já prova o caso básico. PASSO: ng(M)> 1 HI: Se N é um λ⊃-termo tal que ng(N)< ng(M), então existe k< ω tal que g(N•k)< g(N). Pelo Lema 6.2.15-(8), como ng(M)> 1 temos: (i) g(M)= g(M•) e ng(M)= ng(M•)+ 1. Logo, vale HI para M• e portanto temos: (ii) Existe um (M•)•k tal que g((M•)•k)< g(M•) e k< ω. (iii) Mas pela Observação 6.2.11.1-(h) temos: (M•)•k ≡ M•k+1. Logo: (iv) g(M) = g(M )i( •) g((M )ii( > •)•k) g(M )iii( ≡ •k+1). Além disso, como k< ω, k+ 1< ω. Portanto, fazendo n= k+ 1, temos, por (iv): g(M•n)< g(M) e n< ω. ♦ No teorema seguinte provamos finalmente que a seqüência estrela de qualquer termo M é finita. 6.2.17 TEOREMA: Finitude de β A seqüência estrela de todo λ⊃-termo M é finita (l(βM)< ω). PROVA: Indução em g(M). Dizer que l(βM)< ω é o mesmo que dizer que existe r< ω tal que M •r é termo estrela. É isto que provaremos. BASE: g(M)= 0 Neste caso, M é estrela, e portanto M•0 ≡ M é termo estrela. PASSO: g(M)> 0 HI: para todo λ⊃-termo N em que g(N)< g(M), existe s< ω tal que N•s é termo estrela. (i) Pelo Lema 6.2.16 existe n< ω tal que g(M•n)< g(M). Logo vale HI em M•n, e portanto: (ii) Existe s< ω tal que (M•n)•s é termo estrela. 282 Logo, por (ii) e pela Observação 6.2.11.1-(h) temos: M•n+s é termo estrela, e como, por (i) e (ii) n< ω e s< ω, é claro que n+ s< ω. ♦ 6.2.18 DEFIN IÇÃO: Função Peso - p(M) Seja M um λ⊃-termo. Definimos o peso de M, e denotamos por p(M), como sendo o número de todas os subtermos pesados SP de M. 6.2.19 DEFIN IÇÃO: Função Ordinal - o(M) Seja M um λ⊃-termo. Definimos o ordinal natural associado a M, e o denotamos por o(M), como: o(M)= p(M*)+ 1. 6.2.20 TEOREMA: Existência, Finitude e U nicidade de o(M) Para qualquer termo M, o(M) está definido, é único e finito. PROVA: O Comentário 6.2.11.1-(b) e o Teorema 6.2.17 garantem que, para cada termo M, M* existe e é único. Logo, pela Definição 6.2.19, o(M) existe e é único para todo termo M. Como a seqüência estrela que produziu M* a partir de M é finita (Teorema 6.2.17), e a multiplicação-*, executada a cada passo da seqüência, é uma operação finitária (Definição 6.2.8), então é claro que se M é um termo finito, M* também o é. Logo, sendo finito, M* possui um número finito de subtermos pesados SP, ou seja, p(M*)< ω. Portanto, pela Definição 6.2.19, temos que o(M)< ω. ♦ §3 Finitude da Pior Seqüência - o(M) = LF∞(M) Nesta seção provaremos que a atribuição o(M), que verificamos ser única e finita para cada termo M, corresponde ao comprimento da seqüência de redução obtida aplicando-se a estratégia perpétua a M (LF∞(M)). Fazendo isso, provamos que LF∞(M)< ω e portanto, pelo Teorema 6.1.2 temos que LF∞(M)= o(M) é ordinal natural para λ⊃. 283 6.3.1 LEMA: Se M é um termo estrela e M → M', então M' também é termo estrela. PROVA: Considere: (i) M ≡ C[(λx.P)Q] → C[P[x/ Q]] ≡ M' Como M é termo estrela, então (λx.P)Q é K-redex (x não ocorre livre em P), caso contrário Q seria um SM em M e portanto M não seria termo estrela. Portanto, por (i) temos: (ii) M' ≡ C[P[x/ Q]] ≡ C[P] Temos que provar que: (*) Não existe SM em M ≡ C[(λx.P)Q] ⇒ não existe SM em M' ≡ C[P]. Provaremos (*) por contraposição. Ou seja, provaremos que: (**) Existe SM em M' ≡ C[P] ⇒ Existe SM em M ≡ C[(λx.P)Q]. Considere que existe SM em M'. Então: (iii) Existe R ≡ (λy1...λyn.N)B1...Bn ⊂ M' ≡ C[P] tal que algum Bi é SM em M'. Temos três possibilidades para R com relação a P: (a) R ⊂ P; (b) P ⊂ R; (c) R e P são disjuntos. Analisemos cada uma delas: CASO 1: R ⊂ P Neste caso, R ⊂ (λx.P)Q e portanto M também possui SM . CASO 2: P ⊂ R Neste caso, por (iii) temos P ⊆ N, ou P ⊆ Bi (1 ≤ i ≤ n) Consideremos o caso P ⊆ N. Então: N ≡ C1[P] e temos, por (iii): (iv) M' ≡ C1[(λy1...λyn.C1[P])B1...Bn]. Então, por (i), (iii) e (iv) temos: M ≡ C1[(λy1...λyn.C[(λx.P)Q])B1...Bn], e portanto algum Bi é SM em M. O caso em que P ⊆ Bi é análogo a este. CASO 3: P e R são disjuntos 284 Neste caso: M' ≡ C1[R]C2[P] ou M' ≡ C2[P]C1[R]. Para cada um destes casos temos: M ≡ C1[R]C2[(λx.P)Q] ou M' ≡ C2[(λx.P)Q]C1[R]. Logo R ocorre em M, que portanto possui SM . ♦ 6.3.2 LEMA: Seja M ≡ C[(λx1...λxn.P)Q1...Qn], onde (λx1...λxn.P)Q1...Qn é o segmento-α mais à esquerda de M e Q1 não é SM em M. Todos os casos possíveis para T (M) são os listados abaixo e as seguintes propriedades são válidas: (a) Se T (M) ⊂ P então: (1) M• ≡ C[(λx1...λxn.P •)Q1...Qn], onde: (λx1...λxn.P •)Q1...Qn é o left-most segmento-α de M •. (2) M • ≡ C[(λx2...λxn.P •)Q2...Qn], onde: (λx2...λxn.P •)Q2...Qn é o left-most segmento-α de M  •. 54 (b) Se (T (M) ⊂ C[ ]) então: (1) M• ≡ C• [(λx1...λxn.P)Q1...Qn], onde: (λx1...λxn.P)Q1...Qn é o left-most redex de M •. (2) M • ≡ C•[(λx2...λxn.P)Q2...Qn], onde: (λx2...λxn.P)Q2...Qn é o left-most redex de M  •. (c) Se (T (M) ⊂ Qi) (1 ≤ i ≤ n) então: (1) M• ≡ C[(λx1...λxn.P)Q1,...,Qi-1, Qi •, Qi+1,...,Qn], onde: (λx1...λxn.P)Q1,...,Qi-1, Qi •, Qi+1,...,Qn é o left-most segmento-α de M •. (2) (i ≠ 1) ⇒ M • ≡ C[(λx2...λxn.P)Q2,...,Qi-1, Qi •, Qi+1,...,Qn], onde: (λx2...λxn.P)Q2,...,Qi-1, Qi •, Qi+1,...,Qn é o left-most segmento-α de M  •. (d) Se T (M) é algum Qi (1 ≤ i ≤ n) então: (1) M• ≡ C[(λx1...λxn.P[xi/ Qi])Q1,...,Qi-1, y, Qi+1,...,Qn], onde: (λx1...λxn.P[xi/ Qi])Q1,...,Qi-1, y, Qi+1,...,Qn é o left-most segmento-α de M •. e y é uma variável nova do mesmo tipo de xi. (2) (i ≠1) ⇒ M • ≡ C[(λx2...λxn.P[xi/ Qi])Q2,...,Qi-1, y, Qi+1,...,Qn], onde: (λx2...λxn.P[xi/ Qi])Q2,...,Qi-1, y, Qi+1,...,Qn é o left-most segmento-α de M  •. 54 Como definido em 4.4.4.1-(c), M  é o termo obtido de M pela redução do seu left-most redex. 285 e y é uma variável nova do mesmo tipo de xi. (e) p(M) = p(C[ ]) + p(P) + n + Σ p(Q i n =1 i ). PROVA: As propriedades para os Itens (a), (c) e (d) são imediatas pela definição de multiplicação-*. Vamos nos concentrar nos Itens (b) e (e), e no fato dos 4 casos ((a) a (d)) esgotarem todas as possibilidades para T (M). Seja: (i) S ≡ (λx1...λxn.P)Q1...Qn o left-most segmento-α de M e (ii) R ≡ (λy1...λym.N)B1...Bm o segmento-α em que T (M) ocorre. Por (i): M ≡ C[S]. Temos quatro possibilidades para R, com relação a S: (1) R ⊂ S (2) R ≡ S (3) S ⊂ R (4) R e S são disjuntos. Analisemos cada uma delas: O caso (1) representa os Itens (a) e (c) do teorema. O caso (2) representa o Item (d) do teorema. O caso (3) não ocorre, pois, uma vez que se S ⊂ R, o λ de R ocorre à esquerda do λ de S, o que é absurdo, pois S é o segmento-α mais à esquerda em M. No caso (4), como S é o left-most segmento-α de M temos, M ≡ C1[S]C2[R], ou seja, R ocorre à direita de S em M. Dessa forma, qualquer multiplicação-* em R ou em qualquer outro segmento-α de M não altera S nem multiplica S. Portanto podemos, sem problemas, utilizar a seguinte abreviação: M ≡ C[S] →* o (C[S]) • ≡ C•[S] ≡ M•. Dessa forma, os resultados para o Item (b) também seguem naturalmente. Vamos provar o Item (e). O caso (3) acima é falso para R e para qualquer outro segmento-α de M, portanto, se N é segmento-α qualquer em M temos um dos casos: N é disjunto de S ⇒ M ⊂ C[ ], N ⊂ P, N ⊂ Qi (1 ≤ i ≤ n) ou N ≡ S. 286 Dessa forma, contar todas as ocorrências pesadas de M é contar todas as ocorrências pesadas de cada um desses possíveis Ns, e portanto: p(M) = p(C[ ]) + p(P) + n + i p(QΣ n =1 i ). ♦ 6.3.4 LEMA: Considere Q ⊂ M tal que Q é SM em M e g(M•)< grM(Q). Então g(M)= grM(Q). PROVA: Suponha, por absurdo, que g(M)> grM(Q). Isto implica que T (M) ≠ Q, logo, pelo Lema 6.2.15-(1), todo resíduo (Q)k de Q é SM em M• e, portanto, g(M•) ≥ grM(Q), o que é um absurdo, pois g(M •)< grM(Q) por hipótese. Logo, descartamos a hipótese do absurdo e temos g(M) ≤ grM(Q). Mas pela Definição 6.2.6 não é possível que g(M)< grM(Q). Logo, g(M)= grM(Q). ♦ O teorema seguinte apresenta uma caracterização de M* a partir de M quando o leftmost redex de M é um K-redex. Os Itens (a) e (b) são necessários na prova do Item (c) que será essencial para provarmos que o(M)= p(M*)+ 1= LF∞(M). 6.3.5 TEOREMA: Seja M ≡ C[(λx1...λxn.P)Q1...Qn], onde (λx1...λxn.P)Q1...Qn é o segmento-α mais à esquerda de M. Se (λx1...λxn.P)Q1 é um K-redex então: (a) M* ≡ C*[(λx1.λx2...λxn.R)Q1*S2...Sn], onde (λx1.λx2...λxn.R)Q1*S2...Sn é o segmento-α mais à esquerda de M*; (b) M * ≡ M*  ≡ C*[(λx2...λxn.R)S2...Sn]; (c) p(M*) = p(M *) + p(Q1*) + 1. PROVA: Itens (a) e (b) Seja βM = M1,..., Ms a seqüência estrela para M. Provaremos os Itens (a) e (b) por indução em l(βM)= s. BASE: l(βM)= 1 Se l(βM)= 1, então M é termo estrela, e temos: 287 (i) M ≡ M*, C[ ] ≡ C*[ ], Qi ≡ Qi* (1 ≤ i ≤ n) e P ≡ P*. Logo, M* ≡ C*[(λx1...λxn.P*)Q1*...Qn*], onde (λx1...λxn.P*)Q1*...Qn* é o segmentoα mais à esquerda de M*. Assim, considerando R ≡ P* e Sj ≡ Qj* (2 ≤ j ≤ n) temos o caso básico do Item (a) resolvido. Pelo Lema 6.3.1 temos que M  é termo estrela. Logo: (ii) M  ≡ M *. (iii) Portanto: M * ≡ M ( )ii   ≡ M* ( )i  . Note que como, por hipótese do teorema, (λx1...λxn.P)Q1 é um K-redex, temos que M  ≡ C[(λx2...λxn.P)Q2...Qn]. Logo, por (iii) e (i) temos: M * ≡ M ( )ii   ≡ M* ( )i   ≡ C*[(λx2...λxn.P*)Q2*...Qn*]. Assim, considerando R ≡ P* e Sj ≡ Qj* (2 ≤ j ≤ n) temos o caso básico do Item (b) resolvido. PASSO: l(βM)> 1 HI: Se N é um termo cujo left-most redex é um K-redex e l(βN) < l(βM), então os Itens (a) e (b) do teorema valem para N. Note que como (λx1...λxn.P)Q1 é um K-redex temos : (i) M  ≡ C[(λx2...λxn.P)Q2...Qn]. (ii) É claro, pela Observação 6.2.11.1-(h) que l(βM•)< l(βM). Como M• é obtido de M pela multiplicação-* de T (M), vamos analisar todos os casos possíveis para T (M). CASO 1: T (M) ocorre em P Neste caso, pelo Teorema 6.3.2(a)(1) temos: (iii) M• ≡ C[(λx1...λxn.P •)Q1...Qn], onde: (λx1...λxn.P •)Q1...Qn é o left-most segmento-α de M •. (iv) Note que (λx1...λxn.P •)Q1 também é um K-redex, pois se x1 não ocorre livre em P, também não ocorre em P•. Assim, por (iii) e (iv) temos que: (v) M•  ≡ C[(λx2...λxn.P •)Q2...Qn]. Alem disso, pelo Teorema 6.3.2(a)(2) temos: (vi) M • ≡ C[(λx2...λxn.P •)Q2...Qn]. (vii) Logo, por (v) e (vi): M•  ≡ M •. Por (ii), (iii) e (iv) temos que vale para M• a hipótese indutiva. Logo 288 (viii) M•* ≡ C*[(λx1.λx2...λxn.R)Q1*S2...Sn] e M• * ≡ M•*  ≡ C*[(λx2...λxn.R)S2...Sn]. Mas, pela definição da seqüência estrela temos: (ix) M•* ≡ M*. (x) M •* ≡ M *. (xi) Então: M * ≡ ( M )x  •* ( M≡ )vii • * ( ) M≡ viii •*  ( ) M*≡ ix  . Assim, por (viii), (ix) e (xi) temos: M* ≡ C*[(λx1.λx2...λxn.R)Q1*S2...Sn] e M*  ≡ M * ≡ C*[(λx2...λxn.R)S2...Sn], o que resolve o Caso 1. CASO 2: T (M) ocorre em C[ ] A solução é análoga à do Caso 1, aplicando-se aqui o Teorema 6.3.2(b). CASO 3: T (M) ocorre em Qi (2 ≤ i ≤ n) A solução é análoga à do Caso 1, aplicando-se aqui o Teorema 6.3.2(c). CASO 4: T (M) ocorre em Q1 Neste caso, pelo Teorema 6.3.2(c)(1) temos: (xii) M• ≡ C[(λx1...λxn.P)Q1 •...Qn], onde: (λx1...λxn.P)Q1 •...Qn é o left-most segmento-α de M •. (xiii) Note que (λx1...λxn.P)Q1 • também é um K-redex. Assim, por (xii) e (xiii) temos que: (xiv) M•  ≡ C[(λx2...λxn.P)Q2...Qn]. (xv) Por (i) e (xiv) temos que M  ≡ M• . Por (ii), (xii) e (xiii) temos que vale para M• a hipótese indutiva. Logo: (xvi) M•* ≡ C*[(λx1.λx2...λxn.R)Q1 •*S2...Sn] e M• * ≡ M•*  ≡ C*[(λx2...λxn.R)S2...Sn]. Mas, pela definição da seqüência estrela temos: (xvii) M•* ≡ M*. (xviii) Q1 •* ≡ Q1*. (xix) Então: M * M≡ ( )xv • * M≡ ( )xvi •*  M*≡ (xvii)  . Assim, por (xvi), (xvii), (xviii) e (xix) temos: M* ≡ C*[(λx1.λx2...λxn.R)Q1*S2...Sn] e M*  ≡ M * ≡ C*[(λx2...λxn.R)S2...Sn], o que resolve o Caso 4. 289 CASO 5: T (M) é algum Qi (2 ≤ i ≤ n) A solução é análoga ao Caso 1, aplicando aqui o Teorema 6.3.2(d). Note que não ocorre o caso de T (M) ser Q1, pois (λx1...λxn.P)Q1 é um K-redex, ou seja, Q1 não é subtermo multiplicativo em M. Portanto todos os casos possíveis já foram tratados o que termina a prova dos Itens (a) e (b).   Item (c) Pelo Item (a) e Teorema 6.3.2-(e) temos: (xx) p(M*) = p(C*[ ]) + p(R) + n + p(Q1*) + p(SΣi n =2 i ). Pelo Item (b) e Teorema 6.3.2-(e) temos: (xxi) p(M *) = p(M* ) = p(C*[ ]) + p(R) + (n-1) + p(SΣ i n =2 i ). Logo, por (xx) e (xxi) temos: p(M*) = p(M *) + p(Q1*) + 1. ♦ As duas definições seguintes serão muito utilizadas para a caracterização de M* a partir de M quando o left-most redex de M é um I-redex. 6.3.6 DEFIN IÇÃO: Termo Limite (o equivalente de derivação limite) Seja M um termo, n> 0 um número natural e βM = M •0,..., M•s a seqüência estrela para M. Definimos o termo limite de M para n, e denotamos por M[n], como o termo M•i (0 ≤ i ≤ s) da seqüência βM tal que: (i) Se g(M) < n, então M[n] é M•0 ≡ M. (ii) Se g(M) ≥ n, então M[n] é o primeiro M•i de βM tal que: g(M •i) < n e g(M•i-1) ≥ n. 6.3.6.1 OBSERVAÇÕES: (a) Como, pelo Lema 6.2.15-(5), g(M•i) ≥ g(M•i+1) (1 ≤ i < s), o que a definição acima estabelece é que M[n] é o termo da seqüência βM de menor índice que tem grau máximo multiplicativo menor que n. 290 (b) Como g(M•s)= 0 (pois M•s é termo estrela) e, pelo Lema 6.2.15-(5), g(M•i) ≥ g(M•i+1) (0 ≤ i < s), então, para todo n > 0, temos que existe um M•i (0 ≤ i ≤ s) tal que M•i ≡ M[n]. (c) É claro, por propriedades da seqüência estrela, que βM[n]= M •0, ..., M•k ≡ M[n], a seqüência estrela limite de M para n é única, e para cada M e n existe um e apenas um M[n] associado. Além disso, se M[n] ≡ M•k e r ≤ k, então (M•r)[n] ≡ M[n]. 6.3.7 DEFIN IÇÃO: Subtermo Pesado Local Seja S ⊂ P[x/ Q] um subtermo pesado (SP) em P[x/ Q]. Dizemos que S é um subtermo pesado local a P em P[x/Q], e denotamos por SPL em P[x/ Q], se P tem a forma: P ≡ C[(λy1. ...λyn.N)B1...Bs-1RBs+1...Bn] e S ≡ R[x/ Q]. Neste caso, considerando a abreviação X  ≡ X[x/ Q] temos: P[x/ Q] ≡ C[(λy1. ...λyn.N)B1...Bs-1RBs+1...Bn][x/ Q] ≡ C [(λy1. ...λyn.N )B1 ...Bs -1R[x/ Q]Bs +1...Bn ]. No teorema seguinte provamos uma longa série de itens, com o objetivo principal de demonstrar que podemos reduzir o caso em que o left-most redex de M é um I-redex ao caso em que ele é um K-redex, para o qual, no Teorema 6.3.5, já apresentamos uma caracterização para M* e demonstramos propriedades sobre p(M*). Basicamente o resultado que interessa é apenas o Item (12), que demonstra que se M ≡ C[(λx1...λxn.P)Q1...Qn], onde (λx1...λxn.P)Q1 é o left-most redex de M e um I-redex, então M* ≡ M∆*, onde M∆ ≡ C[(λx1...λxn.P[x1/ Q1])y1Q2...Qn] obtido pela multiplicação estrela de Q1 em M. Note que em M∆, (λx1...λxn.P[x1/ Q1])y1 é o left-most redex e é um K-redex, pois y1 é variável nova. Todos os demais 11 itens do teorema abaixo só são úteis na medida em que são necessários para a prova do último. 6.3.8 TEOREMA: Seja M ≡ C[(λx1...λxn.P)Q1...Qn], onde: • (λx1...λxn.P)Q1...Qn é o segmento-α mais à esquerda em M, 291 • (λx1...λxn.P)Q1 é um I-redex e • grM(Q1)= k. Seja M∆ ≡ C[(λx1...λxn.P[x1/ Q1])y1Q2...Qn] obtido pela multiplicação estrela de Q1 em M. Considere também Pd ≡ P〈x1/ y1...ys〉 um termo obtido de P pela substituição das ocorrências livres de x1, da esquerda para a direita, respectivamente, pelas variáveis novas y1, ..., ys. Então: (1) M[k]-1 ≡ C[k][(λx1...λxn.P[k])Q1[k]...Qn[k]]. 55 (2) M[k] ≡ C[k][(λx1...λxn.P[k][x1/ Q1[k]])y1Q2[k]...Qn[k]]. (3) M∆[k] ≡ C[k][(λx1...λxn.(P[x1/ Q1])[k])y1Q2[k]...Qn[k]]. (4) g(P[x1/ Q1]) ≥ grM(Q1) ⇒ T (P[x1/ Q1]) é SPL(P[x1/ Q1]) ou T (P[x1/ Q1]) ⊂ Q1. (5) g(P) ≤ g(P[x1/ Q1]). (6) T (P[x1/ Q1]) é SPL(P[x1/ Q1]) ⇒ g(P)= g(P[x1/ Q1]). (7) T (P[x1/ Q1]) é SPL(P[x1/ Q1]) ⇒ (P[x1/ Q1]) • ≡ P•[x1/ Q1]. (8) P[x1/ Q1] ≡ Pd[y1/ Q1]...[ys/ Q1]. (9) P[k][x1/ Q1[k]] ≡ Pd[k][y1/ Q1[k]]...[ys/ Q1[k]]. (10) (P[x1/ Q1])[k] ≡ P[k][x1/ Q1[k]]. (11) M[k] ≡ M∆[k]. (12) M* ≡ M∆*. PROVA: Itens (1) e (2) (i) Seja M* ≡ M•s o último termo de βM. (ii) Considere M[k] ≡ M•m (0 ≤ m ≤ s). Como Q1 é SM em M, então g(M) ≥ grM(Q1)= k. Logo, por (ii) e pela Definição 6.3.6 de M[k] temos que m> 0. Portanto, por (ii) temos que: M[k]-1 ≡ M•m-1 está definido. Provaremos os Itens (1) e (2) por indução em m. BASE: m= 1 Neste caso temos: (iii) M[k]-1 M )ii( ≡ •m-1 ≡ M•0 ≡ M e M[k] ≡ M•. Mas se M[k] ≡ M•, pela Definição 6.3.6 temos que: 55 A notação M[k]-1 é uma abreviação para M•m-1 tal que M•m ≡ M[k]. 292 (iv) g(M•) < k = grM(Q1). (v) g(M•0) = g(M) ≥ k = grM(Q1). (vi) Logo, por (iv) e (v): g(M) > g(M•). (vii) Mas por (vi) e pelo Lema 6.2.15-(7): ng(M)= 1. Por (iv) e pelo Lema 6.3.4 temos: (viii) g(M)= grM(Q1). Mas, se g(M)= grM(Q1), ng(M)= 1 e Q1 é SM em M, então é claro que: (ix) Q1= T (M). Dessa forma, por (vii) e (ix) temos que nenhum outro SM de M além de Q1 tem grau maior ou igual a grM(Q1). Logo, pela forma de M temos: (x) g(C[ ]) < grM(Q1), g(P) < grM(Q1) e g(Qi) < grM(Q1) (1 ≤ i ≤ n). Assim, como grM(Q1) = k, por (x) e pela Definição 6.3.6 temos: (xi) C[k][ ] ≡ C[ ]; P[k] ≡ P e Qi[k] ≡ Qi (1 ≤ i ≤ n). Então, por (iii) e por (xi), temos: (xii) M[k]-1 ≡ M ≡ C[(λx1...λxn.P)Q1...Qn] C≡( )xi [k][(λx1...λxn.P[k])Q1[k]...Qn[k]]. Além disso, por (ix) e (xii) temos: (xiii) M[k] ≡ C[k][(λx1...λxn.P[k][x1/ Q1[k]])y1Q2[k]...Qn[k]]. Logo, por (xii) e (xiii) provamos o caso básico dos Itens (1) e (2). PASSO: (m > 1). HI: Se N é uma derivação com a forma de M e N[k] ≡ N•j com j < m, então os Itens (1) e (2) do teorema valem para N. Como m> 1 e M[k] ≡ M•m, então pela Definição 6.3.6 e Observação 6.3.6.1-(c) temos: (xiv) g(M) ≥ k e g(M•) ≥ k; (xv) M[k] ≡ (M•)[k] e M[k]-1 ≡ (M•)[k]-1. Dessa forma temos: (xvi) (M•)[k] M )xv( ≡ [k] M )ii( ≡ •m (M )e(1.11.2.6 ≡ •)•m-1. Como M• é obtido de M pela multiplicação-* de T (M), vamos analisar todos os casos possíveis para T (M). CASO 1: T (M) ocorre em P Neste caso, pelo Teorema 6.3.2(a)(1) temos: (xvii) M• ≡ C[(λx1...λxn.P •)Q1...Qn], onde: 293 (λx1...λxn.P •)Q1...Qn é o left-most segmento-α de M •. (xviii) Note que (λx1...λxn.P •)Q1 também é um I-redex, pois se x1 ocorre livre em P, também ocorre em P•. Por (xvi), (xvii) e (xviii) vale HI para M• e portanto: (xix) (M•)[k]-1 ≡ C[k][(λx1...λxn.(P •)[k])Q1[k]...Qn[k]]. (xx) (M•)[k] ≡ C[k][(λx1...λxn.(P •)[k][x1/ Q1[k]])y1Q2[k]...Qn[k]]. Mas se T (M) ocorre em P, é claro que g(P) = g(M) k, e portanto, pela Definição 6.3.6 P ≥ ( )xiv [k] ≡ P•j tal que j ≥ 1. Portanto, pela Observação 6.3.6.1-(c) temos: (xxi) (P•)[k] ≡ P[k]. Assim, por (xv) (xix), (xx) e (xxi) temos: M[k]-1 ≡ (M•)[k]-1 ≡ C[k][(λx1...λxn.P[k])Q1[k]...Qn[k]]. M[k] ≡ (M•)[k] ≡ C[k][(λx1...λxn. P[k][x1/ Q1[k]])y1Q2[k]...Qn[k]]. E com isso resolvemos o Caso 1. CASO 2: T (M) ocorre em C[ ] A solução é análoga à do Caso 1, aplicando-se aqui o Teorema 6.3.2(b). CASO 3: T (M) ocorre em Qi (1 ≤ i ≤ n) A solução é análoga à do Caso 1, aplicando-se aqui o Teorema 6.3.2(c). CASO 4: T (M) é algum Qi Note que como Q1 é SM em M, o único dentre os Qis de M que pode ser T (M) é Q1, pois, pelo Lema 6.2.13, gr(Qi)> gr(Qj) (1 ≤ i< j ≤ n). Então T (M)= Q1. Como (λx1...λxn.P)Q1...Qn é o left-most segmento-α de M e Q1= T (M), então ng(M)= 1, pois caso contrário existiria algum subtermo R, SM em M, com grM(R)= grM(Q1) e com o λ de R ocorrendo à direita do λ de Q1. Mas isso seria um absurdo, de acordo com a Observação 6.2.9.1-(b), pois Q1 é T (M). Dessa forma, como ng(M)= 1 e T (M)= Q1, temos que nenhum outro SM de M além de Q1 tem grau maior ou igual a grM(Q1). Logo, pela forma de M temos: (xxii) g(C[ ]) < grM(Q1), g(P) < grM(Q1) e g(Qi) < grM(Q1) (1 ≤ i ≤ n). Assim, por (xxiv), como grM(Q1)= k, pela Definição 6.3.6 temos: (xxiii) C[k][ ] ≡ C[ ]; P[k] ≡ P e Qi[k] ≡ Qi (1 ≤ i ≤ n). Alem disso, como T (M)= Q1 temos que: (xxiv) g(M) = g(M•0) = grM(Q1) = k. 294 Como ng(M)= 1, por (xxiv) e pelo Lema 6.2.15-(6) temos: (xxv) g(M•) < g(M) = k. Logo, por (xxiv), (xxv) e pela Definição 6.3.6 temos: (xxvi) M[k] ≡ M•, e portanto, M[k]-1 ≡ M•0 ≡ M. Mas como T (M) = Q1 temos: (xxvii) M• ≡ C[(λx1...λxn.P[x1/ Q1])y1Q2...Qn]. Assim, como M ≡ C[(λx1...λxn.P)Q1...Qn], por (xxiii), (xxvi) e (xxvii) temos: M[k]-1 ≡ C[k][(λx1...λxn.P[k])Q1[k]...Qn[k]] e M[k] ≡ C[k][(λx1...λxn.P[k][x1/ Q1[k]])y1Q2[k]...Qn[k]]. E com isso resolvemos o Caso 4 e os Itens (1) e (2) do teorema.   Item (3) (i) Considere M∆[k] ≡ M •j. Provaremos o Item (3) por indução em j. BASE: (j= 0) ⇒ M∆[k] ≡ M∆ •0 ≡ M∆ Neste caso, pela Definição 6.3.6 temos: (ii) g(M∆[k]) < k. Logo, por (ii), todos os subtermos de M∆[k] têm grau máximo menor que k. (iii) Portanto: g(C[ ]) < k, g(P[x1/ Q1]) < k e g(Qi) < k (1 ≤ i ≤ n). Portanto, pela Definição 6.3.6 e (iii) temos: (iv) C[k][ ] ≡ C[ ]; (P[x1/ Q1])[k] ≡ P[x1/ Q1] e Qi[k] ≡ Qi (1 ≤ i ≤ n). Assim, por (iv), pela hipótese do caso básico (j= 0) e pela forma de M∆ temos: M∆[k] ≡ M∆ ≡ C[k][(λx1...λxn.(P[x1/ Q1])[k])y1Q2[k]...Qn[k]]. PASSO: j> 0 HI: Se N é uma derivação com a forma de M∆ e N[k] ≡ N •i, com i < j, então o Item (3) do teorema vale para N. Se j> 0, pela Definição 6.3.6 temos que: (v) g(M ≥ k e M ≡ M∆ i> 0. ∆) ∆[k] •i tal que Logo, por (v) e pela Observação 6.3.6.1-(c) temos: 295 (vi) M∆[k] ≡ (M∆ •)[k]. Dessa forma temos: (vii) (M∆ •)[k] M )vi( ≡ ∆ [k] M )i( ≡ ∆ •j (M )e(1.11.2.6 ≡ ∆ •)•j-1. Como M∆ • é obtido de M∆ pela multiplicação-* de T (M∆), vamos analisar todos os casos possíveis para T (M∆). CASO 1: T (M∆) ocorre em P[x1/ Q1] Neste caso, pelo Teorema 6.3.2(a)(1) temos: (viii) M∆ • ≡ C[(λx1...λxn.(P[x1/ Q1]) •)y1Q2...Qn], onde: (λx1...λxn.(P[x1/ Q1]) •)y1Q2...Qn é o left-most segmento-α de M∆ •. Por (vii) e (viii) temos que vale HI para M∆ •. Logo: (ix) (M∆ •)[k] ≡ C[k][(λx1...λxn.((P[x1/ Q1]) •)[k])y1Q2[k]...Qn[k]]. Mas se T (M∆) ocorre em P[x1/ Q1], é claro que g(P[x1/ Q1]) = g(M∆) k. )v(≥ (x) Logo, pela Observação 6.3.6.1-(c), ((P[x/ Q1]) •)[k] ≡ (P[x/ Q1])[k]. Assim, por (vi), (ix) e (x) temos: M∆[k] ≡ C[k][(λx1...λxn.(P[x/ Q1])[k])y1Q2[k]...Qn[k]]. E com isso resolvemos o Caso 1. CASO 2: T (M∆) ocorre em C[ ] A solução é análoga à do Caso 1, aplicando-se aqui o Teorema 6.3.2(b). CASO 3: T (M∆) ocorre em Qi (1< i ≤ n) A solução é análoga à do Caso 1, aplicando-se aqui o Teorema 6.3.2(c). Note que o caso em que T (M∆)⊂Q1 já foi tratado no Caso 1 (T (M∆)⊂P[x1/ Q1]). CASO 4: T (M∆) é algum Qi (2 ≤ i ≤ n) Pela forma de M∆ e pelo Lema 6.2.13 temos: (xi) grM(Qj)> grM(Qj+1) (1 ≤ j < n). Como M∆ foi obtido de M pela multiplicação-* de Q1, pelo Lema 6.2.15-(1) temos: (xii) grM∆(Qi)= grM(Qi) (2 ≤ i ≤ n). (xiii) Logo, por (xi) e (xii) temos: k= grM(Q1)> grM∆(Qi) (2 ≤ i ≤ n). Assim, como por hipótese do caso T (M∆) é algum Qi (2 ≤ i ≤ n), por (xiii) temos: (xiv) g(M∆)= grM∆(Qi) k (para algum 2 ≤ i ≤ n). )xiii( < Logo, por (xiv) e pela Definição 6.3.6 temos que M ≡ M•0 ≡ M∆, e portanto o Caso 4 se resolve exatamente como o caso básico.   ∆ [k] ∆ 296 Item (4) Seja S= T (P[x1/ Q1]). Pelo Lema 6.2.14 existe R ⊂ P / S é resíduo-* de R. Temos duas possibilidades para R: ou R é SM em M, ou R não é SM em M. Se R não é SM em M, pelo Lema 6.2.15-(2) temos: grM∆(S)= grP[x1/Q1](S)= g(P[x1/ Q1])< grM(Q1). O que é um absurdo, pois por hipótese do caso g(P[x1/ Q1]) ≥ grM(Q1). (i) Portanto, R é SM em M. Mas pela Definição 6.2.12 de resíduo-*, se algum resíduo-* de R ocorre em P[x1/ Q1], então todas as possibilidades para R com relação a P são: (ii) R ⊂ P, R ≡ Q1 ou R ⊂ Q1. Analisemos cada caso: CASO 1: R ⊂ P Como, por (i), R é SM em M, temos que: (iii) P ≡ C1[(λy1...λyt.N)B1...Bs-1RBs+1...Bt] e P[x1/ Q1] ≡ C1[(λy1...λyt.N)B1...Bs-1RBs+1...Bt][x1/ Q1] ≡ C1  [(λy1...λyt.N )B1 ...Bs -1R[x1/ Q1]Bs +1...Bt ], onde: X  ≡ X[x1/ Q1]. (iv) Note, por (iii) e pela Definição 6.2.12 que S ≡ (R)1 ≡ R[x1/ Q1]. Portanto, por (iii), (iv) e pela Definição 6.3.7, S= T (P[x1/ Q1]) é SPL em P[x1/ Q1]. CASO 2: R ≡ Q (v) P ≡ C λy λy N)B B x Bt]. 1 Se R≡Q1 e S= T (P[x1/ Q1]) é resíduo-* de R (S≡(Q1)k), então, para alguma ocorrência livre de x1 em P temos: 1[( 1... t. 1... s-1 1 Bs+1... P[x1/ Q1] ≡ C1[(λy1...λyt.N)B1...Bs-1 x1 Bs+1...Bt][x1/ Q1] ≡ C1  [(λy1...λyt.N )B1 ...Bs -1 x1[x1/ Q1] Bs +1...Bt ] ≡ C1  [(λy1. ...λyt.N )B1 ...Bs -1 Q1 Bs +1...Bt ] ≡ C1  [(λy1. ...λyt.N )B1 ...Bs -1 (Q1)k Bs +1...Bt ], onde: X  ≡ X[x1/ Q1]. Note, por (v) e pela Definição 6.3.7, que T (P[x1/ Q1])= S ≡ (Q1)k ≡ x1[x1/ Q1] é SPL em P[x1/ Q1]. 297 CASO 3: R ⊂ Q1 Neste caso, é trivial pela Definição 6.2.12 de resíduo-* que, se S é resísuo-* de R, então S= T (P[x1/ Q1]) ocorre em alguma cópia de Q1, ou seja, T (P[x1/ Q1]) ⊂ Q1.   Item (5) Seja R= T (P). Temos que P tem a forma: (i) P ≡ C1[(λy1...λyt.N)B1...Bs-1RBs+1...Bt]. É claro, por (i) que: (ii) P[x1/ Q1] ≡ C1[(λy1...λyt.N)B1...Bs-1RBs+1...Bt][x1/ Q1] ≡ C1  [(λy1...λyt.N )B1 ...Bs -1R[x1/ Q1]Bs +1...Bt ], onde: X  ≡ X[x1/ Q1]. Como R= T (P) é SM em P, então ys ocorre livre em N, e também em N , logo, por (ii) temos: (iii)R[x Q SM em P[x Q 1/ 1] é 1/ 1]. Como lτ(λys...λyt.N)= lτ(λys...λyt.N  ), então, g(P)= grP(R)= grP[x1/Q1](R[x1/ Q1]), portanto, por (iii), existe um SM em P[x1/ Q1] com grau igual a g(P). Logo, g(P) ≤ g(P[x1/ Q1]).   Itens (6) e (7) Se T (P[x1/ Q1]) é SPL em P[x1/ Q1], então, pela Definição 6.3.7 temos: (i) P ≡ C1[(λy1...λyt.N)S1...Ss-1RSs+1...St]. (ii) P[x1/ Q1] ≡ C1[(λy1...λyt.N)S1...Ss-1RSs+1...St][x1/ Q1] ≡ C1 [(λy1...λyt.N )S1 ...Ss -1R[x1/ Q1]Ss +1...St ], onde X  ≡ X[x1/ Q1] e R[x1/ Q1]= T (P[x1/ Q1]). Note, por (i) e (ii), que se R[x1/ Q1] é SM em P[x1/ Q1], então R é SM em P. 56 Além disso, também por (i) e (ii) é claro que: (iii) g(P) ≥ grP(R)= grP[x1/Q1](R[x1/ Q1])= g(P[x1/ Q1]). Como, pelo Item (5), g(P) ≤ g(P[x1/ Q1]), então, por (iii) temos: (iv) g(P)= grP(R)= g(P[x1/ Q1]) (o que prova o Item (6)). 56 A convenção de variáveis proíbe que exista ys livre em Q1, portanto, se R[x1/ Q1] é SM em P[x1/ Q1] é porque ys ocorre livre em N, e portanto, R é SM em P. 298 Para provar o Item (7) vamos inicialmente provar que R= T (P). Suponha que R não é T (P). Então, por (iv) e pela Definição 6.2.9, existe S ⊂ P tal que o λ de S ocorre à esquerda do λ de R em P e grP(S)= grP(R). (v) Mas pela Definição 6.3.7, tal S define um S[x1/ Q1] que é SPL em P[x1/ Q1], cujo λ ocorre à esquerda do λ de R[x1/ Q1] e grP[x1/Q1](S[x1/ Q1])= grP(S). Neste caso, por (v) e pela Definição 6.2.9, R[x1/ Q1] não poderia ser T (P[x1/ Q1]), o que por (ii) é um absurdo. Portanto R= T (P) e: (vi) P• ≡ C1[(λy1. ...λyt.N[ys/ R])S1...Ss-1 ys Ss+1...St]. Logo, por (ii) e (vi) temos: (P[x1/ Q1]) • C )ii( ≡ 1  [(λy1. ...λyt.N[x1/ Q1][ys/ R[x1/ Q1]])S1 ...Ss -1 ys Ss +1...St ] C )4.2.4( ≡ 1  [(λy1. ...λyt.N[ys/ R][x1/ Q1])S1 ...Ss -1 ys Ss +1...St ] ≡ C1[(λy1. ...λyt.N[ys/ R])S1...Ss-1 ys Ss+1...St][x1/ Q1] P )vi( ≡ •[x1/ Q1].   Item (8) Imediato pela definição de Pd.   Item (9) Assumindo a convenção de variáveis, esta prova também é imediata. Em P →* P[k] e P →* P[k], nenhuma variável livre de P (P ) foi eliminada ou tornou-se ligada. Como a única diferença entre P e P são nomes de variáveis livres, então a única diferença entre P e P são os nomes dos resíduos destas mesmas variáveis, que continuam sendo variáveis livres. Substituindo todas elas pelos mesmos termos obtemos termos idênticos.   o [k] [k] d o d d d d Item (10) Considere R ≡ P[x / Q ] ⊂ M e seja R ≡ R . 1 1 ∆ [k] •j Provaremos o item por indução em j. : j= 0 BASE Neste caso, pela Definição 6.3.6 temos: (i) (P[x / Q ]) ≡ (P[x / Q ]) ≡ P[x / Q ] e 1 1 [k] •0 1 1 1 1 299 (ii) g(P[x / Q ])< k. 1 1 Como Q1 é subtermo de P[x1/ Q1], por (ii): g(Q1) ≤ g(P[x1/ Q1])< k. Logo, pela Definição 6.3.6 também temos: (iii) Q1[k] ≡ Q1 •0 ≡ Q1. Mas por (ii) e pelo Item (5) temos g(P) ≤ g(P[x1/ Q1])< k. Logo: (iv) P[k] ≡ P•0 ≡ P. Assim, por (i), (iii) e (iv) temos: (P[x1/ Q1])[k] ≡ P[x1/ Q1] ≡ P[k][x1/ Q1[k]]. PASSO: j> 0 HI: Se S tem a forma: S ≡ N[y/ B] tal que S[k] ≡ S•q e q< j, então vale o Item (10) para S. Como j> 0, pela Definição 6.3.6 temos que: (v) g(R)= g(P[x1/ Q1]) ≥ k. Logo, por (v) e pela Observação 6.3.6.1-(c) temos: (vi) (P[x1/ Q1])[k] ≡ ((P[x1/ Q1]) •)[k]. Dessa forma temos: (vii) ((P[x1/ Q1]) •)[k] (P[x )vi( ≡ 1/ Q1])[k] (P[xhip≡ 1/ Q1]) •j ((P[x )e(1.11.2.6 ≡ 1/ Q1]) •)•j-1. Por (v) e pelo Item (4) deste teorema, T (P[x1/ Q1]) é SPL em P[x1/ Q1] ou está contido em alguma ocorrência de Q1. Analisemos cada um destes casos. CASO 1: T (P[x1/ Q1]) é SPL em P[x1/ Q1] Neste caso, pelo Item (7) temos: (viii) R• ≡ (P[x1/ Q1]) • ≡ P•[x1/ Q1]. Por (vii) e (viii) vale HI em R•. Portanto: (ix) ((P[x1/ Q1]) •)[k] (P )viii( ≡ •[x1/ Q1])[k] (P)HI(≡ •)[k][x1/ Q1[k]]. Pela hipótese do caso, pelo Item (6) e por (v) temos g(P)= g(P[x1/ Q1]) ≥ k. Logo, pela Definição 6.3.6 e Observação 6.3.6.1-(c): (x) (P•)[k] ≡ P[k]. Portanto, por (vi), (ix) e (x), temos: (P[x1/ Q1])[k] ((P[x)vi(≡ 1/ Q1]) •)[k] (P•) )ix( ≡ [k][x1/ Q1[k]] P)x(≡ [k][x1/ Q1[k]]. CASO 2: T (P[x1/ Q1]) ⊂ Q1 Pelo Item (8): 300 (xi) P[x1/ Q1] ≡ Pd[y1/ Q1]...[ys/ Q1]. (xii) É claro, pela hipótese do caso e pela Definição 6.2.9 de subtermo estrela, que T (P[x1/ Q1]) está na ocorrência de Q1 mais à direita em P[x1/ Q1]. Assim, por (xi) e (xii) temos: (xiii) R• ≡ (P[x1/ Q1]) • ≡ (Pd[y1/ Q1]...[ys-1/ Q1])[ys/ Q1 •]. Por (vii) e (xiii) vale HI em R•. Portanto: (xiv) ((P[x1/ Q1]) •)[k] ((P )xiii( ≡ d[y1/ Q1]...[ys-1/ Q1])[ys/ Q1 •])[k] (P )HI( ≡ d[y1/ Q1]...[ys-1/ Q1])[k][ys/ (Q1 •)[k]]). Como, por hipótese do caso, T (P[x1/ Q1]) ⊂ Q1, g(Q1)= g(P[x1/ Q1]) k e portanto, pela Observação 6.3.6.1-(3) temos: )v( ≥ (xv) (Q1 •)[k] ≡ Q1[k]. Logo, por (vi), (xiv) e (xv) temos: (xvi) (P[x1/ Q1])[k] )vi(≡ ((P[x1/ Q1]) •)[k] (P )xiv( ≡ d[y1/ Q1]...[ys-1/ Q1])[k][ys/ (Q1 •)[k]]) (P )xv( ≡ d[y1/ Q1]...[ys-1/ Q1])[k][ys/ Q1[k]]. Assumindo ((P[x1/ Q1]) •)[k] ≡ ((P[x1/ Q1]) •)•p, (Pd[y1/ Q1]...[ys-1/ Q1])[k] ≡ (Pd[y1/ Q1]...[ys-1/ Q1]) •q e (Q1 •)[k] ≡ (Q1 •)•r, então por (xvi) temos que: (xvii) (P[x Q ≡ (P y Q y Q ≡ (P y Q y Q y Q (xviii) (P[x Q [k] ≡ (P y Q y Q [k][y Q[k]]) ≡ P y Q y Q y Q 1/ 1]) •p+1 d[ 1/ 1]...[ s/ 1]) •P+1 d[ 1/ 1]...[ s-1/ 1]) •q[ s/ 1 •r+1]. Por (xvii) é claro que q< p+ 1, pois o que (xvii) diz é que para efetuar todos os p+ 1 passos da seqüência estrela limite aplicada a P[x1/ Q1] é necessário efetuar q passos da seqüência para (Pd[y1/ Q1]...[ys-1/ Q1]) além dos r+ 1 passos da seqüência de Q1. Como r+ 1 ≥ 1, é claro que p+ 1> q, e portanto vale HI para (Pd[y1/ Q1]...[ys-1/ Q1]) e temos: (Pd[y1/ Q1]...[ys-1/ Q1])[k] ≡ (Pd[y1/ Q1]...[ys-2/ Q1])[k][ys-1/ Q1[k]]. Assim, através de s-1 aplicações de HI temos: 1/ 1]) d[ 1/ 1]...[ s-1/ 1]) s/ 1 ≡ (Pd[y1/ Q1]...[ys-2/ Q1])[k][ys-1/ Q1[k]][ys/ Q1[k]]) M d [k][ 1/ 1[k]]...[ s-1/ 1[k]][ s/ 1[k]]. Por outro lado, por (xi) e pelo Item (9) temos: 301 (xix) P[k][x1/ Q1[k]] ≡ Pd[k][y1/ Q1[k]]...[ys-1/ Q1[k]][ys/ Q1[k]]. Portanto, por (xviii) e (xix) temos: (P[x1/ Q1])[k] ≡ P[k][x1/ Q1[k]].   Item (11) (i) Pelo Item (2) temos: M ≡ C λx λx P x Q y Q [k] [k][( 1... n. [k][ 1/ 1[k]]) 1Q2[k]... n[k]]. (ii) Pelo Item (3) temos: M∆[k] ≡ C[k][(λx1...λxn.(P[x1/ Q1])[k])y1Q2[k]...Qn[k]]. (iii) Pelo Item (10) temos: P[k][x1/ Q1[k]] ≡ (P[x1/ Q1])[k]. Logo, por (i), (ii) e (iii) temos: M[k] ≡ M∆[k].   Item (12) Pelo Item (11) temos que M[k] ≡ M∆[k]. Logo, pela unicidade da seqüência estrela: (i) (M[k])* ≡ (M∆[k])*. Mas, como M[k] pertence à seqüência estrela de M e M∆[k] pertence à seqüência estrela de M∆, então pela unicidade da seqüência estrela temos: (ii) M* ≡ (M[k])* e M∆* ≡ (M∆[k])*. Portanto: M* ≡ (M ( )ii [k])* ≡ (M ( )i ∆ [k])* ≡ M∆*. ♦ ( )ii No teorema seguinte provamos que existe uma seqüência de redução específica para a qual o(M) diminui com as reduções: a seqüência obtida da estratégia perpétua. Obteremos como corolário deste teorema que o(M)= LF∞(M). 6.3.9 TEOREMA: M → M° ⇒ o(M)= o(M°)+ 1. PROVA: De acordo com a Observação 4.4.5.1, estamos considerando M°= F∞(M). Provaremos por indução em p(M*), onde M* é o último termo da seqüência estrela para M. BASE: p(M*)= 0 Neste caso M é normal, logo M° não está definido e portanto o resultado é válido por vacuidade. PASSO: p(M*)> 0 302 H.I.: p(N*)< p(M*) ⇒ o(N)= o(N°)+ 1. (i) Seja M ≡ C[(λx1...λxn.P)Q1...Qn], onde: (λx1...λxn.P)Q1...Qn é o left-most segmento-α de M. Temos dois casos possíveis conforme (λx1...λxn.P)Q1 seja um K-redex ou um I-redex. Analisemos cada um deles: CASO 1: (λx1...λxn.P)Q1 é um K-redex Neste caso, por (i) temos: (ii) M  ≡ C[(λx2...λxn.P)Q2...Qn]. Neste caso, pelo Teorema 6.3.5 temos: (iii) M* ≡ C*[(λx1...λxn.R)Q1*S2...Sn], onde (λx1...λxn.R)Q1*S2...Sn é o left-most segmento-α de M. (iv) M * ≡ M*  ≡ C*[(λx2...λxn.R)S2...Sn]. (v) p(M*)= p(M *)+ p(Q1*)+ 1. Por (i) e pela Definição de F∞ temos duas possibilidades possíveis para M°, dependendo se Q1 é ou não termo normal. Analisemos cada caso: SubCaso 1.1: Q1 é termo normal Neste caso, por (i) e pela Definição 4.4.5 da estratégia perpétua, temos: (vi) M° ≡ C[(λx2...λxn.P)Q2...Qn]. (vii) Note por (ii) e (vi) que M° ≡ M . Além disso, como Q1 é normal, p(Q1)= 0 e Q1 ≡ Q1*. Logo: (viii) p(Q1*)= 0. Portanto, por (v), (vii) e (viii) temos: p(M*)= p(M°*)+ 1 o(M)= o(M°)+ 1. )20.2.6( ⇒ SubCaso 1.2: Q1 não é termo normal Neste caso, por (i) e pela Definição 4.4.5 da estratégia perpétua, temos: (ix) M° ≡ C[(λx1...λxn.P)Q1°Q2...Qn], onde (λx1...λxn.P)Q1°Q2...Qn é o left-most segmento-α de M°. (x) Por (ix) e pelo Lema 6.3.5-(c): p(M°*)= p(M° *)+ p(Q1°*)+ 1. Como (λx1...λxn.P)Q1 é K-redex, então (λx1...λxn.P)Q1° também o é. Logo, por (ix): (xi) M°  ≡ C[(λx2...λxn.P)Q2...Qn]. (xii) Note, por (ii) e (xi) que M  ≡ M° . 303 Por (v) temos que p(Q1*)< p(M*), portanto vale HI para Q1. Logo: (xiii) o(Q1)= o(Q1°)+ 1 e p(Q1*)= p(Q1°*)+ 1. (xiv) Por (x) e (xii): p(M°*)= p(M *)+ p(Q1°*)+ 1. Logo, por (v), (xiii) e (xiv) temos: p(M*)= p(M°*)+ 1 o(M)= o(M°)+ 1. )20.2.6( ⇒ CASO 2: (λx1...λxn.P)Q1 é um I-redex Neste caso, por (i) e pela Definição da estratégia perpétua, temos: (xv) M° ≡ C[(λx1...λxn.P[x1/ Q1])Q2...Qn]. Seja M∆ obtida de M pela multiplicação-* de Q1. Então: (xvi) M∆ ≡ C[(λx1...λxn.P[x1/ Q1])y1Q2...Qn], onde (λx1...λxn.P[x1/ Q1])y1Q2...Qn é o left-most segmento-α de M∆. Por (i), (xvi) e pelo Teorema 6.3.8-(12) temos: (xvii) M* ≡ M∆*. Note, por (xvi), que como y1 é variável nova, então (λx1...λxn.P[x1/ Q1])y1 é K-redex. Além disso, como y1 é normal, então, M∆ satisfaz as condições do Subcaso 1.1 acima. Portanto temos: (xviii) p(M∆*)= p(M∆°*)+ 1. Além disso, como (λx1...λxn.P[x1/ Q1])y1 é K-redex e y1 é normal, pela Definição 4.4.5 temos: (xix) M∆° ≡ C[(λx1...λxn.P[x1/ Q1])Q2...Qn] M°. )xv(≡ Assim, por (xvii), (xviii) e (xix) temos: p(M*)= p(M°*)+ 1 o(M)= o(M°)+ 1. ♦ )20.2.6( ⇒ Finalmente obteremos agora a finitude da estratégia perpétua, igualando-a a o(M). 6.3.10 TEOREMA: A pior estratégia de redução aplicada a um λ⊃-termo M gera uma seqüência de redução finita cujo comprimento é idêntico a o(M) LF∞(M) = o(M)< ω. PROVA: Indução em o(M). 304 BASE: o(M)= 1 o(M)= 1 ⇒ p(M*)= 0 ⇒ M é normal ⇒ LF∞(M)= 1. Portanto, o(M)= LF∞(M). PASSO: HI: o(N)< o(M) ⇒ o(N)= LF∞(N). Pelo Teorema 6.3.9 temos: (i) o(M)= o(M°)+ 1. Por (i) vale HI em M°, e portanto: (ii) o(M°)= LF∞(M°). Logo, como pelo Teorema 6.2.20 o(M°)< ω, temos, por (ii), que LF∞(M°)< ω e, portanto, como definimos F∞(M)= M°, é claro que: (iii) LF∞(M)= LF∞(M°)+ 1. (iv) Assim, por (i), (ii) e (iii) temos: LF∞(M)= o(M) ω. ♦ 20.2.6 < Como conseqüência do resultado anterior e do Teorema 6.2.20, onde provamos que o(M)< ω para todo λ⊃-termo M, obtemos o resultado abaixo, que estabelece que o(M) é ordinal natural em λ⊃. 6.3.11 TEOREMA: Ordinal N atural Para todo λ⊃-termo M temos: (a) o(M)< ω; (b) M → M' ⇒ o(M)> o(M'). PROVA: (i) No Teorema 6.2.20 provamos que ∀M, o(M)< ω. (ii) No Teorema 6.3.10 acima provamos que o(M)= LF∞(M). No Teorema 6.1.2 provamos que: (iii) LF∞(M)< ω ⇒ (M → M' ⇒ LF∞(M)> LF∞(M')). Logo, por (i), (ii) e (iii) temos: ∀M[ o(M)< ω e (M → M' ⇒ o(M)> o(M'))]. ♦ 305 Como conseqüência direta do fato de λ⊃ possuir um ordinal natural, obtemos de maneira simples, no teorema abaixo, a normalização forte para λ⊃. 6.3.12 TEOREMA: N ormalização forte Para todo λ⊃-termo M temos: h(M) ≤ o(M)< ω. PROVA: Indução em o(M). BASE: o(M)= 1 o(M)= 1 ⇒ p(M*)= 0 ⇒ M é normal ⇒ h(M)= 1. Logo h(M) ≤ o(M). PASSO: o(M)> 1 HI: o(N)< o(M) ⇒ h(N) ≤ o(N). (i) Seja μ = M ≡ M0 → M1→ M2 →... a mais comprida seqüência de redução para M. (ii) É claro que h(M)= l(μ). (iii) Consideremos também μ1= M1→ M2 →... a seqüência obtida de μ desconsiderando-se seu primeiro termo. É claro que μ1 é a mais comprida seqüência de redução para M1 e: (iv)h(M1)= l(μ1). Mas pelo Teorema 6.3.11, como M → M1 temos que: (v) o(M1)< o(M). Logo, por (iii), vale HI em M1, e portanto: (vi) h(M1) ≤ o(M1). Assim, por (vi) e (iv) temos: (vii) l(μ1) ≤ o(M1). Como o(M1)< ω, por (iii) e (vii) é claro que l(μ)< ω e portanto: (viii) l(μ)= l(μ1)+ 1. Portanto temos: h(M) l(μ) l(μ )ii( = )viii( = 1)+ 1 o(M)vii(≤ 1)+ 1 o(M)+ 1 ⇒ h(M) ≤ o(M) ω. ♦ )v(< 20.2.6 < Como conseqüência imediata dos Teoremas 6.3.10 e 6.3.12 provamos agora que o(M) é o menor ordinal natural para λ⊃. 306 6.3.13 TEOREMA: Menor Ordinal N atural Para todo λ⊃-termo M temos: o(M)= h(M). PROVA: Pelo Teorema 6.3.10 temos que o(M)= LF∞(M). Mas como LF∞(M) é o comprimento de uma seqüência de redução específica, então é claro que: (i) o(M) ≤ h(M). Mas pelo Teorema 6.3.12 temos: (ii) o(M) ≥ h(M). Logo, por (i) e (ii): o(M)= h(M). ♦ Para terminar, apresentamos um resultado extra que obtemos como conseqüência de todo o desenvolvimento deste capítulo: o Teorema de Church-Rosser de unicidade da forma normal. 6.3.14 TEOREMA: Church-Rosser - U nicidade da Forma N ormal Todas as seqüências de redução para cada λ⊃-termo terminam no mesmo termo normal. PROVA: Seja μ = M ≡ M1→M2→...→Mn uma seqüência de redução qualquer para M. Pelo Teorema 6.3.12 temos que n< ω e Mn é termo normal. Para provar o teorema provaremos que Mn ≡ M P, onde MP é, como definido em 4.4.5.1-(f), o último termo da pior seqüência de redução para M. Provar que Mn ≡ M P garante a unicidade da forma normal porque, uma vez que μ é uma seqüência de redução qualquer, provando que Mn ≡ M P estamos provando que toda seqüência de redução para M termina no mesmo termo que a pior seqüência de redução para M termina. Logo, todas as seqüências de redução para M terminam no mesmo termo e, portanto, a forma normal para M é única. Provaremos que Mn ≡ M P por indução em l(μ)= n. BASE: l(μ)= n= 1 Neste caso: (i) Mn ≡ M1 ≡ M. 307 Logo, M é normal e portanto: (ii) MP ≡ M. Assim, por (i) e (ii) temos: Mn ≡ M P. PASSO: l(μ)= n> 1 Considere M2 de μ e μ2 ≡ M2 → ...→ Mn. É claro que l(μ2)< l(μ) e portanto vale HI para M2. Então temos: (iii) Mn ≡ M2 P. Mas como M → M2, pelo Teorema 6.1.2-(2) temos que existem j,k< ω tais que: (iv) M2° ≡ M° j k. Por (iv) e pelas Observações 4.4.5.1-(g) e (h) temos, respectivamente: (v) (M2°j) P ≡ M2 P e (M°k)P ≡ MP; (vi) (M2°j) P ≡ (M°k)P. Portanto: Mn M)iii(≡ 2 P (M2°)v(≡ j)P (M° )vi( ≡ k)P M )v( ≡ P. ♦ Com o teorema acima terminamos os nossos resultados para o sistema λ⊃. Antes de passarmos à seção seguinte apresentaremos dois resultados interessantes para o cálculo lambda livre de tipos, que também são conseqüências do desenvolvimento que acabamos de apresentar. 6.3.15 Dois Resultados sobre o Cálculo Lambda Livre de Tipos Se prestarmos atenção na prova do Teorema 6.1.2, e na prova de todos os resultados que ali utilizamos, veremos que em nenhum momento fazemos uso da noção de tipos. Isto significa que o Teorema 6.1.2 também é válido para o cálculo lambda livre de tipos. Como conseqüência deste fato conseguimos provas simples dos seguintes resultados: 6.3.15.1 TEOREMA: Church-Rosser para Cálculo Lambda Livre de Tipos Se M é um termo fortemente normalizável do cálculo lambda livre de tipos, então a forma normal para M é única. PROVA: Basta observarmos que a prova do Teorema 6.3.14 independe dos tipos. ♦ 308 Barendregt provou que, para todo termo M que não é fortemente normalizável em cálculo lambda livre de tipos, a seqüência de redução obtida da estratégia perpétua não é finita. Ou seja, se h(M) não é finito, então LF∞(M) também não é. No teorema seguinte provaremos que se M é fortemente normalizável, o comprimento da seqüência obtida da estratégia perpétua é igual a altura da árvore de redução para M. 6.3.15.2 TEOREMA: LF∞(M)= h(M) h(M)< ω ⇒ LF∞(M)= h(M), para todo termo M do cálculo-λ livre de tipos. PROVA: Indução em LF∞(M). BASE: LF∞(M)= 1 LF∞(M)= 1 ⇒ M é normal ⇒ h(M)= 1. PASSO: LF∞(M)> 1 HI: Se N é tal que LF∞(N)< LF∞(M), então h(N)= LF∞(N). Como LF∞(M) é o comprimento de uma seqüência de redução específica para M, é claro que: (i) LF∞(M) ≤ h(M)< ω. Seja μ = M ≡ M0 → M1→ M2 →... uma seqüência de redução para M tal que: (ii) l(μ)= h(M)< ω. Consideremos também μ1= M1→ M2 →... a seqüência obtida de μ desconsiderandose seu primeiro termo. É claro, por (ii), que: (iii) h(M1)= l(μ1) e (iv) h(M)= h(M1)+ 1. Mas como M → M1, por (i) e pelo Teorema 6.1.2, que vimos que vale também para cálculo-λ livre de tipos temos: (v) LF∞(M)> LF∞(M1). Logo, por (v), vale HI em M1, e portanto: (vi) h(M1)= LF∞(M1). Por (iv), (v) e (vi) é claro que: (vii) LF∞(M) L)v(> F∞(M1) h(M)vi(= 1) ⇒ LF∞(M) ≥ h(M1)+ 1 L)iv(⇒ F∞(M) ≥ h(M). Portanto, por (i) e (vii): LF∞(M)= h(M). ♦ 309 É sabido que vale Church-Rosser para cálculo-λ livre de tipos, no entanto, em 6.3.15.1 estamos apresentando uma nova demonstração para este fato. Quanto ao Teorema 6.3.15.2, Barendregt provou que a sua estratégia perpétua sempre encontra seqüências de redução de comprimento infinito quando existe alguma. A este fato estamos acrescentando que quando M é fortemente normalizável, a seqüência obtida da estratégia perpétua tem comprimento máximo. §4 Comparação entre o N osso Método os Artigos do Capítulo V. Vamos inicialmente resumir os resultados que neste capítulo obtivemos para o sistema λ⊃ e, nos Capítulos II e III, obtivemos para o sistema de dedução natural C'. Apresentaremos o resumo dos resultados na notação de λ⊃. No entanto, os resultados para C' são os mesmos, com a diferença que, ao invés da estratégia perpétua de Barendregt, utilizamos a pior seqüência de redução de Massi. 6.4.1 Resumo dos N ossos Resultados (1) Introduzimos o Ordinal Natural o(M) para os termos de λ⊃. Ou seja, definimos a atribuição numérica unívoca o(M) e provamos que, para todo termo M: ♦(a) o(M)< ω; ♦(b) M → N ⇒ o(M)> o(N). (2) Provamos que, para todo termo M, o(M) coincide com o comprimento LF∞(M) de uma seqüência de redução específica para M (a seqüência obtida através da estratégia perpétua de Barendregt). Ou seja: ♦ o(M)= LF∞(M). (3) Considerando que M°n representa o (n+ 1)-ésimo termo da seqüência obtida através da estratégia F∞ aplicada a M, provamos que: ♦ M → N ⇒ ∃j,k< ω / M°j ≡ N°k. Como conseqüência de (1), (2) e (3), considerando M∈Λ⊃ um termo qualquer, obtivemos os seguintes resultados sobre o sistema λ⊃: 310 (4) Normalização forte para λ⊃: ♦ h(M)< ω. (5) o(M) é o menor ordinal natural para M e, portanto, representa exatamente a altura da árvore de reduções para M: ♦ o(M)= h(M). (6) F∞ produz a mais longa seqüência de redução para M: ♦ LF∞(M)= h(M). (7) Church-Rosser em λ⊃: ♦ A forma normal de cada termo de λ⊃ é única. Podemos dizer que os Itens (1) a (3) acima representam resultados técnicos cujo objetivo foi viabilizar a obtenção de (4) a (7), que representam os resultados importantes que obtivemos para o sistema λ⊃. No entanto, o nosso grande esforço aqui foi a obtenção dos resultados (1) a (3). As provas de (4) a (7), como vimos, são triviais a partir dos Itens (1) a (3). Vamos agora sintetizar o método que utilizamos para a obtenção de (1) a (3). 6.4.2 Resumo do N osso Método Geral Podemos separar três passos fundamentais que utilizamos para a obtenção dos resultados (1) a (3) descritos acima. (a) O primeiro passo foi definir uma estratégia de redução supostamente maximal, que jamais efetuasse uma redução capaz de eliminar a possibilidade do surgimento de novos redex a partir dos já existentes. Utilizamos para isto a estratégia F∞ definida em Barendregt[1990]. (b) O segundo passo foi, assumindo que LF∞(M)< ω para todo M, provar que: ♦ M → N ⇒ LF∞(M)> LF∞(N) e ♦ M → N ⇒ ∃j,k< ω / M°j ≡ N°k (vale o Item 6.4.1-(3) acima). (c) O terceiro passo foi provar a hipótese assumida no passo anterior, ou seja, provar que LF∞(M)< ω para todo termo M. Para isso definimos a atribuição numérica o(M) e provamos que, para todo M: 311 ♦ o(M)< ω e o(M)= LF∞(M). É claro que os passos (a), (b) e (c) implicam os Resultados 6.4.1-(1), (2) e (3). Utilizando a estratégia F∞ de Barendregt e alguns resultados conhecidos sobre λ⊃, que apresentamos no Capítulo IV, efetuamos os passos (a) e (b) sem muita dificuldade, no Teorema 6.1.2. O passo (c), no entanto, exigiu a maior parte do trabalho aqui desenvolvido. Podemos sintetizar o método que utilizamos para efetuar (c) da seguinte forma: um desenvolvimento sintático foi feito sobre λ⊃, onde um novo tipo de redex, os subtermos multiplicativos, e um tipo especial de redução para estes subtermos, a multiplicação-*, foram introduzidos. Através deste desenvolvimento provou-se que para todo termo M existe uma seqüência específica destas multiplicações-* que sempre termina, através de um número finito de passos, em um termo chamado de termo estrela, que não possui nenhum subtermo multiplicativo. Esta prova foi obtida sintaticamente, utilizando o método de Turing para obtenção de normalização fraca para λ⊃. 57 Dessa forma relacionou-se cada termo M com um termo estrela M*, que como foi obtido finitamente, tem comprimento finito e um número finito de subtermos. O número o(M) associado a M foi definido como o número de elementos de um subconjunto especial de subtermos de M* (os subtermos pesados de M*). Dessa forma temos que o(M) associa univocamente cada termo M a um número natural (finito) o(M). Feito isso, provou-se, sintaticamente, através das propriedades da definição de o(M) que, para todo termo M, o(M)= LF∞(M), e portanto, que LF∞(M)< ω para todo M. 6.4.3 Comentários sobre os resultados para o sistema C' Com relação aos resultados obtidos nos Capítulos II e III para o sistema de dedução natural C', cabe ainda ressaltar que Massi[1990] efetuou os passos 6.4.2-(a) e (b) descritos anteriormente. Ele definiu uma seqüência de redução "não econômica", a pior seqüência de redução, e provou, assumindo que seu comprimento lp(π) é finito para toda derivação π de C', os Teoremas de Normalização Forte e Church-Rosser. Massi, no entanto, não realizou o passo (c), e seus resultados ficaram condicionados à hipótese não provada de que lp(π)< ω para toda derivação π. Nós realizamos o passo (c) provando que lp(π)= o(π)< ω, e retiramos assim a hipótese condicional dos resultados de Massi. Mas fizemos mais que isso. Para 57 Este método foi descrito em Gandy[1980a]. 312 aumentar a independência dos nossos resultados com relação aos de Massi, provamos, independentemente de lp(π), que π → π' ⇒ o(π)> o(π'). Com este resultado obtivemos, independentemente, que o(π) é ordinal natural para derivações em C' e que portanto vale normalização forte para C'. Além disso, como provamos que lp(π)= o(π)< ω, então o(π) é o menor ordinal natural para as derivações de C'. 6.4.4 Comparação entre os N ossos Resultados e os Pesquisados na Literatura Nos 5 artigos aos quais nos referidos no Capítulo V, os três analisados (Howard[1968], Vrijer[1987] e Beckmann[1998]) e os dois citados (Gandy[1980] e Schwichtenberg[1991]), o resultado 6.4.1-(1) e, conseqüentemente, o resultado 6.4.1-(4) foram obtidos. Ou seja, em todos eles encontramos um ordinal natural para os termos de λ⊃ e, como conseqüência direta deste ordinal, uma prova do Teorema de Normalização Forte para λ⊃. Com exceção de Howard[1968], todos os demais artigos apresentam explicitamente estes resultados. Howard não os apresenta, mas, na análise que fizemos daquele artigo em 5.1, verificamos que tais resultados são conseqüência direta dos resultados obtidos por Howard. Com exceção de Vrijer[1987], no que se refere aos resultados listados em 6.4.1, todos os demais artigos obtêm apenas os Itens (1) e (4), ou seja, ordinal natural e normalização forte para λ⊃. Vrijer, no entanto, obteve, além destes dois resultados, o resultado 6.4.1-(2) e, como conseqüência disso, obteve também 6.4.1-(5) e (6). Ou seja, Vrijer provou que seu ordinal natural corresponde exatamente ao comprimento da seqüência de redução obtida da estratégia perpétua de Barendregt (6.4.1-(2)). Com isso provou que seu ordinal natural é o menor de todos (6.4.1-(5)), e que a estratégia perpétua de Barendregt produz a mais longa seqüência de redução em λ⊃ (6.4.1-(6)). Os resultados listados em 6.4.1-(3) e (7), que representam uma prova do Teorema de Church-Rosser, sobre a unicidade da forma normal, não foram encontrados em nenhum dos artigos vistos. Tal fato consiste, portanto, em um passo a mais do nosso trabalho com relação a todos os artigos vistos. Cabe ressaltar também que, em termos de resultados sobre ordinal natural, os artigos de Beckmann e Schwichtenberg trazem um resultado não presente nem em nosso 313 trabalho nem em nenhum dos outros artigos, que consideramos bastante relevante. Estes artigos apresentam uma estimativa finita, em termos de propriedades simples do termo M, para a complexidade do ordinal natural que eles definem. Schwichtenberg apresentou uma primeira estimativa que foi posteriormente aprimorada por Beckmann. A seguinte tabela mostra comparativamente os resultados importantes que obtivemos para o sistema λ⊃, juntamente com os de cada um dos artigos citados: Esta Tese Vrijer Howard Beckmann Schwichtenberg Gandy 6.4.1-(4) • • • • • • 6.4.1-(5) • • 6.4.1-(6) • • 6.4.1-(7) • Estimativa • • 6.4.5 Comentários sobre a extensão dos nossos resultados Segundo o comentário 4.5.9 a respeito da transferência de provas de normalização forte, podemos transformar, de modo relativamente simples, provas de normalização forte para o sistema de cálculo lambda tipificado λ⊃ em provas de normalização forte para o sistema de dedução natural C'. No entanto, vimos também que esta transferência não pode ser feita de maneira trivial do sistema λ⊃ para os sistemas de dedução natural M, I e C, respectivamente de lógica intuicionista minimal, intuicionista de Heyting e lógica clássica definida em todos os conectivos clássicos. Como apresentaremos no Capítulo VII o esboço de uma extensão dos nossos resultados de C' para os sistemas M e I, podemos dizer que esta extensão representa outro avanço dos nossos resultados com relação aos resultados de todos os artigos citados, que se limitam ao sistema λ⊃. 6.4.6 Comparação entre o nosso método e o método dos artigos pesquisados Além destas diferenças que acabamos de apontar entre o nosso trabalho e os artigos pesquisados, relativas ao alcance dos resultados, vamos agora apontar mais algumas diferenças nos métodos de obtenção destes resultados. Foi com o objetivo de mostrar 314 claramente que o nosso método de prova é distinto dos métodos utilizados pelos artigos vistos, que desenvolvemos nossos resultados também para o sistema λ⊃. Um primeiro ponto que fica claro, analisando os estudos dos artigos no capítulo anterior e o desenvolvimento do nosso método nas três primeiras seções deste capítulo, é que, mesmo para o resultado de normalização forte para λ⊃ via ordinal natural, presente em todos os artigos, o nosso método é distinto do método dos artigos analisados. Em outras palavras, tratam-se de provas distintas para o mesmo resultado. Com exceção do artigo de Vrijer, o nosso ordinal natural é menor que o ordinal de todos os demais artigos referidos. Mesmo sendo igual ao ordinal de Vrijer, foi obtido de uma maneira completamente diferente. Como descrevemos em 6.4.2, apesar de coincidir com o comprimento da pior seqüência de redução, o nosso ordinal o(M) é obtido através de uma manipulação sintática finita no termo M que o transforma em M*, um termo no qual podemos contar o número de todos os possíveis redex de M. Esse método para a definição de o(M) teve por objetivo a obtenção da prova de finitude de o(M) para todo termo M. A prova de finitude da atribuição de Vrijer foi obtida de maneira completamente diferente. Vrijer definiu seu ordinal natural como um funcional pertencente a uma certa hierarquia. Desenvolveu a teoria desta hierarquia e provou que os funcionais desta hierarquia que representam os ordinais naturais para termos de λ⊃ têm imagem em ω, e portanto são finitos. A maneira como Howard e Gandy obtiveram as provas de que suas atribuições numéricas a termos eram finitas segue uma linha de argumentação semelhante a esta. 58 Eles, cada um a seu modo, desenvolvem uma teoria formal distinta de λ⊃, e definem uma correspondência entre λ⊃-termos e termos destas teorias. Em seguida apresentam modelos para estas teorias que relacionam termos com números naturais. Assim, indiretamente, através destas teorias formais relaciona-se λ⊃-termos com números naturais. Já os artigos de Beckmann e Schwichtenberg utilizam, para provar a finitude de suas atribuições numéricas, uma técnica desenvolvida por Howard[1980a], que foi baseada nos trabalhos de Sanchis[1967] e Diller[1968]. Este método, bastante engenhoso, é mais próximo ao nosso método que o dos outros artigos, pois também consiste em um certo desenvolvimento sintático que associa uma árvore, a "head reduction tree", a cada λ⊃-termo 58 Lembrando que Howard operou dessa forma para ordinais menores que ε0 e termos de T. Nossa análise do artigo de Howard moveu este universo para numeros naturais e λ⊃-termos. 315 M. Através de manipulações sintáticas nesta árvore prova-se não apenas que a atribuição numérica #M é finita, como também exibe-se uma estimativa para seu valor em termos de propriedades simples de M. Apesar de mais próximo do nosso método que os demais, a análise do artigo de Beckmann, apresentada aqui em 5.3, e a prova da finitude de o(M), apresentada em 6.2, mostram claramente a diferença entre estes métodos. Para o caso das provas de que as atribuições numéricas definidas para os termos de λ⊃ diminuem com as reduções (M → N ⇒ n(M)> n(N)), os resultados de todos os artigos e o nosso próprio estão mais próximos entre si. É claro que todos eles diferem, na medida em que mesmo que algumas destas atribuições numéricas sejam coincidentes, 59 todas elas foram definidas de maneiras distintas. Esta maior proximidade entre as provas para esta parte do resultado se deve ao fato de que todas elas, inclusive a nossa, foram obtidas de maneira sintática, por indução na complexidade do termo M, analisando todas as formas possíveis de M e as posições possíveis para o redex reduzido em M → N. No caso específico do nosso desenvolvimento, baseado no Teorema 1.5.4 demonstrado por Massi, obtivemos, juntamente com a prova de que LF∞(M) diminui com as reduções, um resultado fundamental (6.4.1-(3)) para a demonstração do Teorema de Church-Rosser, que nenhum dos artigos pesquisados apresentou. 6.4.7 Considerações Finais sobre Estas Comparações Concluímos este capítulo dizendo que o motivo fundamental que nos levou a desenvolver nossos resultados também em λ⊃ foi mostrar claramente que, apesar da semelhança nos resultados, o nosso método é distinto dos métodos dos artigos analisados e, especificamente, é distinto do método desenvolvido por Vrijer, cujo ordinal é igual ao nosso. Contra o nosso método podemos apontar a seguinte "desvantagem": a extensão ou não economia. Necessitamos de mais lemas e teoremas para obtenção dos nossos resultados do que os artigos pesquisados. Acreditamos que esta desvantagem está fortemente relacionada com o fato de termos desenvolvido este método inicialmente para sistemas de 59 Como é o caso da igualdade entre a estimativa foruxa {M}* de Vrijer e da atribuição #M de Beckmann, e da igualdade entre o nosso o(M) com a estimativa exata [M]* também de Vrijer. 316 dedução natural, que são muito menos econômicos que os sistemas de cálculo lambda tipificado. Em favor do nosso método, porém, podemos resumir a argumentação desenvolvida nesta seção nos seguintes pontos: (1) A extensão dos nossos resultados para os sistemas M e I, que proporemos no capítulo seguinte, representa um avanço em relação a resultados de normalização forte para λ⊃, conforme discutido em 4.5.9. (2) O Teorema de Church-Rosser, um dos resultados que obtivemos, não é conseqüência de nenhum dos artigos pesquisados. (3) A nossa prova de que a estratégia perpétua de Barendregt, a mesma utilizada por Vrijer, produz seqüências de redução de comprimento máximo para termos fortemente normalizáveis de λ⊃ foi produzida sem apelo ao uso de tipos, e portanto é válida também em cálculo-λ livre de tipos. Como conseqüência disso obtivemos uma nova prova para o Teorema de Church-Rosser para cálculo lambda livre de tipos (6.3.15.1) e um resultado novo sobre a estratégia perpétua de Barendregt que ele próprio não aponta: h(M)< ω ⇒ LF∞(M)= h(M) para todo termo M de cálculo-λ livre de tipos (6.3.15.2). Tal fato não é conseqüência dos trabalhos de Vrijer porque na sua prova de que a estratégia perpétua, quando aplicada a termos de λ⊃, produz seqüências de redução de comprimento máximo, a noção de tipos é utilizada. Finalmente observamos que, apesar da desvantagem da extensão do nosso desenvolvimento, que apontamos acima, nosso método é matematicamente simples e intuitivamente claro. A única teoria matemática que utilizamos (de maneira informal) é a aritmética, e a ferramenta matemática mais sofisticada utilizada em nossas definições e demonstrações é a indução matemática finita. Nosso método produz provas essencialmente combinatórias, que lidam apenas com propriedades estruturais dos termos ou derivações das teorias envolvidas. 317 Capítulo VII Estendendo os Resultados para Outros Sistemas Neste capítulo apresentaremos duas extensões dos nossos resultados para outros sistemas de dedução natural. Na primeira seção os estendemos para os sistemas M e I, de lógicas intuicionista minimal e intuicionista de Heyting, apresentados no Capítulo I. Na segunda seção apresentamos extensões para sistemas de dedução natural relativos às lógicas modais S4 e S5. § 1 N ormalização Forte para M e I via Ordinal N atural Nesta seção apresentaremos uma extensão, para os sistemas M e I, dos resultados que obtivemos nos Capítulos II e III para o sistema C'. Como o sistema M de lógica intuicionista minimal, apresentado em 1.2.8, é um subsistema do sistema I de lógica intuicionista de Heyting, apresentado em 1.2.9, ao estendermos nossos resultados para I estamos automaticamente estendendo para M. Assim, de agora para frente nesta seção, nos referiremos apenas ao sistema I. Não faremos aqui todo o desenvolvimento formal que fizemos detalhadamente nos Capítulos II e III. Muitas demonstrações serão apenas esboçadas, sendo que algumas, no entanto, faremos com mais rigor. Maior prioridade será dada às extensões da pior seqüência de redução e à compreensão intuitiva da nova definição de o(π). Quanto à prova de que o(π)= lp(π), por ser ela mais longa e com mais detalhes técnicos, apresentaremos um esboço menos detalhado. Apesar disso, em virtude do que já vimos nos Capítulos II e III para o sistema C', acreditamos que o nível de detalhes que apresentaremos é suficiente para a compreensão desta extensão. Vamos inicialmente apresentar a noção de elemento, que trata de maneira unificada seqüências de fórmulas consecutivas em um ramo e que são premissas menores de regras (∃E) e (∨E). Tal noção foi baseada na definição de segmento máximo, apresentada pela primeira vez em Prawitz[1965] na prova de normalização fraca para I. 7.1.1 DEFIN IÇÃO: Seqüência Idêntica Uma seqüência idêntica em uma derivação π é uma seqüência A1, ..., An de ocorrências consecutivas de fórmulas em um ramo de π tal que: 321 (1) A1 não é conseqüência de aplicação de (∨E) ou (∃E); (2) Ai (1 ≤ i < n) é premissa menor de uma aplicação de (∨E) ou (∃E); (3) An não é premissa menor de uma aplicação de (∨E) ou (∃E). 7.1.1.1 OBSERVAÇÕES: (a) É claro, pelas regras (∨E) e (∃E) (Definição 1.2.2), que todas as ocorrências de fórmula em uma seqüência idêntica são ocorrências da mesma fórmula. (b) Seja S uma seqüência idêntica. Quando nos referirmos às premissas e conclusões de S estaremos nos referindo, por abuso de linguagem, respectivamente, às premissas da primeira ocorrência de S e às conclusões da última ocorrência de S. Analogamente, quando dissermos que S é premissa ou conseqüência de φ, estaremos dizendo que a última ocorrência de S é premissa de φ, ou que a primeira ocorrência de S é conseqüência de φ. 7.1.2 DEFIN IÇÃO: Elemento Um elemento em uma derivação π corresponde ou a uma seqüência idêntica em π ou a uma ocorrência de fórmula que não pertença a nenhuma seqüência idêntica em π. 7.1.2.1 OBSERVAÇÕES: (a) Diremos que os elementos que são ocorrências de fórmula fora das seqüências idênticas de π são elementos unitários. (b) Por abuso de linguagem denotaremos elementos como temos denotado ocorrências de fórmula, ou seja, pelas letras gregas minúsculas (φ, ψ, ...) ou pelas letras latinas maiúsculas (A, B, ...) com ou sem índices numéricos. (c) Denotaremos o número de ocorrências de um elemento φ por l(φ) (d) Denotaremos a n-ésima ocorrência de fórmula no elemento φ por (φ)n. Note que se φ é elemento unitário, então φ= (φ)1. (e) Utilizaremos a noção de elemento para tratar as seqüências idênticas como objetos individuais da mesma categoria que as ocorrências de fórmula que não pertencem a seqüências idênticas. Fazendo isso conseguiremos estender para derivações em I a maioria das definições apresentadas nos Capítulos II e III, apenas substituindo as referências a ocorrências de fórmula por referências a elementos. 322 Um primeiro conceito que podemos estender utilizando a noção de elemento é o conceito de fórmula máxima. Em I as fórmulas máximas serão substituídas por elementos máximos. 7.1.3 DEFIN IÇÃO: Elemento Máximo Um elemento φ em uma derivação π é um elemento máximo quando φ for conseqüência de regra de introdução ou do absurdo intuicionista (⊥I) e premissa maior de regra de eliminação. De posse destas ferramentas, vamos estender o conceito de pior seqüência de redução apresentado em 1.5.3. Para isso vamos redefinir, para derivações em I, os conceitos de F(π) e FP(π) introduzidos por Massi e que apresentamos aqui em 1.5.1 e 1.5.2. 7.1.4 DEFIN IÇÃO: F(π) Seja π uma derivação não normal em I, e R a primeira regra de eliminação de baixo para cima e mais à direita, tal que sua premissa maior é elemento máximo. Definimos F(π) como sendo a última ocorrência do elemento que é premissa maior de R. 7.1.4.1 OBSERVAÇÃO: Note que esta definição é diferente da apresentada em 1.5.1. Não mais tomamos a ocorrência de FM mais à direita de baixo para cima, mas a FM que está na "regra" mais à direita de baixo para cima. Isto é necessário porque nas regra (∃E) e (∨E) a premissa maior ocorre à esquerda das premissas menores, ao contrário do que ocorre na regra de (⊃E). 7.1.5 DEFIN IÇÃO: Fórmula Principal FP(π) A fórmula principal de π, representada por FP(π), é definida por indução no número de elementos máximos em π, da seguinte maneira: (1) BASE: a última ocorrência do único elemento máximo de π é FP(π); 323 (2) Se π ≡ 3 2 1 B BA π ⊃ ⊥ π π A ou π ≡ π π π 1 2 3 A B A B B ⊃ , tal que: ♦ A⊃B é F(π) e ♦ A regra (⊃I) mostrada não corta top-fórmula de π, então: FP(π)= A⊃B , se π1 for normal; FP(π1) , se π1 não for normal. (3) Se π ≡ π π π 1 2 3 A B A B B k k [ ] ⊃A , onde: ♦ A⊃B é F(π) e ♦ A é cortada pela regra (⊃I) mostrada, então: FP(π)= A⊃B. (4) Se π ≡ 3 i 21 2 2 1 1 A A AA π ∧ ππ A (1 ≤ i ≤ 2), onde A1∧A2 é F(π), então, para (1 ≤ j ≤ 2 e j ≠ i) temos que: FP(π)= A1∧A2 , se πj for normal; FP(πj) , se πj não for normal. 324 (5) Se π ≡ 3 i 21 1 A AA π ∧ ⊥ π (1 ≤ i ≤ 2), onde A1∧A2 é F(π), então FP(π)= A1∧A2. (6) Se π ≡ 2 )t( )x(x 1 A A π ∀ ⊥ π ou π ≡ π π 1 2 A A A ( ( ( a x x t ) ) ) ∀ , onde ∀xA(x) é F(π), então FP(π)= ∀xA(x). (7) Se π ≡ k 4 k 3 3 k 2 2 32 2 1 B B ]A[ B ]A[ AA A π ππ ∨ π ou π ≡ k 4 k 3 3 k 2 2 32 1 B B ]A[ B ]A[ AA π ππ ∨ ⊥ π , onde: ♦ A2∨A3 é F(π) e ♦ A2 é cortada pela regra (∨E) mostrada, então: FP(π)= FP(π3) , se π3 não for normal, A2∨A3 , se π3 for normal. (8) Se π ≡ k 4 k 3 3 k 2 2 32 3 1 B B ]A[ B ]A[ AA A π ππ ∨ π , onde ♦ A2∨A3 é F(π) e ♦ A3 é cortada pela regra (∨E) mostrada, então: FP(π) = FP(π2) , se π2 não for normal, A2∨A3 , se π2 for normal. 325 (9) Se π é de uma das formas abaixo: (a) π ≡ k 4 k 3 32 32 2 1 B B ]A[ BAA A π ππ ∨ π ou (b) π ≡ k 4 k 3 32 32 1 B B ]A[ BAA π ππ ∨ ⊥ π , onde: ♦ A2∨A3 é F(π) e ♦ A2 não é cortada pela regra (∨E) mostrada, então: FP(π3) , se π3 não for normal; FP(π)= FP(π1) , se π3 for normal e π1 não o for; A2∨A3 , se π1 e π3 forem ambas normais. (10) Se π ≡ k 4 3 k 2 2 32 3 1 B BB ]A[ AA A π ππ ∨ π , onde: ♦ A2∨ ♦ A ∨E) mostrada, A3 é F(π) e 3 não é cortada pela regra ( então: FP(π2) , se π2 não for normal; FP(π) = FP(π1) , se π2 for normal e π1 não for; A2∨A3 , se π1 e π2 forem ambas normais. (11) Se π ≡ k 3 k 2 x 1 B B ]A[ A π π ∃ ⊥ π ou π ≡ k 3 k 2 x 1 B B ]A[ A A π π ∃ π onde: ♦ ∃xA é F(π) e ♦ A regra (∃E) mostrada elimina hipótese de π, 326 então: FP(π) = ∃xA. (12) Se π ≡ 3 2 x 1 B BA π π⊥ π ∃ ou π ≡ 3 2 x 1 B B ]A[ A A π π ∃ π , onde: ♦ ∃xA é F(π) e ♦ A regra (∃E) mostrada não elimina hipótese de π, então: FP(π) = FP(π1) , se π1 não for normal; ∃xA , se π1 for normal. (13) Se π ≡ 5 4 321 D C CCBA π Σ ππ ∨ π , onde a ocorrência de C que é conseqüência de (∨E) é F(π) e é a última ocorrência de um elemento máximo, então: FP(π)= C. (14) Se π ≡ 5 4 21 D C CxA π Σ π ∃ π , onde a ocorrência de C que é conseqüência de (∃E) é F(π) e é a última ocorrência de um elemento máximo, então: FP(π)= C. 7.1.5.1 OBSERVAÇÕES: (a) Todos os casos para todas as reduções possíveis aplicáveis a F(π) foram analisados. Portanto, é fácil notar pela definição acima que, para cada derivação não normal π, existe uma e apenas uma ocorrência de fórmula φ tal que φ= FP(π). Ou seja, FP(π) existe e é única para toda derivação não normal π. (b) Tendo por base esta nova definição de FP(π), a pior seqüência de redução para derivações em I é então definida exatamente da mesma forma que para derivações de C'. 327 Ou seja, consideraremos válidas, para qualquer π em I, a Definição 1.5.3 e as Observações 1.5.3.1. Antes de apresentarmos a demonstração do Teorema 1.5.4 relativo a derivações em I, vamos apresentar um lema auxiliar que será bastante útil na demonstração deste teorema. 7.1.6 LEMA: Seja π é uma derivação não normal em I e π1 é uma subárvore de π tal que: (a) r(π1) é alguma premissa da regra R cuja premissa maior é F(π); (b) π1 é eliminada na redução de FP(π). Então: lp(π1)< lp(π). PROVA: Não é difícil ver, pelas Definições 7.1.5 e 1.5.3, respectivamente de FP(π) e pior seqüência de redução, que em todos os casos que π1 satisfizer as condições do teorema, a pior seqüência para π1 representa um segmento inicial da pior seqüência para π. Portanto lp(π1) ≤ lp(π). Mas como F(π) não ocorre em π1, então a pior seqüência para π não se restringe às reduções em π1. Portanto, lp(π1)< lp(π). ♦ Vamos agora provar que o resultado de Massi de que lp(π), se finito, diminui com as reduções, também vale para derivações em I, considerando esta extensão da definição de pior seqüência que apresentamos. 7.1.7 TEOREMA: Admita que lp(π)< ω para toda derivação π em I. Se π se reduz imediatamente a π' (π → π'), então lp(π)> lp(π') e existe uma derivação π# tal que π →p R π# e π' → p R π#. PROVA: Indução em lp(π). Para realizarmos esta prova, basta que completemos a prova de Massi[1990] feita para derivações de C'. Os casos para π tal que F(π) tem como conectivo principal ⊃, ∀ e ∧ são idênticos aos de Massi. Vamos nos concentrar aqui nos conectivos ∨, ∃ e nas reduções 328 permutativas, uma vez que todas as reduções do absurdo intuicionista são casos particulares das reduções dos conectivos. A prova que apresentaremos não contém nenhum fato novo em relação à prova de Massi. Todas as situações novas dos conectivos introduzidos têm algum correspondente nos casos tratados por Massi. Nosso único trabalho foi o de organizar e verificar todos os casos possíveis, de acordo com a nova definição de FP(π) que apresentamos. BASE: lp(π)= 1 ⇒ π é normal ⇒ resultado válido por vacuidade. PASSO: lp(π)> 1 Como lp(π)< ω por hipótese, é claro que: (i) lp(π)= lp(π°)+ 1. (*) PROPOSIÇÃO: Se π°→ π1, então lp(π1)< lp(π°) e existe π1# / π°→ p R π1# e π1→ p R π1#. PROVA de (*): Indução no comprimento da seqüência π° → π1. BASE: π° → π1. Como, por (i) lp(π°)< lp(π), o resultado é imediato pela hipótese indutiva do teorema. PASSO: π° → π2 → π1. Por hipótese indutiva da Proposição (*), existe π2# tal que: (ii) π° →p R π2#, π2 → p R π2# e lp(π2)< lp(π°). Logo, por (ii), podemos aplicar a hipótese indutiva do teorema a π2, e portanto existe π3# tal que: (iii) π2 → p R π3#, π1 → p R π3# e lp(π1)< lp(π2). (iv) Assim, por (i), (ii) e (iii), lp(π1)< lp(π°)< lp(π). Note, por (ii) e (iii) que π2 → p R π2# e π2 → p R π3#. Assim, pela unicidade da pior seqüência temos três casos possíveis que relacionam π2# e π3#: π2# ≡ π3#, ou π3# → p π2#, ou π2# → p π3#. Analisemos cada um deles. CASO (1*): π2# ≡ π3# Neste caso: (v) por (ii): π →p π° →p R π2# ≡ π3# e (vi) por (iii): π1 → p R π3#. Assim, por (iv), (v) e (vi) provamos a Proposição (*) para este caso. 329 CASO (2*): π3# → p π2# Neste caso: (vii) por (ii): π →p π° →p R π2# e (viii) por (iii): π1 → p R π3# → p π2#. Assim, por (iv), (vi) e (viii) provamos a Proposição (*) para este caso. CASO (3*): π2# → p π3# Neste caso: (ix) por (ii): π →p π° →p R π2# → p π3# e (x) por (iii): π1 → p R π3#. Assim, por (iv), (ix) e (x) provamos a Proposição (*) para este caso.   Voltemos ao teorema. Consideremos dois casos: π' ≡ π° e π' ≡/ π°. Se π' ≡ π°, o resultado é imediato, pois, por (i), lp(π°)< lp(π). Temos que analisar, portanto, todos os casos em que π' ≡/ π°. Temos várias possibilidades, de acordo com F(π). CASO 1: π ≡ 3 2 1 B BAA π ⊃ ⊥ π π ou π ≡ π π π 1 2 3 A B A B B ⊃ , tal que ♦ A⊃B é F(π) e ♦ A regra (⊃I) mostrada não corta top-fórmula de π. Ver Massi[1990], pp. 92 – 95. CASO 2: π ≡ π π π 1 2 3 A A B A B B k k [ ] ⊃ , onde ♦ A⊃B é F(π) e ♦ A é cortada pela regra (⊃I) mostrada, Ver Massi[1990], pp. 96 – 100. 330 CASO 3: π ≡ π π π 1 1 2 2 1 2 3 A A A A Ai ∧ (1 ≤ i ≤ 2), ou π ≡ 3 i 21 1 A AA π ∧ ⊥ π , onde A1∧A2 é F(π) Ver Massi[1990], pp. 101-103. CASO 4: π ≡ 2 )t( )x(x 1 A A π ∀ ⊥ π , ou π ≡ π π 1 2 A A A ( ( ( a x x t ) ) ) ∀ , onde ∀xA(x) é F(π) Ver Massi[1990], pp. 104-105. CASO 5: π tem uma das seguintes formas: (a) π ≡ k 4 k 3 32 32 2 1 C C ]A[ CAA A π ππ ∨ π ou π ≡ k 4 k 3 32 32 1 C C ]A[ CAA π ππ ∨ ⊥ π , onde: • A2∨A3 é F(π) e • A2 não é cortada pela regra (∨E) mostrada. Como as duas formas de π se comportam de maneira idêntica com relação à redução da pior seqüência (Definição 7.1.5-(9)), vamos tratá-las de maneira unificada. Utilizaremos para estes dois casos de π a notação conveniente π ≡ 4 32 32 1 C CCAA π ππ ∨ π . Temos aqui tantos subcasos quantas são as possibilidades para π' SubCaso 5.1: π' ≡ 4 32 32 1 C CCAA ) π ππ ∨ π , onde π1 → π1' Temos tantos subcasos quantas forem as possibilidades para π°. 331 SubCaso 5.1.1: π3 não é normal Neste caso, pela Definição 7.1.5-(9) temos que FP(π)= FP(π3)= FP(π'). Portanto: π° ≡ 4 32 32 1 C CCAA π ππ ∨ π o e π'° ≡ 4 32 32 1 C CCAA ) π ππ ∨ π o . (xi) Note que, apenas efetuando a redução π1 → π1' em π°, temos que π° → π'°. Portanto, usando a Proposição (*) existe um π# tal que: (xii) π° →p R π#, π'° → p R π# e lp(π'°)< lp(π°). Logo, por (xi) e (xii): (xiii) π →p π° →p R π# e π' → p π'° →p R π#. Note, por (i) que vale HI para π°. Logo, por (xi): (xiv) lp(π'°)< lp(π°). Como lp(π')= lp(π'°)+ 1, por (xiv) temos que: (xv) lp(π') ≤ lp(π°) lp(π). )i( < Portanto, por (xiii) e (xv) resolvemos o Caso 5.1.1. SubCaso 5.1.2: π3 é normal Pelo Teorema 7.1.6 lp(π1)< lp(π), logo vale HI em π1, portanto: (xvi) Existe π1# tal que: π1 → p R π1#, π1' → p R π1# e lp(π1')< lp(π1). (xvii) Considere π# a seguinte derivação: π# ≡ 4 32 32 # 1 C CCAA π ππ ∨ π . Como π3 é normal, pela Definição 7.1.5-(9) é fácil ver que a normalização de π1 via pior seqüência é segmento inicial da pior seqüência de π. Analogamente, a normalização de π1' via pior seqüência é segmento inicial da pior seqüência de π'. Dessa forma, por (xvi), (xvii) e 7.1.5-(9) é claro que: (xviii) π →p R π#, π' → p R π# e como, por (xvi), lp(π1')< lp(π1), também é claro que: (xix) lp(π')< lp(π). Portanto, por (xviii) e (xix) resolvemos o Caso 5.1.2. 332 SubCaso 5.2: π' é da forma π' ≡ 4 32 32 1 C CCAA ) π ππ ∨ π , onde π2 → π2' Temos tantos subcasos quantas forem as possibilidades para π°. SubCaso 5.2.1: π3 não é normal Neste caso, pela Definição 7.1.5-(9) temos que FP(π)= FP(π3)= FP(π'). Portanto: π° ≡ 4 32 32 1 C CCAA π ππ ∨ π o e π'° ≡ 4 32 32 1 C CCAA ) π ππ ∨ π o . Note que, apenas efetuando a redução π2 → π2' em π°, temos que π° → π'°. A solução é portanto análoga à do Caso 5.1.1. SubCaso 5.2.2: π3 é normal mas π1 não Neste caso, pela Definição 7.1.5-(9) temos que FP(π)= FP(π1)= FP(π'). Portanto: π° ≡ 4 32 32 1 C CCAA π ππ ∨ πo e π'° ≡ 4 32 32 1 C CCAA ) π ππ ∨ πo . Note que, apenas efetuando a redução π2 → π2' em π°, temos que π° → π'°. A solução é portanto análoga à do Caso 5.1.1. SubCaso 5.2.3: π3 e π1 são ambos normais Neste caso, pela Definição 7.1.5-(9) temos que FP(π)= A2∨A3= FP(π'). Portanto: π° ≡ e π'° ≡ . 4 2 C π π 4 2 C ) π π Note que, apenas efetuando a redução π2 → π2' em π°, temos que π° → π'°. A solução é portanto análoga à do Caso 5.1.1. SubCaso 5.3: π' é da forma π' ≡ 4 32 32 1 C CCAA ) π ππ ∨ π , onde π3 → π3' Pelo Teorema 7.1.6 lp(π3)< lp(π), logo vale HI em π3, portanto: 333 (xx) Existe π3# tal que: π3 → p R π3#, π3' → p R π3# e lp(π3')< lp(π3). (xxi) Seja π# a seguinte derivação: π# ≡ 4 # 32 32 1 C CCAA π ππ ∨ π . Pela Definição 7.1.5-(9) é fácil ver que a normalização de π3 via pior seqüência é segmento inicial da pior seqüência de π. Analogamente, a normalização de π3' via pior seqüência é segmento inicial da pior seqüência de π'. Dessa forma, por (xx), (xxi) e 7.1.5-(9) é claro que: (xxii) π →p R π#, π' → p R π# e como lp(π3')< lp(π3) também é claro que: (xxiii) lp(π')< lp(π). Portanto, por (xxii) e (xxiii) resolvemos o Caso 5.3. SubCaso 5.4: π' é da forma π' ≡ ) 4 32 32 1 C CCAA π ππ ∨ π , onde π4 → π4' Como A2∨ A3 é F(π), π e π' devem ter as seguintes formas: π ≡ F D C CCAA E 7 5 32 32 1 6 π π ππ ∨ π π e π' ≡ F D C CCAA E 7 5 32 32 1 6 ) π π ππ ∨ π π , onde π6 → π6'. Temos tantos subcasos quantas forem as possíveis formas de π°. SubCaso 5.4.1: π3 não é normal Neste caso, pela Definição 7.1.5-(9) temos que FP(π)= FP(π3)= FP(π'). Portanto: 334 π° ≡ F D C CCAA E 7 5 32 32 1 6 π π ππ ∨ π π o e π'° ≡ F D C CCAA E 7 5 32 32 1 6 ) π π ππ ∨ π π o . Note que, apenas efetuando a redução π6 → π6' em π°, temos que π° → π'°. A solução é portanto análoga à do Caso 5.1.1. SubCaso 5.4.2: π3 é normal mas π1 não é. Neste caso, pela Definição 7.1.5-(9) temos que FP(π)= FP(π1)= FP(π'). Portanto: π° ≡ e π'° ≡ . F D C CCAA E 7 5 32 32 1 6 π π ππ ∨ π π o F D C CCAA E 7 5 32 32 1 6 ) π π ππ ∨ π π o Note que, apenas efetuando a redução π6 → π6' em π°, temos que π° → π'°. A solução é portanto análoga à do Caso 5.1.1. SubCaso 5.4.3: π3 e π1 são normais Neste caso, pela Definição 7.1.5-(9) temos que FP(π)= A2∨A3= FP(π'). Portanto: π° ≡ 7 5 2 6 F D C E π π π π e π'° ≡ 7 5 2 6 F D C E ) π π π π . Note que, apenas efetuando a redução π6 → π6' em π°, temos que π° → π'°. A solução é portanto análoga à do Caso 5.1.1. CASO 6: π ≡ k 4 3 k 2 2 32 3 1 B BB ]A[ AA A π ππ ∨ π , onde: 335 • A2 ∨ A3 é F(π) • A3 não é cortada pela regra (∨E) mostrada A solução deste caso é exatamente simétrica à do Caso 5 com relação às subárvores π2 e π3. CASO 7: π tem uma das formas: π ≡ k 4 k 3 3 k 2 2 32 2 1 B B ]A[ B ]A[ AA A π ππ ∨ π , ou π ≡ k 4 k 3 3 k 2 2 32 1 B B ]A[ B ]A[ AA π ππ ∨ ⊥ π onde: • A2∨A3 é F(π) • A2 é cortada pela regra (∨E) mostrada Como estes dois casos se comportam de maneira semelhante com relação à definição de pior seqüência (Definição 7.1.5-(7)), vamos tratá-los de maneira unificada. Por economia escreveremos a solução apenas para a primeira forma de π, sendo que para a segunda o procedimento é análogo. Temos tantos subcasos quantas forem as possibilidades para π'. SubCaso 7.1: π' ≡ k 4 k 3 3 k 2 2 32 2 1 B B ]A[ B ]A[ AA A ) π ππ ∨ π , onde π1 → π1'. Temos tantos subcasos quantas forem as possibilidades para π°. SubCaso 7.1.1: π3 não é normal Neste caso, pela Definição 7.1.5-(7) temos que FP(π)= FP(π3)= FP(π'). Portanto: π° ≡ k 4 k 3 3 k 2 2 32 2 1 B B ]A[ B ]A[ AA A π ππ∨ π o , π'° ≡ k 4 k 3 3 k 2 2 32 2 1 B B ]A[ B ]A[ AA A ) π ππ∨ π o . 336 Note que, apenas efetuando a redução π1 → π1' em π°, temos que π° → π'°. A solução é portanto análoga à do Caso 5.1.1. SubCaso 7.1.5: π3 é normal Neste caso, pela Definição 7.1.5-(7) temos que FP(π)= A2∨A3= FP(π'). Portanto: π° ≡ e π'° ≡ . 4 2 2 1 B ]A[ π π π 4 2 2 1 B ]A[ ) π π π Note que fazendo a redução π1 → π1' em cada cópia de π1 em π° temos: π°→ π'°. A solução é portanto análoga à do Caso 5.1.1. SubCaso 7.2: π' é da forma π' ≡ k 4 k 3 3 k 2 2 32 2 1 B B ]A[ B ]A[ AA A ) π ππ ∨ π , onde π2 → π2' Temos aqui duas possibilidades, conforme o tipo de redução realizada em π2. SubCaso 7.2.1: A redução π2 → π2' é tal que π2' ≡ e AB 5π 2 k não ocorre em π5 Ou seja, π' ≡ k 4 k 3 35 32 2 1 B B ]A[ BAA A π ππ ∨ π , onde A2 não é eliminada pela regra (∨E) mostrada. Temos aqui tantas possibilidades quantos são os tipos de π°. SubCaso 7.2.1.1: π3 não é normal Neste caso, pela Definição 7.1.5-(7) temos que FP(π)= FP(π3)= FP(π'). Portanto: 337 π° ≡ k 4 k 3 3 k 2 2 32 i 1 B B ]A[ B ]A[ AA A π ππ∨ π o e π'° ≡ k 4 k 3 3 5 32 2 1 B B ]A[ BAA A π ππ∨ π o . Note que, apenas efetuando a redução π2 → π5 em π°, temos que π° → π'°. A solução é portanto análoga à do Caso 5.1.1. SubCaso 7.2.1.2: π π3 é normal e 1 não é Neste caso, pela Definição 7.1.5-(7) temos que FP(π)= A2∨A3 e FP(π')= FP(π1). Portanto: (xxiv) π° ≡ e π'° ≡ 4 2 2 1 B ]A[ π π π k 4 k 3 35 32 2 1 B B ]A[ BAA A π ππ ∨ πo . Seja Σ a seguinte derivação: Σ ≡ k 4 k 3 3 k 2 2 32 i 1 B B ]A[ B ]A[ AA A π ππ ∨ πo . Sobre Σ sabemos que: (xxv) Σ° ≡ e Σ' ≡ 4 2 2 1 B ]A[ π π πo k 4 k 3 35 32 2 1 B B ]A[ BAA A π ππ ∨ πo , onde Σ → Σ' através de π2 → π5. (xxvi) Note, por (xxiv) e (xxv), que: π°→ Σ° e Σ' ≡ π'°. Por (xxvi), usando a Proposição (*), existe um π# tal que: (xxvii) π° →p R π#, Σ° → p R π# e lp(Σ°)< lp(π°). Logo, por (xxvii): (xxviii) π →p π° →p R π# e Σ → p Σ° →p R π#. Além disso, como lp(Σ)= lp(Σ°)+ 1 e, por (xxvii), lp(Σ°)< lp(π°), temos: 338 (xxix) lp(Σ) ≤ lp(π°)< lp(π). Logo, por (xxix), vale a hipótese indutiva para Σ. Portanto: (xxx) Existe Σ# tal que Σ →p R Σ#, Σ' → p R Σ# e lp(Σ')< lp(Σ). Assim, por (xxvi), (xxix) e (xxx) temos: (xxxi) lp(π'°)= lp(Σ')< lp(Σ)< lp(π). Como lp(π')= lp(π'°)+ 1, por (xxxi) temos: (xxxii) lp(π') ≤ lp(Σ)< lp(π). Por (xxviii) e (xxx) temos que Σ →p π# e Σ →p R Σ#. Logo, pela unicidade da pior seqüência temos que ou π# ≡ Σ#, ou π# →p Σ#, ou Σ# →p π#. Vejamos cada caso: Se π# ≡ Σ#, por (xxvi), (xxviii) e (xxx) temos: (xxxiii) π →p π# ≡ Σ# e π' →p π'° ≡ Σ' →p R Σ#. Se π# →p Σ#, por (xxvi), (xxviii) e (xxx) temos: (xxxiv) π →p π# →p Σ# e π' →p π'° ≡ Σ' →p R Σ#. Se Σ# →p π#, por (xxvi), (xxviii) e (xxx) temos: (xxxv) π →p π# e π' →p π'° ≡ Σ' →p R Σ# → p π#. Portanto, por (xxxii) a (xxxv) resolvemos o subcaso. SubCaso 7.2.1.3: π3 e π1 são ambos normais Neste caso, pela Definição 7.1.5-(7) temos que FP(π)= A2∨A3= FP(π'). Portanto: π° ≡ e π'° ≡ . 4 2 2 1 B ]A[ π π π 4 5 B π π Mas observe que a redução π2→ π5, se efetuada em π°, elimina todas as cópias de π1 da mesma forma que em π eliminou as hipóteses A2. Logo: π° ≡ → ≡ π'°. A solução é portanto análoga à do Caso 5.1.1. 4 2 2 1 B ]A[ π π π 4 5 B π π SubCaso 7.2.2: A redução π2→ π2' é tal que π2' ≡ , com A B ]A[ 5 k 2 π 2k pertencendo a π5 339 Ou seja, π' ≡ k 4 k 3 3 k 2 5 32 2 1 B B ]A[ B ]A[ AA A π ππ ∨ π . Novamente temos dois subcasos, conforme a forma de π°. SubCaso 7.2.2.1: π3 não é normal Neste caso, pela Definição 7.1.5-(7) temos que FP(π)= FP(π3)= FP(π'). Portanto: π° ≡ k 4 k 3 3 k 2 2 32 2 1 B B ]A[ B ]A[ AA A π ππ∨ π o , π'° ≡ k 4 k 3 3 k 2 5 32 2 1 B B ]A[ B ]A[ AA A π ππ∨ π o . Note que, apenas efetuando a redução π2 → π5 em π°, temos que π° → π'°. A solução é portanto análoga à do Caso 5.1.1. SubCaso 7.2.2.2: π3 é normal Neste caso, pela Definição 7.1.5-(7) temos que FP(π)= A2∨A3= FP(π'). Portanto: π° ≡ , π'° ≡ . 4 2 2 1 B ]A[ π π π 4 5 2 1 B ]A[ π π π Note que, apenas efetuando a redução π2 → π5 em π°, temos que π° → π'°. A solução é portanto análoga à do Caso 5.1.1. SubCaso 7.3: π' ≡ k 4 k 3 3 k 2 2 32 2 1 B B ]A[ B ]A[ AA A ) π ππ ∨ π , onde π3 → π3' O resultado segue de maneira análoga ao SubCaso 5.3. 340 SubCaso 7.4: π' ≡ k 4 k 3 3 k 2 2 32 i 1 ) B B ]A[ B ]A[ AA A π ππ ∨ π , onde π4 → π4' O resultado segue de maneira análoga ao SubCaso 5.4. CASO 8: π ≡ k 4 k 3 3 k 2 2 32 3 1 B B ]A[ B ]A[ AA A π ππ ∨ π , onde: • A2∨ A3 é F(π) • A3 é cortada pela regra (∨E) mostrada A solução deste caso é exatamente simétrica à do Caso 7, com relação às subárvores π2 e π3. CASO 9: π ≡ 3 2 1 B B ]A[ xA A π π ∃ π ou π ≡ 3 2 1 B BxA π π ∃ ⊥ π onde: • ∃xA é F(π); • A regra (∃E) mostrada não elimina hipótese de π A solução deste caso segue de maneira análoga à do Caso 1, provada em Massi[1990], pp. 92-95. CASO 10: π ≡ k 3 k 2 1 B B ]A[ xA A π π ∃ π ou π ≡ k 3 k 2 1 B B ]A[ xA π π ∃ ⊥ π , onde: • ∃xA é F(π) • A regra (∃E) mostrada corta hipóteses de π 341 A solução deste caso segue de maneira análoga à do Caso 2, provada em Massi[1990], pp. 96-100. CASO 11: π ≡ , onde: 5 4 321 D C CCBA π Σ ππ ∨ π • C, conseqüência de (∨E), é F(π) e a última ocorrência de um segmento máximo Temos tantos subcasos quantas forem as possibilidades para π'. SubCaso 11.1: π' ≡ , onde π1 → π1' 5 4 321 D C CCBA ) π Σ ππ ∨ π π° ≡ Neste caso, pela Definição 7.1.5-(13) temos que FP(π)= A∨B= FP(π'). Portanto: 5 4 3 4 2 1 D D C D C BA π Σ π Σ π ∨ π e π'° ≡ 5 4 3 4 2 1 D D C D C BA ) π Σ π Σ π ∨ π . Note que, apenas efetuando a redução π1 → π1' em π°, temos que π° → π'°. A solução é portanto análoga à do Caso 5.1.1. SubCaso 11.2: π' ≡ , onde π2→ π2' 5 4 321 D C CCBA ) π Σ ππ ∨ π Neste caso, pela Definição 7.1.5-(13) também temos que FP(π)= A∨B= FP(π'), e portanto a solução segue análoga à do Casso 11.1. SubCaso 11.3: π' ≡ , onde π3 → π3' 5 4 321 D C CCBA ) π Σ ππ ∨ π 342 Neste caso, pela Definição 7.1.5-(13) também temos que FP(π)= A∨B= FP(π'), e portanto a solução segue análoga à do Casso 11.1. SubCaso 11.4: π' ≡ , onde Σ4 → Σ4' 5 4 321 D C CCBA ) π Σ ππ ∨ π Neste caso, pela Definição 7.1.5-(13) temos que FP(π)= A∨B= FP(π'). Portanto: π° ≡ e π'° ≡ . 5 4 3 4 2 1 D D C D C BA π Σ π Σ π ∨ π 5 4 3 4 2 1 D D C D C BA )) π Σ π Σ π ∨ π Note que, apenas efetuando duas vezes a redução Σ4 → Σ4' em π°, uma em cada cópia de Σ4, temos que π° → π'°. A solução é portanto análoga à do Caso 5.1.1. SubCaso 11.5: π' ≡ , onde π5 → π5' ) 5 4 321 D C CCBA π Σ ππ ∨ π Neste caso, como C é F(π), π e π' devem ter as seguintes formas: π ≡ G E D C CCBA F 7 5 4 321 6 π π Σ ππ ∨ π π e π' ≡ G E D C CCBA F 7 5 4 321 6 ) π π Σ ππ ∨ π π , onde π6 → π6'. Neste caso, pela Definição 7.1.5-(13) também temos que FP(π)= A∨B= FP(π'), e a solução segue análoga à do Casso 11.1. Caso 12: π ≡ 5 4 21 D C CxA π Σ π ∃ π , onde: • C, conseqüência de (∃E), é F(π) e a última ocorrência de um segmento máximo 343 A solução deste caso segue análoga à do Caso 11. Assim, por verificação de todos os casos possíveis para FP(π), demonstramos o teorema. ♦ Considerando a descrição do nosso método de prova apresentada em 6.4.2, com este resultado já temos realizados até aqui os passos (a) e (b) daquela descrição. Para completarmos a extensão dos nossos resultados para o sistema I, temos que efetuar o passo (c). Para isso vamos estender a definição de o(π) para I e provar que o(π)< ω e o(π)= lp(π) para toda derivação π de I. O primeiro passo é estender a definição de segmento-α para I. 7.1.8 Extensão da N oção de Segmento-α de C' para I Esta extensão é feita de maneira bastante direta. Basta considerarmos as Definições 2.1.1 a 2.1.10 apresentadas no Capítulo II e substituirmos as seguintes referências: (a) onde se lê C' leia-se I; (b) onde se lê ocorrência leia-se elemento (Definição 7.1.2); (c) onde se lê fórmula máxima leia-se elemento máximo (Definição 7.1.3). Fazendo estas substituições já temos definida a noção de segmento-α para derivações em I. Aplicando estas substituições às Definições 2.1.11 e 2.1.13 também estendemos para I as noções de ocorrência pesada OP, ocorrência candidata a fórmula máxima CM e ocorrência associada a ocorrência pesada, que passam, respectivamente, a serem referidas, por elemento pesado EP, elemento candidato a elemento máximo CM e elemento associado a elemento pesado. 7.1.8.1 OBSERVAÇÕES: (a) É importante frisarmos que o comprimento de um segmento ρ (Definição 2.1.4) em uma derivação π de I não corresponde ao número de ocorrências de fórmulas em ρ, mas ao número de elementos em ρ e, portanto, as Definições 2.1.7 e 2.1.8 de centro e ocorrência simétrica têm elementos como base, e não ocorrências de fórmula. 344 (b) É fácil ver, pela definição das regras (∃E) e (∨E), que se ρ= A1, ..., An é segmento-α de nível 1 em π, então os únicos elementos de ρ cujas fórmulas podem ter os conectivos ∃ ou ∨ como conectivos principais são A1 ou An. O conectivo principal das fórmulas de cada Ai (1< i< n) é certamente ⊃ ou ∧ ou ∀. (c) Também é fácil ver, pela definição da regra (⊥I), que a única ocorrência de ρ= A1, ..., An que pode ser conseqüência de (⊥I) é A1. (d) Quando ψ é EPπ tal que ψ é o primeiro elemento seguinte a X, uma cadeia-φ em π, dizemos que ψ é elemento pesado limite em π, o que denotamos por EPlπ. (e) Chamamos de peso-1 de uma derivação π em I, e denotamos por p1(π), o número de elementos pesados de π. Note que estamos chamando de peso-1 o que em C' chamávamos simplesmente de peso. (f) Uma observação que merece destaque é o fato de que um único elemento pesado φ pode ter mais de um elemento associado, cada um deles devido a um segmento-α ao qual φ pertence. Vejamos o seguinte exemplo: [B]k [D]k π2 π3 π1 A A . π ≡ B∨D (∃xA)1 (∃xA)2 (k) π4 (∃xA)3 G [A] r (∃xA)∧G π5 (∃xA)4 C (r) . C π6 π tem dois segmentos-α de nível 1, que são: ρ1= [(∃xA)1, (∃xA)3], [(∃xA)∧G], [(∃xA)4] e ρ2= [(∃xA)2, (∃xA)3], [(∃xA)∧G], [(∃xA)4]. Os subíndices são apenas para distinção de referência entre ocorrências com a mesma forma e os colchetes delimitam os elementos. Podemos ver que o elemento [(∃xA)4] possui dois elementos associados, que são [(∃xA)1, (∃xA)3], devido a ρ1, e [(∃xA)2, (∃xA)3], devido a ρ2. Apesar de compartilharem a ocorrência de fórmula (∃xA)3, estes dois elementos são distintos. 345 Devido à introdução de novos conectivos e à presença dos elementos com comprimento maior que 1, a extensão da definição de ocorrência multiplicativa não se faz de maneira tão direta. Vejamos. 7.1.9 DEFIN IÇÃO: Elemento Multiplicativo (EM (3.2) R é (∃E) ou (∨E) e corta alguma top-fórmula de π. π) φ é elemento multiplicativo em π (EMπ) quando φ é EPπ e uma das três condições abaixo é satisfeita por φ em π. (1) l(φ)> 1 ou l(ψ)> 1, onde ψ= assπ(φ); (2) φ é EPlπ e ξ, uma das pontes da cadeia X que antecede φ, é tal que l(ξ)> 1; (3) l(φ)= 1 e, considerando R a regra de eliminação da qual φ é premissa maior, uma das condições abaixo é satisfeita: (3.1) R é (⊃E) e a regra de introdução que gera alguma das assπ(φ) corta top- -fórmula de π; 7.1.9.1 OBSERVAÇÕES: (a) Se φ é EMπ e a condição (2) acima é satisfeita ou existe ψ ≠ φ tal que l(ψ)> 1 e ψ= assπ(φ), então dizemos que φ é elemento multiplicativo de tipo 1 em π, o que denotamos por EMπ1 . (b) Se φ é EMπ, l(φ)= 1 e φ não é EMπ1, então dizemos que φ é elemento multiplicativo de tipo 3 em π, o que denotamos por EMπ3. (c) Se φ é EMπ e não é EMπ1 nem EMπ3, então dizemos que φ é elemento multiplicativo de tipo 2 em π, o que denotamos por EMπ2. (d) Se φ é EMπ2, então é claro que l(φ)> 1 e π tem a seguinte forma: π ≡ 4 2 1 B A π Σ π , onde A é a última ocorrência do elemento φ e é premissa maior de regra de eliminação em π. Neste caso, se A é da forma C⊃B, então Σ2= {π2} e ocorre à esquerda de A; se A é de uma das formas ∀xB ou C∧B ou B∧C, então Σ2= ∅ (a seqüência vazia); se A é da forma C∨D, Σ2= {π2, π3}; e se A é da forma ∃xC, então Σ2= {π2}. 346 (e) A uma derivação que não possui elemento multiplicativo chamamos derivação estrela. (f) O grau de um elemento φ, gr(φ), é definido, exatamente como em C', como o número de conectivos da fórmula de φ. O grau máximo multiplicativo da derivação π, g(π), também como em C' é definido por: g(π)= max{gr(φ) / φ é EMπ}. Vamos agora apresentar todos os passos formais da extensão da definição de o(π), entre eles a nova seqüência estrela. Após estas definições formais faremos um comentário informal explicando a intuição da estratégia adotada nesta extensão. 7.1.10 DEFIN IÇÃO: Operação →1 Seja φ um EMπ1. Sejam ψ1, ..., ψm todos os elementos associados a φ, distintos de φ, tais que l(ψi)> 1, para 1 ≤ i ≤ m. Sejam ψm+1, ..., ψn todas as pontes de todos os segmentos-α de π, nos quais a condição 7.1.9-(2) é satisfeita para φ. Seja ψk um elemento tal que 1 ≤ k ≤ n e, para todo j ≠ k tal que 1 ≤ j ≤ n, posπ((ψk)1)> posπ((ψj)1). Nestas condições é certo que π tem uma das seguintes formas: π ≡ ou π ≡ , onde: 6 5 4 321 D A A AADC π Σ π ∨ πππ 6 5 4 21 D A A AxB π Σ π ∃ ππ (a) A ocorrência A, raiz de π4, é a última ocorrência do elemento φ, e é premissa maior de regra de eliminação. (b) A ocorrência A, top-fórmula destacada de π4, é (ψk)2. (ψk)1 é ou r(π2) ou r(π3). Definimos a operação →1 da seguinte forma: Quando (ψk)1= r(π2), temos: 347 π ≡ →1 ou 6 5 4 321 D A A AADC π Σ π ∨ πππ 6 5 341 2 D A AADC A π Σ ∨ πππ π π ≡ →1 . 6 5 4 21 D A A AxB π Σ π ∃ ππ 6 5 41 2 D A AxB A π Σ ∃ ππ π 7.1.10.1 OBSERVAÇÃO: Dizemos que π é uma derivação marcada quando toda ocorrência φ que é premissa maior de regra (∃E) ou (∨E) possui uma marca numérica para algum número natural n. Denotaremos estas ocorrências por (φ) Quando (ψk)1= r(π3) temos: π ≡ →1 . 6 5 4 321 D A A AADC π Σ π ∨ πππ 6 5 421 3 D A AADC A π Σ ∨ πππ π Seja ψ= A1, ..., An um elemento tal que ψ= assπ(φ) e n> 1, ou seja, l(ψ)> 1. A operação →1 se aplica a elementos como ψ e tem por objetivo tornar ψ um elemento unitário, transferindo as ocorrências A1, ..., An-1 de ψ para φ. Note que após a operação →1 em ψ, o comprimento de ψ diminui uma unidade e o de φ aumenta uma unidade. 7.1.11 DEFIN IÇÃO: Derivação Marcada (n). 348 7.1.11.1 NOTAÇÕES: (a) Denotamos a soma total das marcas numéricas de uma derivação marcada π por m(π). (b) Definimos o peso de uma derivação marcada π, p(π), por: p(π)= p1(π)+ m(π), onde p1(π) é como definido em 7.1.8.1-(e). (c) Dizemos que π →0 π', quando π' é obtido de π marcando-se todas as premissas maiores das regras (∃E) e (∨E) de π com zero. 7.1.12 DEFIN IÇÃO: Operação →2 Seja π uma derivação marcada e φ um EMπ2. π tem uma das seguintes formas: π ≡ ou π ≡ , onde: 5 )n( 321 D A AA)CB( π Σ ∨ πππ 5 )m( 21 D A A)xB( π Σ ∃ ππ 44 a ocorrência A, conseqüência da regra de (∨E) ou (∃E) mostrada, é a última ocorrência do elemento φ e é premissa maior de regra de eliminação, sendo que Σ4 pode ocorrer à esquerda de A. Definimos então a operação →2 da seguinte forma: π ≡ →2 ( e 5 4 )n( 321 D A AA)CB( π Σ ∨ πππ 5 )1n( 441 32 D DD)CB AA π ∨ ΣΣπ ππ + π ≡ →2 . 5 4 )m( 21 D A A)xB( π Σ ∃ ππ 5 )1m( 41 2 D D)xB( A π ∃ Σπ π + 349 7.1.12.1 OBSERVAÇÃO: Note que a operação →2 é de fato uma redução permutativa (Definições 1.4.9 e 1.4.10) que, além de realizar a redução, acrescenta uma unidade na marca numérica da premissa maior da regra de (∃E) ou (∨E) expressa. 7.1.13 DEFIN IÇÃO: Multiplicação Estrela (→* ) Seja φ um EMπ3 e ψ o único elemento em π tal que ψ= assπ(φ). Definimos a multiplicação-* de φ em π como uma das transformações abaixo, dependendo da forma de φ: (a) Se φ ≡ A⊃B, definimos: π ≡ 3 2 k 1 B BA ]A[ A π ⊃ ππ →* 3 2 1 B BA ]A[ A π ⊃ π π , onde: • as hipóteses destacadas de π2 são todas cortadas pela regra de introdução que gera o elemento associado a φ em π. (b) Se φ ≡ ∃xA, definimos: π ≡ k 4 3 k 2 1 B B ]A[ xA A π π ∃ π π →* 4 3 1 2 B B ]A[ xA A π π π ∃ π , onde: • A= r(π1) é a premissa do elemento associado a φ, e as hipóteses destacadas de π3 são todas cortadas pela regra (∃E) expressa. (c) Se φ ≡ A∨B, definimos: (c.1) π ≡ k 5 43 k 2 1 C CC ]A[ BA A π ππ ∨ π π →* 5 43 1 2 C CC ]A[ BA A π ππ π ∨ π , onde: • A= r(π φ, e as hipóteses destacadas de π3 são todas cortadas pela regra (∨E) expressa. 1) é a premissa do elemento associado a 350 (c.2) π ≡ k 5 4 k 32 1 C C ]B[ CBA B π ππ ∨ π π →* 5 4 1 32 C C ]B[ CBA B π π π π ∨ π , onde: • B= r(π1) é a premissa do elemento associado a φ, e as hipóteses destacadas de π4 são todas cortadas pela regra (∨E) expressa. 7.1.14 DEFIN IÇÃO: Quantidade de Ocorrências de Grau Máximo do Tipo 1 ng1(π) Seja Σ1 um subconjunto das ocorrências de fórmula de π definido por: ζ∈Σ1 ⇔ existe um EMπ φ, com gr(φ)= g(π), tal que uma das propriedades seguintes é válida: (1) ζ pertence a algum elemento ψ, distinto de φ, tal que ψ= assπ(φ); (2) φ é EPlπ e ζ pertence a algum elemento ξ que é ponte da cadeia-φ que antecede φ. Ao número total de ocorrências de fórmula em π que pertencem a Σ1 chamamos quantidade de ocorrências de grau máximo do tipo 1, e denotamos por ng1(π). 7.1.14.1 OBSERVAÇÃO: ng1(π) representa a soma do número total de ocorrências pertencentes aos elementos associados dos EMπ de grau máximo, com o número total de ocorrências pertencentes às pontes dos EMπ de grau máximo que são EPlπ. Note que não estamos considerando aqui os elementos que são associados a si mesmos (se φ= assπ(φ), as ocorrências de φ não são computadas em ng1(π)). Note também que mesmo que uma dessas ocorrências pertença a mais de um segmento-β, ela só é contada uma vez por nossa definição. Seja Σ um subconjunto das 7.1.15 DEFIN IÇÃO: Quantidade Total de Ocorrências de Grau Máximo ng2(π) π definido por: 2 ocorrências de fórmula de ζ∈Σ2 ⇔ ζ pertence a algum EMπ φ, onde gr(φ)= g(π). À soma do número total de ocorrências de fórmula em π que pertencem a Σ2, com ng1(π), chamamos quantidade total de ocorrências de grau máximo, e denotamos por ng2(π). 351 7.1.15.1 OBSERVAÇÃO: ng2(π) representa a soma do número total de ocorrências pertencentes a algum EMπ de grau máximo, com o número total de ocorrências de fórmulas que pertencem aos elementos associados a estes elementos multiplicativos mais as ocorrências que pertencem aos elementos que são pontes das cadeias X que antecedem os EPlπ de grau máximo. Aqui também, mesmo que uma dessas ocorrências pertença a mais de um segmento-α, ela só é contada uma vez por nossa definição. A seguir apresentamos a extensão das definições de ocorrência estrela e seqüência estrela. 7.1.16 DEFIN IÇÃO: Elemento Estrela T(π) Seja π uma derivação e φ um EMπ tal que: gr(φ)= g(π) e posπ((φ)1)= max{posπ((ξ)1) / ξ é EMπ e gr(ξ)= g(π)}. Definimos T (π) por indução em l(π) da seguinte forma: (1) Se φ é EM π3, então T (π)= φ; π1 ou EM (2) Se φ é EMπ2 temos que π tem a seguinte forma: π ≡ 4 2 1 B A π Σ π , onde A é a última ocorrência de φ, como descrito na Observação 7.1.9.1-(d). Neste caso: (2.1) Se existe em Σ2 alguma ocorrência com mesmo grau que φ e que pertença a algum EMπ ou a elemento associado a EMπ, então: T (π)= T (π ), onde π  ≡ 4 2 B A π Σ . (2.2) Caso contrário, T (π)= φ. 7.1.16.1 OBSERVAÇÃO: Não é difícil ver que, para toda derivação não estrela π, T (π) existe e é único. 352 7.1.17 DEFIN IÇÃO: Seqüência Estrela Uma seqüência estrela para uma derivação π é uma seqüência de derivações denotadas por π•0, π•1, π•2, ..., tal que são satisfeitas as seguintes condições: (1) π →0 π•0; (2) Cada π•i+1 é obtido de π•i por uma das seguintes operações: (2.1) Se T (π•i) é EM1πi, então: π•i → 1 π•i+1; (2.2) Se T (π•i) é EM2πi, então: π•i → 2 π•i+1; (2.3) Se T (π•i) é EM3πi e T (π•i) possui apenas um elemento associado, então: π•i →* π•i+1; (3) A seqüência estrela termina em π•n se π•n é derivação estrela ou se nenhuma transformação definida em (2) se aplica a π•n. 7.1.17.1 OBSERVAÇÕES: (a) Vale lembrar que segundo a Observação 7.1.11.1-(c), a operação π →0 π•0 apenas marca com 0 todas as premissas maiores das regras (∃E) e (∨E) de π. (b) Temos pela Observação 7.1.16.1 que, para toda derivação não estrela π, T (π) existe e é único. Portanto é claro que a seqüência estrela existe e é única para toda derivação π. (c) Se a seqüência estrela para π é finita e π•n, sua última derivação, é derivação estrela, então denotamos π•n por π*. (d) Note que em uma derivação estrela π* todos os elementos pesados e todos os elementos associados a elementos pesados têm comprimento igual a 1. Caso contrário, pela Definição 7.1.9, π* não seria derivação estrela. Além disso, ng1(π*)= ng2(π*)= 0. (e) Note, pela Definição 7.1.13 de multiplicação-*, que se T (π•n) é EM3 e T (π•n) possui mais de um elemento associado, então π•n é o último elemento da seqüência estrela para π e não é elemento estrela. (f) Vamos provar mais adiante que a seqüência estrela de toda derivação π termina em uma derivação estrela π•n, para algum n< ω. Ou seja, a cada derivação π temos uma e apenas uma derivação estrela π* associada. 353 7.1.18 DEFIN IÇÃO: Ordinal N atural o(π) Seja π uma derivação em I cuja seqüência estrela é finita e termina em π*. Definimos o ordinal natural de π, e denotamos por o(π), como: o(π)= p(π*). 7.1.18.1 OBSERVAÇÕES: (a) Note que, como definimos em 7.1.11.1-(b), p(π*)= p1(π*)+ m(π*). Assim, o(π) representa o número de todos os elementos pesados em π* somado à somatória de todas as marcas de π*. (b) Mais adiante vamos provar que o(π) está definido, é único e finito para toda derivação π. Faremos isto provando que a seqüência estrela de π está definida, é única e termina em um número finito de passos em uma derivação estrela π*. Vamos agora explicar um pouco da intuição por trás desta definição de o(π). 7.1.19 Entendendo a N ova Seqüência Estrela O objetivo da seqüência estrela é, como no caso de C', transformar π em uma derivação π* na qual podemos contar efetivamente todas as possíveis fórmulas máximas de π. Para isso a seqüência estrela tem que realizar todas as multiplicações de subárvores possíveis de ocorrerem nas seqüências de redução para π, sem no entanto reduzir de fato nenhum elemento máximo. Além disso, para que tenhamos uma atribuição numérica finita, temos que mostrar que a seqüência estrela para toda derivação π é finita e termina em uma derivação estrela. Da mesma forma que em C', a multiplicação-* definida em 7.1.13 realiza a multiplicação de subárvores exatamente como as reduções operacionais fariam, sem no entanto eliminar nenhuma fórmula máxima atual nem potencial. Mas para o sistema I temos, além das reduções operacionais, as reduções permutativas. Definimos as operações →1 e →2 acima justamente para realizarmos, na seqüência estrela, as multiplicações que as reduções permutativas promovem. Vamos apresentar um exemplo para entendermos melhor o papel das operações →1 e →2 na seqüência estrela. Considere π a seguinte derivação: 354 [B]k [D]k π2 π3 π1 A A . π ≡ B∨D (∃xA)1 (∃xA)2 (k) π4 (∃xA)3 G [A] r (∃xA)∧G π5 (∃xA)4 C (r) C π6 Temos em π dois segmentos-α de nível 1, que são: ρ1= [(∃xA)1, (∃xA)3], [(∃xA)∧G], [(∃xA)4] e ρ2= [(∃xA)2, (∃xA)3], [(∃xA)∧G], [(∃xA)4]. Os índices inferiores são apenas para distinção de referência entre as várias ocorrências de ∃xA, e os colchetes separam os elementos que constituem os segmentos-α. Repare que π tem apenas uma fórmula máxima ((∃xA)∧G). Realizando sua redução temos como resultado a seguinte derivação π': [B]k [D]k π2 π3 π1 A A . [A] r π' ≡ B∨D (∃xA)1 (∃xA)2 (k) π5 (∃xA)4 C (r) C π6 A redução de π', por sua vez, através da redução permutativa de (∃xA)4 resulta na derivação π'' que tem a seguinte forma: [B]k [D]k π2 [A] r π3 [A] s A π5 A . π5 π1 (∃xA)1 C (r) (∃xA)2 C (s) π'' ≡ B∨D C C (k) . C π6 355 π'' possui duas fórmulas máximas ((∃xA)1 e (∃xA)2). Reduzindo cada uma destas FMs temos π''' e π'''' com a s seguintes formas: [B]k [D]k π2 π3 [A] s [A] A π5 π1 π5 (∃xA)2 C (s) π''' ≡ B∨D C C (k) C π6 [B]k [D]k π2 π2 [A] [A]r π1 π5 π5 π'''' ≡ B∨D C C (r) . C π6 Note que a redução de (∃xA)∧G em π fez unir em π' os elementos associados a (∃xA)4 com a própria (∃xA)4. Esta união transformou (∃xA)4 de π' na última ocorrência de um segmento máximo que deve ser reduzido com redução permutativa. Tal redução transformou a ocorrência pesada (∃xA)4 de π' em duas fórmulas máximas de π'', uma para cada elemento associado que (∃xA)4 possuía em π. Além disso, a subárvore π5 foi duplicada em tal redução. A nossa seqüência estrela deve portanto ser capaz de prever que elementos multiplicativos que possuam elementos associados com comprimento maior que 1, quando se tornarem segmentos máximos, serão segmentos máximos nos quais as reduções permutativas se aplicam. É importante notarmos também, que a fórmula máxima (∃xA)∧G, que possuía apenas um elemento associado em π (ela própria), e que ocorria entre (∃xA)4 e seus elementos associados, não foi duplicada pela seqüência de redução, tendo sido reduzida uma única vez. Dessa forma, a nossa definição de o(π) tem que ser boa o suficiente para prever que a ocorrência pesada (∃xA)4 vai ser duplicada por redução permutativa, mas que (∃xA)∧G não vai, pois é reduzida antes de tal duplicação. 356 Assim, uma possível operação para a seqüência estrela seria transportar para junto dos elementos pesados, os elementos associados a estes EPπ que tenham comprimento maior que 1. Sem que, no entanto, tal transformação multiplicasse qualquer ocorrência de fórmula de π. É exatamente esta tarefa que a operação →1 definida em 7.1.10 realiza. Uma outra possível operação para a seqüência estrela seria realizar as multiplicações que as reduções permutativas fariam nas seqüências de reduções. Esta tarefa é efetuada pela operação →2 . Vamos agora realizar a seqüência estrela para π para compararmos com a seqüência de redução acima. Considere a derivação π do nosso primeiro exemplo e assuma que π1, ... π6 são derivações estrela, ou seja, não possuem elemento multiplicativo. Pela Definição 7.1.17, π•0, a primeira derivação da seqüência estrela de π tem a forma: π•0 ≡ . 6 r 4 )0( x 5x r 3x 4k 2x1x )0( 1 32 kk C C))A(( G)A( ]A[G)A( )A()A()DB( AA ]D[]B[ π ∃ π∧∃ ∃ π∃∃∨ π ππ Nestas condições, pela Definição 7.1.16 de T (π), temos que [(∃xA)4]= T (π). Como já vimos, [(∃xA)4] pertence a dois segmentos-β de π e possui dois elementos associados: ρ1= [(∃xA)1, (∃xA)3], [(∃xA)∧G], [(∃xA)4]; ρ2= [(∃xA)2, (∃xA)3], [(∃xA)∧G], [(∃xA)4]. [(∃xA)1, (∃xA)3] = assπ([(∃xA)4]) , devido a ρ1; [(∃xA)2, (∃xA)3] = assπ([(∃xA)4]) , devido a ρ2. Note também que [(∃xA)4] é EM1 em π•0, pois possui elemento associado distinto do próprio [(∃xA)4] e com comprimento maior que 1. Portanto, o primeiro passo da seqüência estrela para π é π•0 →1 π•1. 357 Note que o elemento ψk no qual se aplica a operação →1 , descrito na Definição 7.1.10, é [(∃xA)1, (∃xA)3]. Portanto, também pela Definição 7.1.10, π•1 tem a seguinte forma: ρ• ∃xA ∃xA)∧G], [(∃xA ∃xA π•1 ≡ 6 r 4 )0( x 5k 3x2x )0( r x1 31x k 4 2 k C C))A(( )A()A()DB( ]A[ AGA G)A( ]D[A ]B[ π ∃ π∃∃∨ ∧∃π π∃ π π Os segmentos-α de π•1 são: 1 1= [( )1], [( )2, ( )4] e ρ2•1= [(∃xA)3], [(∃xA)4]. Como estamos considerando que π1, ..., π6 são derivações estrela, pela forma de π•1 e pela Definição 7.1.16, temos que [(∃xA)2, (∃xA)4]= T (π•1). Note também, pelas Observações 7.1.9.1, que [(∃xA)2, (∃xA)4] é EM2 em π•1. Portanto, pela Definição 7.1.17, o segundo passo da seqüência estrela é π•1 →2 π•2. Assim, pela forma de π•1 e pela Definição 7.1.12, π•2 tem a seguinte forma: π•2 ≡ 6 k )1( r 3 )0( xs 2 )0( x1 55x r 3 s 1x k 4 2 k C CC)DB( C))A((C))A(( A GA ]A[]A[G)A( ]D[A ]B[ π ∨ ∃∃π ππ∧∃ π∃ π π Os segmentos-α de π•2 são: ρ1•2= [(∃xA)1], [∃xA ∧ G], [(∃xA)2] e ρ2•2= [(∃xA)3]. 358 Note que [(∃xA)2]= T (π•2) é EM3. Como [(∃xA)2] possui um único elemento associado em π, a multiplicação-* está definida para [(∃xA)2] em π. Portanto, o terceiro passo da seqüência estrela é π•2 →* π•3. Assim, pela forma de π•2 e pela Definição 7.1.13-(b), π•3 tem a seguinte forma: π•3 ≡ 6 k )1( r 3 )0( x2 )0( x1 55x r 31x k 24 k C CC)DB( C))A((C))A(( AGA ]A[]A[G)A( ]D[A ]B[ π ∨ ∃∃π ππ∧∃ π∃ ππ Os segmentos-β de π•3 são: 60 ρ1•3= [(∃xA)1], [∃xA ∧ G], [(∃xA)2] e ρ2•3= [(∃xA)3] Note que [(∃xA)3] é o único EM em π•3 e é EM3. Alem disso, (∃xA)3 é, ele próprio, seu único elemento associado. Portanto, o quarto passo da seqüência estrela para π é: π•3 →* π•4. Assim, pela forma de π•3 e pela Definição 7.1.13-(b), π•4 tem a seguinte forma: π•4 ≡ 6 k )1( 3 )0( x2 )0( x1 55x 1x 324 kk C CC)DB( C))A((C))A(( AGA ]A[]A[G)A( A ]D[]B[ π ∨ ∃∃π ππ∧∃ ∃ πππ 60 Não estamos considerando aqui, apenas por simplicidade, que a junção criou novos segmentos-β que não existiam em π2 nem em π5. Isso pode de fato ocorrer, mas não interfere nos esclarecimentos que estamos apresentando. 5 2 A π π 359 Como estamos considerando π1, ..., π6 derivações estrela, e que as junções [ e [ não criam novas fórmulas máximas, temos que π• 5 2 ]A π π 5 3 ]A π π 4 é derivação estrela, e portanto a seqüência estrela para π é: π →0 π•0 →1 π•1 →2 π•2 →* π•3 →* π•4 ≡ π*. A nova definição de o(π) que propusemos, além de somar todas as ocorrências pesadas de π*, acrescenta a este número a soma total de todas as marcas numéricas das ocorrências de π*. Vamos calcular este valor em π•4 ≡ π*. Note que π•4 possui dois segmentos-β, que são: Mas apenas a operação →2 não é suficiente para tratar todos os casos. Em π, por exemplo, não é a ocorrência multiplicativa (∃xA redução permutativa, mas sim seus elementos associados. Não podemos aplicar redução permutativa a estes elementos associados porque ela duplicaria a fórmula máxima ∃xA∧G ρ1*= [(∃xA)1], [∃xA ∧ G], [(∃xA)2] e ρ2*= [(∃xA)3]. Este dois segmentos possuem 3 ocorrências pesadas, que são: ∃xA∧G, (∃xA)2 e (∃xA)3. Além disso, a soma das marcas numéricas em π•4 é 1+ 0+ 0= 1. Logo, p(π*)= 3+ 1= 4 e portanto, como o(π)= p(π*)+ 1, temos o(π)= 5. Voltando à seqüência de redução para π que apresentamos acima, podemos ver que ela era a única possível, e portanto era a pior seqüência para π. Além disso, ela tinha comprimento 5. Portanto, para este exemplo com π, temos o(π)= lp(π). Vamos agora explicar melhor o papel das operações →1 e →2 dentro da seqüência estrela. A redução permutativa de um segmento máximo pode duplicar ocorrências em uma derivação. Tais duplicações têm que ser computadas na seqüência estrela por algum tipo de operação. Isso de fato é feito pela operação →2 . Mas diferentemente das reduções operacionais, as reduções permutativas não eliminam nenhuma ocorrência da derivação. Dessa forma, não é possível alterá-las como fizemos com as reduções operacionais quando definimos as multiplicações-*. Como a operação →2 de fato realiza uma redução, temos que, de alguma maneira, contar esta redução em p(π*). Para isso introduzimos as marcas numéricas em premissas maiores de (∃E) e (∨E). )4 que é segmento máximo e pode sofrer 360 que, como já vimos, não é duplicada em nenhuma seqüência de redução para π. Para resolver este problema criamos a operação →1 . O que a operação →1 essencialmente faz é "abaixar" para junto da ocorrência pesada o segmento máximo que estava junto de uma das ocorrências associadas. Note, pela forma da transformação descrita na Definição 7.1.10, que a operação →1 não duplica nenhuma ocorrência ou subárvore da derivação. Apenas troca uma regra de lugar. Assim, como as operações da seqüência estrela parecem, intuitivamente, realizar todas as multiplicações de ocorrências que as reduções fariam, se provarmos que para toda derivação π temos uma derivação π* associada, obtida através de finitas operações da seqüência estrela, teremos em o(π) uma atribuição numérica unívoca e finita que intuitivamente representa o número de todas as possíveis fórmulas máximas para π. Testar se esta intuição é correta é provar que o(π)= lp(π) para toda derivação π. Antes disso vamos apresentar o esboço da prova de que, para toda derivação π, a seqüência estrela associa, através de finitos passos, uma derivação estrela finita π*. Como corolário deste teorema obteremos a prova de que para toda derivação π, o(π) está definido e é finito. 7.1.20 TEOREMA: Existência, Finitude e U nicidade de π* Para toda derivação π a seqüência estrela existe, é única, e termina, em um número finito de passos, em uma derivação estrela π*. PROVA: Vamos apresentar aqui apenas o esboço da prova de que a nova seqüência estrela, que definimos em 7.1.17, associa a cada derivação π uma única derivação estrela, π*, através de um número finito de passos. Que a seqüência estrela existe e é única para toda derivação π, já vimos na Observação 7.1.17.1-(b). Resta portanto provar que para toda derivação π a seqüência estrela é finita e termina em uma derivação estrela π*. Usaremos como índice de indução da prova a seguinte tripla: 〈g(π), ng2(π), ng1(π)〉. Dizemos que 〈g(π), ng2(π), ng1(π)〉 > 〈g(π'), ng2(π'), ng1(π')〉 quando: g(π)> g(π') ou g(π)= g(π') e ng2(π)> ng2(π') ou g(π)= g(π') e ng2(π)= ng2(π') e ng1(π)> ng1(π'). 361 Note que, pelas definições de g(π), ng1(π) e ng2(π), π é uma derivação com índice de indução 〈0,0,0〉 se, e somente se, π é uma derivação estrela. Basta portanto provarmos que, para toda derivação não estrela π, a operação da seqüência estrela está definida e transforma π em π' tal que 〈g(π), ng2(π), ng1(π)〉 > 〈g(π'), ng2(π'), ng1(π')〉. Analisemos cada caso da Definição 7.1.17 da seqüência estrela: CASO 1: φ= T (π) é EM1π Neste caso a operação da seqüência estrela é: π →1 π'. Conforme a forma de π, de acordo com a Definição 7.1.10, um dos três casos abaixo ocorre: π ≡ →1 π' ≡ ou 6 5 4 321 D A A AADC π Σ π ∨ πππ 6 341 2 D A AADC A π Σ ∨ πππ π 5 π ≡ →1 π' ≡ ou 6 4 x 21 D A A AB π Σ π ∃ ππ 6 x 41 2 D A AB A π Σ ∃ ππ π 5 5 π ≡ →1 π' ≡ , 6 5 4 321 D A A AADC π Σ π ∨ πππ 6 5 421 3 D A AADC A π Σ ∨ πππ π onde A, raiz de π4 é, em π, a última ocorrência do elemento φ e é premissa maior de regra de eliminação . A, top-fórmula de π4 é, em π, a segunda ocorrência do elemento associado ou da ponte relacionada a φ, segundo a Definição 7.1.10. 362 Não é difícil provar que a operação →1 não altera em nada os demais segmentos-α de π. Apenas diminui em uma unidade o comprimento de um elemento associado a φ e aumenta em uma unidade o comprimento de φ. Temos então neste caso que: g(π)= g(π'), ng2(π)= ng2(π') e ng1(π)= ng1(π')+ 1. Portanto: 〈g(π), ng2(π), ng1(π)〉 > 〈g(π'), ng2(π'), ng1(π')〉. CASO 2: φ= T (π) é EM2π Neste caso a operação da seqüência estrela é: π →2 π'. Conforme a forma de π, de acordo com a Definição 7.1.12, um dos dois casos abaixo ocorre: π ≡ →2 ou 5 4 )n( 321 D A AA)CB( π Σ ∨ πππ 5 )1n( 441 32 D DD)CB( AA π ∨ ΣΣπ ππ + π ≡ →2 , 5 4 )m( x 21 D A A)B( π Σ ∃ ππ 5 )1m( x 41 2 D D)B( A π ∃ Σπ π + onde a ocorrência A, conseqüência da regra de (∨E) ou (∃E) mostrada, é a última ocorrência do elemento φ= T (π) e é premissa maior de regra de eliminação, sendo que Σ4 pode ocorrer à esquerda de A. Vamos provar, neste caso, que g(π)= g(π') e ng2(π)> ng2(π'). Note que a operação →2 diminui o comprimento do elemento φ= T (π) em uma unidade e aumenta o comprimento do elemento que contém D também em uma unidade. Além disso, no primeiro caso para a forma de π, a operação →2 duplicou Σ4 e uma ocorrência de D. Os demais segmentos-α não se alteram com a operação →2 . O próprio φ continua elemento multiplicativo em π', e portanto, g(π)= g(π'). Pelo critério de escolha de T (π), sabemos que: (i) D não pertence a EMπ nem a elemento associado a EMπ que tenha mesmo grau que φ. 363 (ii) Σ4 não possui elemento multiplicativo de mesmo grau que φ. Logo ng2(π)= ng2(π')+ 1, pois todos os possíveis aumentos no número de ocorrências em elementos multiplicativos se dão em elementos de grau menor que o grau de φ= T (π). Portanto: 〈g(π), ng2(π), ng1(π)〉 > 〈g(π'), ng2(π'), ng1(π')〉. CASO 3: φ= T(π) é EM3π Neste caso a operação da seqüência estrela é: π →* π'. Como a multiplicação-* só é definida para elementos multiplicativos que possuam um único elemento associado, temos primeiramente que provar que se φ= T (π) é EM3π, então φ possui apenas um elemento associado. O que não é difícil de perceber. Pelas Observações 7.1.9.1, se φ é EM3π é porque l(φ)= 1 e para todo ψ= assπ(φ), temos l(ψ)= 1. Mas φ só pode ter mais de um elemento associado, se entre φ e seus elementos associados houver pelo menos uma regra (∨E) que bifurque o segmento-α ao qual φ pertence. Mas se isso ocorre, esta regra produz um elemento de comprimento maior que 1, que portanto será EMπ ou elemento associado a EMπ. Mas como este elemento ocorre entre φ e seus elementos associados, ele certamente tem grau maior que φ. Neste caso, φ não seria T (π). Este elemento é que seria. Portanto, se φ= T (π) é EM3π, então φ tem apenas um elemento associado. A prova, daqui para frente, é como no caso de C'. φ= T (π) tem comprimento 1, e após a multiplicação-* deixa de ser elemento multiplicativo. Todos os elementos multiplicativos da subárvore multiplicada, e também os novos que podem surgir devido às novas junções de π', têm grau menor que g(π). Portanto, se φ fosse o último EMπ com grau igual a g(π) teríamos que g(π')< g(π). Caso houvesse outros, g(π)= g(π') mas ng2(π)> ng2(π'). Portanto: 〈g(π), ng2(π), ng1(π)〉 > 〈g(π'), ng2(π'), ng1(π')〉. ♦ 7.1.21 COROLÁRIO: Existência, Finitude e U nicidade de o(π) Para toda derivação π em I, o(π) está definido, é único e finito. PROVA: Como provamos que a seqüência estrela é única e finita para toda derivação π, terminando em uma derivação estrela π*, então, pela Definição 7.1.18, já temos que o(π) existe e é único para todo π. 364 Como as operações →* , →1 e →2 são operações finitárias (modificam finitamente a derivação), então π* é uma derivação que tem comprimento finito. Logo π* tem finitas ocorrências pesadas. Assim, p1(π*) e m(π*) são finitos. Portanto, o(π)= p(π*)= p1(π*)+ m(π*)+ 1 é uma atribuição numérica unívoca e finita para cada derivação π de I. ♦ Com a Definição de o(π) já devidamente estabelecida, vamos agora apresentar um esboço da prova de que o(π)= lp(π) para toda derivação π de I. Com tal resultado e o Teorema 7.1.7 teremos todos os passos principais do nosso método estendidos para o sistema I. 7.1.22 Esboço Geral da Prova de que o(π)= lp(π) Para o sistema C', obtivemos o resultado de que, para toda derivação π, o(π)= lp(π), como um corolário do Teorema 3.4.2, onde provamos que o(π)= o(π°)+ 1. Para provarmos que este resultado também vale para derivações em I, vamos mostrar que todos os casos novos a tratar se encaixam, de alguma maneira, nos passos da solução apresentada no Capítulo III. Quando provamos que o(π)= o(π°)+ 1 no Capítulo III, dividimos a solução em casos conforme a forma de F(π). Àqueles casos temos que acrescentar as novas formas possíveis para F(π) quando π é derivação em I. Para fazer isso vamos primeiramente apresentar, sem demonstração, algumas propriedades de derivações π nas quais F(π) se enquadra nos novos casos devido aos conectivos ∃ e ∨. Condicionalmente a estes resultados, esboçaremos a prova de que o(π)= o(π°)+ 1 e, conseqüentemente, o(π)= lp(π) para qualquer derivação π em I. Feito isso, esboçaremos a prova de cada uma destas propriedades. 7.1.22.1 Propriedades sobre Derivações com os N ovos Casos de F(π) (a) Se π é uma derivação como descrita em 7.1.5-(9) tal que π1 e π3 são normais, ou como descrita em 7.1.5-(10) tal que π1 e π2 são normais, então: • p(π*)= p(π°*)+ 1. (b) Se π é uma derivação como descrita em 7.1.5-(12), então: • p(π*)= p(π1*)+ p(π *)+ 1. 365 (c) Se π é uma derivação como descrita em 7.1.5-(13) ou 7.1.5-(14), então: • p1(π*)= p1(π°*) e m(π*)= m(π°*)+ 1 ⇒ p(π*)= p(π°*)+ 1. (d) Se π é uma derivação como descrita em 7.1.5-(7), 7.1.5-(8) ou 7.1.5-(11), então: • π* ≡ π∆*, onde π∆ é obtida de π pela multiplicação-* de F(π). 7.1.22.2 Esboço da Extensão para I da prova de que o(π)= o(π°)+ 1 Trataremos aqui apenas os novos casos para F(π) que não foram tratados na prova do Teorema 3.4.2. Os novos casos possíveis para F(π) são: CASO 5: π é como em 7.1.5-(9) π ≡ k 4 k 3 32 32 2 1 B B ]A[ BAA A π ππ ∨ π ou (b) π ≡ k 4 k 3 32 32 1 B B ]A[ BAA π ππ ∨ ⊥ π , onde: • A2∨A3 é F(π) e • A2 não é cortada pela regra (∨E) mostrada. Note que podemos escrever π como π ≡ , onde: 7 32 6 AA π ∨ π π6 ≡ 32 2 1 AA A ∨ π ou π6 ≡ 32 1 AA ∨ ⊥ π e π7 ≡ k 4 3 k 3 2 32 B B ]A[ BAA π ππ ∨ . Além disso, não é difícil ver, pela Observação 7.1.8.1-(6), que as operações da seqüência estrela são todas locais a π6 e π7, e portanto: (i) π* ≡ , p(π*)= p(π6*)+ p(π7*)+ 1. ∗π ∨ ∗π 7 32 6 AA Vamos analisar tantos subcasos quantas forem as possibilidades para π° devido à Definição 7.1.5-(9). SubCaso 5.1: π3 não é normal 366 Neste caso, por 7.1.5-(9) temos que: π° ≡ k 4 k 3 3 2 32 2 1 B B ]A[ BAA A π ππ∨ π o ou π° ≡ k 4 k 3 3 2 32 1 B B ]A[ BAA π ππ∨ ⊥ π o . Note que π7° ≡ k 4 3 k 3 2 32 B B ]A[ BAA π ππ ∨ o , e que portanto: π° ≡ . o 7 32 6 AA π ∨ π (ii) Além disso, como em π, temos: π°* ≡ e p(π°*)= p(π6*)+ p(π7°*)+ 1. ∗ π ∨ ∗π o 7 32 6 AA Note, por (i), que p(π7*)< p(π*) e portanto vale HI para π7. Assim temos: p(π7*)= p(π7°*)+ 1. Portanto, por (i) e (ii), p(π*)= p(π°)*+ 1 e o(π)= o(π°)+ 1. SubCaso 5.2: π3 é normal mas π1 não Neste caso, por 7.1.5-(9) temos que: π° ≡ k 4 k 3 32 32 2 1 B B ]A[ BAA A π ππ ∨ πo ou π° ≡ k 4 k 3 32 32 1 B B ]A[ BAA π ππ ∨ ⊥ πo . Note que π6° ≡ 32 2 1 AA A ∨ πo ou π6 ≡ 32 1 AA ∨ ⊥ πo , e que portanto: π° ≡ . 7 32 6 AA π ∨ πo (iii) Além disso, como em π, temos: π°* ≡ e p(π°*)= p(π6°*)+ p(π7*)+ 1. ∗π ∨ ∗ π 7 32 6 AA o Note, por (i), que p(π6*)< p(π*) e portanto vale HI para π6. Assim temos: p(π6*)= p(π6°*)+ 1. Portanto, por (i) e (iii), p(π*)= p(π°)*+ 1 e o(π)= o(π°)+ 1. SubCaso 5.3: π1 e π3 são normais 367 Neste caso o resultado é imediato por 7.1.22.1-(a). CASO 6: π é como em 7.1.5-(10) π ≡ k 4 3 k 2 2 32 3 1 B BB ]A[ AA A π ππ ∨ π , onde • A2∨ A3 é F(π) e • A3 não é cortada pela regra (∨E) mostrada. Este caso é análogo ao Caso 5, apenas simétrico em relação às subárvores π2 e π3. CASO 7: π é como em 7.1.5-(12) π ≡ 3 2 1 B BxA A π π ∃ π ou π ≡ 3 2 1 B BxA π π ∃ ⊥ π tal que: • ∃xA é F(π); • A regra (∃E) mostrada não elimina hipótese de π. Note que, neste caso, π  ≡ , onde π 3 2 B π π   é obtido de π pela redução de F(π). (iv) Além disso, pela Propriedade 7.1.22.1-(b) temos: p(π*)= p(π1*)+ p(π *)+ 1. Temos tantos subcasos quantas são as possibilidades para π° de acordo com a Definição 7.1.5-(12). SubCaso 7.1: π1 não é normal Neste caso, pela Definição 7.1.5-(12) temos: (v) π° ≡ 3 2 1 B BxA A π π ∃ πo . 368 Note que π°  ≡ ≡ π 3 2 B π π  . Além disso, em π° também se aplica 7.1.5-(12) e, portanto, pela Propriedade 7.1.22.1-(b) aplicada a π° temos: (vi) p(π°*)= p(π1°*)+ p(π° *)+ 1 p(π°*)= p(π1°*)+ p(π )v( ⇒  *)+ 1. Por (iv) é claro que p(π1*)< p(π*), portanto vale HI para π1 e: p(π1*)= p(π1°*)+ 1. Assim, por (iv), (v) e (vi), temos p(π*)= p(π°*)+ 1 ⇒ o(π)= o(π°)+ 1. SubCaso 7.2: π1 é normal Neste caso, pela Definição 7.1.5-(12) temos: π° ≡ ≡ π 3 2 B π π  . Assim, por (iv) temos: p(π*)= p(π°*)+ p(π1*)+ 1. Mas como π1 é normal, então p(π1*)= 0. Logo, p(π*)= p(π°*)+ 1 ⇒ o(π)= o(π°)+ 1. CASO 8: π é como em 7.1.5-(13) ou 7.1.5-(14) π ≡ ou π ≡ , onde: 5 4 321 D C CCBA π Σ ππ ∨ π 5 4 21 D C CxA π Σ π ∃ π • C, conseqüência de (∨E) ou (∃E), é F(π). Neste caso o resultado é imediato por 7.1.22.1-(c). CASO 9: π é como em 7.1.5-(7) (a) π ≡ k 4 k 3 3 k 2 2 32 2 1 B B ]A[ B ]A[ AA A π ππ ∨ π ou (b) π ≡ k 4 k 3 3 k 2 2 32 1 B B ]A[ B ]A[ AA π ππ ∨ ⊥ π , onde: • A2∨A3 é F(π) e • A2 é cortada pela regra (∨E) mostrada. Vamos considerar aqui apenas o caso (a) de π. O caso (b) é análogo, apenas substituindo A2 por ⊥. Neste caso, pela Propriedade 7.1.22.1-(d) temos: 369 (vii) π* ≡ π∆*, onde π∆ ≡ k 4 3 k 3 2 k 2 1 32 2 B B ]A[ B ]A[ AA A π ππ π ∨ . Note que π∆ é uma derivação que se enquadra no Caso 5 acima, e que, portanto: (viii) p(π∆*)= p(π∆°*)+ 1. Temos tantos subcasos possíveis quantas são as possibilidades para π° e π∆°. SubCaso 9.1: π3 não é normal Neste caso, pela Definição 7.1.5-(7) e 7.1.5-(9) temos: π° ≡ k 4 k 3 3 k 2 2 32 2 1 B B ]A[ B ]A[ AA A π ππ ∨ π o e π∆° ≡ k 4 3 k 3 2 k 2 1 32 2 B B ]A[ B ]A[ AA A π ππ π ∨ o . Também pela Propriedade 7.1.22.1-(d) temos π°* ≡ π∆°* e, portanto, p(π°*)= p(π∆°*). Assim, por (vii) e (viii) temos: p(π*)= p(π°*)+ 1 ⇒ o(π)= o(π°)+ 1. SubCaso 9.2: π3 é normal Neste caso, pela Definição 7.1.5-(7) e 7.1.5-(9) temos: π° ≡ ≡ π∆°. Assim, é claro que π°* ≡ π∆°* e que, portanto, p(π°*)= p(π∆°*). 4 2 2 1 B ]A[ π π π Logo, por (vii) e (viii) temos: p(π*)= p(π°*)+ 1 ⇒ o(π)= o(π°)+ 1. CASO 10: π é como em 7.1.5-(8) π ≡ k 4 k 3 3 k 2 2 32 3 1 B B ]A[ B ]A[ AA A π ππ ∨ π , onde: 370 • A2∨ π* ≡ π∆*, onde π ≡ A3 é F(π) e • A3 é cortada pela regra (∨E) mostrada. Neste caso, pela Propriedade 7.1.22.1-(d) temos: ∆ k 4 3 k 3 1 2 k 2 32 3 B B ]A[ B ]A[ AA A π π π π ∨ . Note que π∆ é uma derivação que se enquadra no Caso 6 acima, e que, portanto: p(π∆*)= p(π∆°*)+ 1. O resultado segue de maneira análoga ao Caso 9, apenas simétrico em relação às subárvores π2 e π3. CASO 11: π é como em 7.1.5-(11) π ≡ k 3 k 2 1 B B ]A[ xA π π ∃ ⊥ π ou π ≡ k 3 k 2 1 B B ]A[ xA A π π ∃ π onde: • ∃xA é F(π) e • A regra (∃E) mostrada elimina hipótese de π. Vamos considerar aqui apenas o caso (a) de π. O caso (b) é análogo, apenas substituindo A por ⊥. Neste caso, pela Propriedade 7.1.22.1-(d) temos: (ix) π* ≡ π∆*, onde π∆ ≡ k 3 2 k 1 B B ]A[ xA A π π π ∃ . Note que π∆ é uma derivação que se enquadra no Caso 7 acima, e que, portanto: (x) p(π∆*)= p(π∆°*)+ 1. Mas pelas Definições 7.1.5-(11) e 7.1.5-(12) temos: 371 π° ≡ ≡ π∆°. Assim, é claro que π°* ≡ π∆°* e que portanto, p(π°*)= p(π∆°*). 3 2 1 B ]A[ π π π Logo, por (ix) e (x) temos: p(π*)= p(π°*)+ 1 ⇒ o(π)= o(π°)+ 1. Com isso analisamos todos os novos casos possíveis para F(π) e terminamos o esboço da prova. ♦ Antes de completarmos esta extensão de nossos resultados para os sistemas M e I, vamos fazer um comentário importante a respeito das simplificações para derivações que possuem regras (∃E) ou (∨E) que não cortam hipóteses. 7.1.22.3 COMEN TÁRIO: Simplificações-∃∨ Seja π é uma derivação com uma das seguintes formas: π ≡ 3 42 32 1 C CCAA π ππ ∨ π ou π ≡ 3 21 C CxA π π ∃ π , onde nenhuma hipótese de π é cortada pelas regras (∨E) e (∃E) mostradas. Note que apesar de A2∨A3 e ∃xA não serem EM em π, π pode ser simplificada pela eliminação destas regras (∃E) e (∨E). Em ambos os casos a seguinte derivação formaliza a mesma dedução que π (possivelmente utilizando menos hipóteses): π' ≡ . 3 2 C π π Note também que a simplificação de π para π' possui as seguintes propriedades: (a) l(π')< l(π); (b) não existe em π' nenhum EP que não seja EP em π; (c) não existe em π' nenhuma regra (∃E) ou (∨E) como descritas acima que não existia em π. Essas três propriedades garantem que podemos eliminar todas as regras (∨E) e (∃E) que não cortem hipóteses em uma derivação sem o risco de criarmos novos EP ou novas regras do mesmo tipo. 372 Devido a este fato não necessitamos incluir este tipo de simplificação em nossas reduções, e ainda que estendamos a noção de derivação normal para contemplar este caso, os nossos resultados de normalização forte e unicidade da forma normal continuam válidos. Para completarmos a extensão destes resultados para M e I, vamos agora apresentar os esboços das demonstrações das Propriedades 7.1.22.1 que utilizamos na prova acima. 7.1.22.4 Esboço das Provas das Propriedades Apresentadas em 7.1.22.1 Item (a) Se π é uma derivação como descrita em 7.1.5-(9) tal que π1 e π3 são normais, ou π é como em 7.1.5-(10) tal que π1 e π2 são normais, então: • p(π*)= p(π°*)+ 1. PROVA: Esboçarei a prova para o caso em que π ≡ k 4 k 3 32 32 2 1 B B ]A[ BAA A π ππ ∨ π , com A2∨A3= F(π). Os demais casos são análogos a este. (i) Como π1 e π3 são normais, pela Definição 7.1.5-(9) temos: π° ≡ . 4 2 B π π (ii) Considere π5 a seguinte derivação: π5 ≡ k 4 k 3 32 32 2 B B ]A[ BAA A π ππ ∨ . É claro que π ≡ e que π* ≡ , pois π 5 2 1 A π π ∗π π 5 2 1 A 1 é normal e, pela forma de π e Observação 7.1.8.1-(b), não é possível haver elemento pesado em π5 com elemento associado em π1. Portanto: (iii) p(π*)= p(π5*). Como π3 é normal e A2∨A3= F(π5) é FM em π5, por (i) e (ii) não é difícil ver que: 373 (iv) p(π5*)= p(π°*)+ 1. Isto se dá porque todas as operações da seqüência estrela de π5 ocorrem em π2 e π4 da mesma forma que em π°. Além disso, A2∨A3 nunca é multiplicada pela seqüência estrela em π5, pois é F(π5). Logo, por (iii) e (iv), p(π*)= p(π°*)+ 1.   Item (b) Se π é uma derivação como descrita em 7.1.5-(12), então p(π*)= p(π1*)+ p(π *)+ 1. PROVA: (a) π ≡ 3 2 1 B BxA A π π ∃ π ou (b) π ≡ 3 2 1 B BxA π π ∃ ⊥ π , onde: • ∃xA é F(π) e • A regra (∃E) mostrada elimina hipótese de π. Esboçarei a prova para o caso (a) de π. O caso (b) é análogo, substituindo A por ⊥. (i) Como ∃xA é F(π), note que: π  ≡ . 3 2 B π π (ii) Considere π5 a seguinte derivação: π5 ≡ 3 2 B BxA A π π ∃ . É claro que π ≡ e que π* ≡ , pois, pela forma de π e Observação 7.1.8.1-(b), não é possível haver elemento pesado em π 5 1 A π π ∗π ∗π 5 1 A 5 com elemento associado em π1. Portanto: (iii) p(π*)= p(π1*)+ p(π5*). Note que ∃xA= F(π5) é FM em π5. Assim, por (i) e (ii) não é difícil ver que: (iv) p(π5*)= p(π *)+ 1. Isto se dá porque todas as operações da seqüência estrela de π5 ocorrem em π2 e π3 da mesma forma que em π . Além disso, ∃xA nunca é multiplicada pela seqüência estrela em π5, pois é F(π5). 374 Logo, por (iii) e (iv), p(π*)= p(π *)+ p(π1*)+ 1.   Item (c) Se π é uma derivação como descrita em 7.1.5-(13) ou 7.1.5-(14), então: • p1(π*)= p1(π°*) e m(π*)= m(π°*)+ 1 ⇒ p(π*)= p(π°*)+ 1. PROVA: Vamos esboçar a prova para o caso em que π é como em 7.1.5-(13), ou seja: π ≡ , onde A, conseqüência de (∨E), é F(π). 5 4 321 D A AACB π Σ ∨ πππ Quando π é como em 7.1.5-(14) o mesmo argumento é válido. Note, pela Definição 7.1.5-(13) que se π é como descrito acima, então: π° ≡ B . 5 441 32 D DDC AA π ∨ ΣΣπ ππ Se considerarmos a extensão para I da Definição 3.3.1 de derivação limite, temos que não é difícil ver, a partir do Teorema 3.3.4, que os seguintes resultados devem ser válidos no sistema I: Se π•m ≡ π[A] é a derivação limite de π para A, então: ♦ π•(m-1) ≡ , − + π Σ ∨ πππ ]A[ 5 ]A[ 4 )0( ]A[ 3 ]A[ 2 ]A[ 1 D A AA)CB( ♦ π•m ≡ π[A] ≡ ( e − ++ π ∨ ΣΣπ ππ ]A[ 5 )1( ]A[ 4 ]A[ 4 ]A[ 1 ]A[ 3 ]A[ 2 D DD)CB AA 375 ♦ π°[A] ≡ . − ++ π ∨ ΣΣπ ππ ]A[ 5 )0( ]A[ 4 ]A[ 4 ]A[ 1 ]A[ 3 ]A[ 2 D DD)CB( AA Utilizamos aqui π5[A]no lugar de π5[A] e Σ4[ A]+ no lugar de Σ4[ A] porque, como gr(D) pode ser maior que gr(B∨C), podemos ter tanto em π quanto em π° EM em π5 cuja multiplicação-* leve subárvore de π5 para Σ4. No entanto, é importante notarmos que se tal fato ocorre ele ocorre da mesma forma tanto para π quanto para π°. Dessa forma, com exceção da marca numérica em B∨C, π[A] ≡ π°[A]. Portanto, com exceção desta mesma marca numérica, π* ≡ π°* e então: p1(π*)= p1(π°*) e m(π*)= m(π°*)+ 1 (diferença esta devida à marca de B∨C). Assim, pela Observação 7.1.11.1-(b) p(π*)= p(π°*)+ 1.   Item (d) Se π é uma derivação como descrita em 7.1.5-(7), 7.1.5-(8) ou 7.1.5-(11), então: π* ≡ π∆*, onde π∆ é obtida de π pela multiplicação-* de F(π). PROVA: Vamos esboçar a prova para o caso em que π é como em 7.1.5-(7). Ou seja, (a) π ≡ k 4 k 3 3 k 2 2 32 2 1 B B ]A[ B ]A[ AA A π ππ ∨ π ou (b) π ≡ k 4 k 3 3 k 2 2 32 1 B B ]A[ B ]A[ AA π ππ ∨ ⊥ π , onde: • A2∨A3 é F(π) e • A2 é cortada pela regra (∨E) mostrada. Vamos tratar apenas o caso (a) de π. O caso (b) é análogo, substituindo A2, raiz de π1, por ⊥. Note, pela forma de π, que: π∆ ≡ k 4 3 k 3 2 k 2 1 32 2 B B ]A[ B ]A[ AA A π ππ π ∨ . 376 Novamente considerando a extensão para I da Definição 3.3.1 de derivação limite, não é difícil ver, a partir do Teorema 3.3.4, que os seguintes resultados também devem ser válidos no sistema I: Se π•m ≡ π[A], a derivação limite de π para A ≡ A2∨A3, então: π•(m-1) ≡ k ]A[ 4 k 3 ]A[ 3 k 2 ]A[ 2 32 2 ]A[ 1 B B ]A[ B ]A[ AA A − ++ π ππ ∨ π e π•m ≡ π[A] ≡ k ]A[ 4 ]A[ 3 k 3 ]A[ 2 k 2 ]A[ 1 32 2 B B ]A[ B ]A[ AA A − ++ π ππ π ∨ ≡ π∆[A]. Utilizamos novamente aqui π2[A]+ e π3[A]+ nos lugares de π2[A] e π3[A], e π4[A]no lugar de π4[A], porque como gr(B) pode ser maior que gr(A2∨A3)= gr(A), podemos ter tanto em π quanto em π∆ EM em π4 cuja multiplicação-* leve subárvore de π4 para π2 ou π3. No entanto, é importante notarmos que: (a) se tal fato ocorre, ele ocorre da mesma forma tanto para π quanto para π°; (b) não é possível que as operações da seqüência estrela limite de π∆ para A multipliquem subárvore de π4 ou de π2 em π1, porque gr(A2)< gr(A2∨A3), e, segundo a Definição 3.3.1, nenhuma operação da seqüência estrela é efetuada para EM cujo grau seja menor que gr(A2∨A3)= gr(A) na seqüência estrela limite de π∆ para A. Como π[A] ≡ π∆[A], então, pela unicidade da seqüência estrela, π* ≡ π∆*. Os casos em que π é como em 7.1.5-(8) ou 7.1.5-(11) são análogos a este. ♦ Com isso terminamos o esboço da extensão de nossos resultados para os sistemas M e I. Considerando os Teoremas 7.1.7 e 7.1.22.2, todos os resultados sobre C' que apresentamos na Seção 4 do Capítulo III são válidos para os sistemas M e I. São portanto válidos para M e I: 377 • finitude da pior seqüência (Corolário 3.4.3), • normalização forte (Corolário 3.4.4), • menor ordinal natural (Teorema 3.4.5) e • unicidade da forma normal (Teorema 3.4.6). §2 N ormalização Forte via Ordinal N atural para Sistemas de Lógica Modal Prawitz[1965] apresenta os sistemas de Dedução Natural C'S4 e C'S5 para as Lógicas Modais S4 e S5 respectivamente. Tais sistemas são formulados como extensões de C', onde a noção de fórmula é estendida de maneira óbvia para considerar o operador unário N (lê-se necessariamente), e duas regras simples de introdução e eliminação da necessidade são acrescentadas. 61 Antes de apresentarmos estas regras vamos ver duas importantes definições. 7.2.1 DEFIN IÇÃO: Fórmula Essencialmente Modal com Respeito ao Sistema S4 Definimos a noção de fórmula essencialmente modal com respeito a S4 por indução no comprimento das fórmulas da seguinte maneira: (1) ⊥ é essencialmente modal com respeito a S4. (2) NA é essencialmente modal com respeito a S4. (3) Se A e B são essencialmente modais com respeito a S4, então A∧B e A∨B também o são. (4) Se At x é essencialmente modal com respeito a S4, então ∃xA também o é. 7.2.2 DEFIN IÇÃO: Fórmula Essencialmente Modal com Respeito ao Sistema S5 Dizemos que uma fórmula A é essencialmente modal com respeito a S5 quando todo símbolo de predicado em A ocorre no escopo de um operador de necessidade N. 62 61 Para uma introdução aos sistemas de lógica modal indicamos Chellas[1980]. 62 Esta definição é equivalente a estender as clausulas 3 e 4 da Definição 7.2.1 para o caso dos demais conectivos (negação, quantificador universal e implicação). 378 7.2.3 Os sistemas C'S4 e C'S5 As regras de introdução e eliminação da necessidade têm a mesma forma em C'S4 e C'S5. O que diferencia os dois sistemas, como veremos adiante, é a restrição imposta à regra (NI).As regras são: NB B (NI) e B NB (NE) . 7.2.3.1 Restrição de C'S4 a NI Se a premissa B de uma aplicação de (NI) depende de uma ocorrência A, então existe uma ocorrência C que ocorre entre A e B (possivelmente idêntica a A ou B) que satisfaz as seguintes condições: (a) C não depende de nenhuma hipótese da qual B não dependa. (b) C não contém nenhuma ocorrência de um parâmetro próprio de uma aplicação de (∀I) [(∃E)] cuja premissa [premissa menor] ocorre acima de B ou é igual a B. (c) C é essencialmente modal com respeito a S4. 7.2.3.2 Restrição de C'S5 a NI Se a premissa B de uma aplicação de (NI) depende de hipóteses com a forma A, então toda conexão 63 entre qualquer ocorrência de A da qual B dependa, e B, contém uma ocorrência de fórmula que é essencialmente modal com respeito a S5. 7.2.3.3 OBSERVAÇÃO: Combinando a Definição 7.2.1, de fórmula essencialmente modal com respeito a S4, e a Restrição 7.2.3.1 de aplicação de NI em derivações de C'S4, temos o que Prawitz chamou de terceira formulação de C'S4. Por sua vez, combinando a Definição 7.2.2, de fórmula essencialmente modal com respeito a S5, e a Restrição 7.2.3.2 de aplicação de NI em derivações de C'S5, temos o que Prawitz chamou de quarta formulação de C'S5. 64 63 Uma conexão entre as ocorrências A e B é um segmento (Definição 2.1.3) cuja primeira ocorrência é A e a última é B. 64 Cf. Prawitz[1965], pp. 79, 80. 379 7.2.4 Validade dos N ossos Resultados para C'S4 e C'S5 Prawitz demonstrou que os sistemas C'S4 e C'S5 acima definidos realizam as lógicas modais S4 e S5 e possuem um "bom comportamento" com respeito a reduções. Ou seja, se π é uma derivação em C'Si (i= 4 ou 5) então toda regra (NI) em π satisfaz as restrições de C'Si. Este "bom comportamento" representa que: se π → π', então toda regra (NI) em π' também satisfaz as restrições de C'Si. Dessa forma, a extensão do nosso resultado para estes sistemas se faz de uma maneira imediata, pois o operador unário N se comporta, com respeito às reduções, de modo idêntico ao quantificador universal ∀, para o qual os nossos resultados valem. Logo todos os resultados de Massi sobre a pior seqüência de redução e os nossos sobre o ordinal o(π) são válidos em C'S4 e C'S5. Assim, temos que qualquer derivação π nestes sistemas é fortemente normalizável, o(π)= lp(π)< ω representa o menor limitante superior para o comprimento das seqüências de redução para π e a forma normal de toda derivação π é única. 7.2.5 Extensão dos N ossos Resultados para MS4 e IS4 Os sistemas MS4 e IS4 são obtidos estendendo os sistemas M e I através das regras (NE) e (NI), na qual a Restrição 7.2.3.1 é aplicada. Estes são sistemas de lógica modal baseados em S4 que têm por base, no entanto, as lógicas minimal e intuicionista, respectivamente, ao invés da lógica clássica. Prawitz mostrou que tais sistemas também são bem comportados com respeito a reduções, da mesma forma que C'S4 e C'S5 o são. Assim, considerando a extensão de nossos resultados para os sistemas M e I, que apresentamos na seção anterior, temos que os nossos resultados também são estendidos a estes sistemas. 380 Considerações Finais Vale a pena retomarmos aqui o percurso da realização deste trabalho, que apresentamos na introdução. A motivação inicial desta tese foi resolver um problema aberto, relativo à Tese de Doutorado de Massi, que apresentou uma prova sintática, porém condicional, dos Teoremas de Normalização Forte e Church-Rosser (unicidade da forma normal) para o sistema de Dedução Natural C'. Massi introduziu uma definição, intuitivamente bastante aceitável, de uma seqüência de redução maximamente não econômica para derivações em C' (a pior seqüência de redução) e, considerando lp(π) como o comprimento desta seqüência de redução para a derivação π, provou o seguinte teorema, que apresentamos aqui, no Capítulo I, em 1.5.4: (i) Se lp(π)< ω então: (a) π → π' ⇒ lp(π)> lp(π'); (b) ∃π# / π →p R π# e π' → p R π#. O que o teorema de Massi estabelece é que, na hipótese do comprimento da pior seqüência de redução para uma derivação π ser finito, então: (a) este mesmo comprimento diminui com as reduções e (b) existe uma derivação pertencente à pior seqüência de redução para π que também pertence à pior seqüência de redução para π', obtida a partir de π por uma redução qualquer. Se considerarmos que lp(π)< ω para toda derivação π em C', o Item (a) do teorema de Massi leva a uma prova trivial do Teorema de Normalização Forte para C', que apresentamos em 3.4.4, e o Item (b) leva a uma prova trivial do Teorema de Church-Rosser para C', que apresentamos em 3.4.6. Diante disso, a nossa principal motivação foi provar que lp(π)< ω para toda derivação π em C', tornando assim incondicionais os resultados de Massi. A estratégia que utilizamos para isso foi uma tentativa de redefinir lp(π), de uma maneira que fosse possível provar sua finitude. Após uma longa série de definições e resultados sobre propriedades estruturais e combinatórias das derivações de C', conseguimos definir, no Capítulo II, a atribuição numérica o(π). Todo o longo percurso da definição de o(π) foi construído tendo por base a intuição de que estávamos introduzindo uma definição que atenderia a dois compromissos absolutamente fundamentais para os nossos propósitos: 383 (a) teríamos que conseguir provar que o(π) atribuía univocamente a cada derivação π um número natural (finito); (b) o(π) teria que ser capaz de contar o número de todas as possíveis fórmulas máximas que poderiam ocorrer em uma seqüência de redução qualquer para π, representando portanto uma definição alternativa para lp(π). Provamos que o(π) satisfaz o compromisso (a) no Capítulo II, como uma conseqüência direta de sua própria definição. De fundamental importância para esta prova foi a utilização de uma adaptação da seqüência de redução que Prawitz mostrou normalizar qualquer derivação π de C'. O compromisso (b) foi demonstrado no Capítulo III, após outro longo desenvolvimento de resultados sobre propriedades estruturais e combinatórias de derivações em C'. Dessa forma, provamos que lp(π)= o(π)< ω e obtivemos o resultado inicialmente desejado de que lp(π)< ω, para toda derivação π, retirando a hipótese condicional dos resultados de normalização forte e Church-Rosser para C', apresentados por Massi. Após todo o esforço que a prova de igualdade entre o(π) e lp(π) exigiu, não foi difícil obter, em 3.4.1, a prova de que o(π) diminui com as reduções, independentemente da pior seqüência de redução. Dessa forma, a prova do Teorema de Normalização Forte para C' que obtivemos em 3.4.4 independe dos resultados de Massi. Durante o desenvolvimento destes resultados, soubemos de um artigo (Vrijer[1987]) que prova normalização forte para cálculo lambda tipificado utilizando uma estratégia bastante semelhante à nossa. Vrijer definiu uma atribuição numérica para termos de cálculo lambda tipificado, que diminui com as reduções e coincide com o comprimento de uma seqüência de redução específica – a seqüência obtida através da estratégia perpétua, definida por Barendregt[1990]. Como a noção de fórmulas como tipos, que vimos aqui no Capítulo IV, relaciona sistemas de dedução natural com sistemas de cálculo lambda tipificado, resolvemos estudar detalhadamente o artigo de Vrijer. Além disso, a descoberta deste artigo nos levou aos outros artigos que vimos no Capítulo V, onde também encontramos definições de atribuições numéricas finitas que diminuem com as reduções. Destacamos o artigo Howard[1968], sobre o qual mostramos que uma prova do teorema de normalização forte para λ⊃, não apontada pelo autor, era conseqüência dos seus resultados. 384 A título de mostrar a diferença entre o nosso método de obtenção destes resultados e o método utilizado por de Vrijer e pelos outros artigos, realizamos, no Capítulo VI, o desenvolvimento do nosso método para o sistema λ⊃ de cálculo lambda tipificado. Por fim, no Capítulo VII, estendemos os nossos resultados para os sistemas de dedução natural M, de lógica minimal, I, de lógica intuicionista de Heyting, e para alguns sistemas de lógica modal, e com isso ampliamos um pouco mais o alcance dos nossos resultados, completando assim este trabalho. Destacamos na introdução que o nosso compromisso principal seria de que o método que introduzíssemos fosse construtivo e elementar, produzido apenas através da análise de propriedades estruturais e combinatórias das deduções formalizadas, sem apelo a nenhuma ferramenta matemática sofisticada. A nossa fidelidade a este compromisso fez com que, no percurso para a obtenção dos resultados desejados, desenvolvêssemos uma minuciosa análise de propriedades estruturais e combinatórias das deduções formalizadas em importantes sistemas de dedução natural e cálculo lambda tipificado. Esta análise, que garantiu a obtenção dos resultados que aqui buscávamos, pode ser útil como ferramenta para projetos futuros e deve ser considerada como um dos frutos desta tese. Temos ainda algumas sugestões para desenvolvimentos futuros, que acreditamos serem possíveis de realizar a partir dos resultados aqui obtidos. ♦ Com base na extensão dos nossos resultados que obtivemos para os sistemas M e I, acreditamos não ser difícil obter extensões para muitos sistemas de lógicas não clássicas, tais como os sistemas de dedução natural para as lógicas paraconsistentes Cn, de da Costa, e para alguns sistemas de lógicas polivalentes. ♦ Também acreditamos ser possível apresentar uma extensão destes resultados para o sistema C, de lógica clássica definida em todos os conectivos. Para isso utilizaríamos como base a prova do Teorema de Normalização Fraca para C, apresentada em Massi[1990], para definirmos uma seqüência estrela finita que viabilizasse a definição de um ordinal natural para derivações em C. 385 ♦ O número de Beckmann, que vimos no Capítulo V, fornece uma estimativa simples para a complexidade do comprimento da árvore de redução para termos de λ⊃. Acreditamos não ser difícil, através da noção de fórmulas como tipos, traduzir o número de Beckmann para dedução natural, apresentando uma estimativa para a complexidade do comprimento da árvore de redução para derivações de C'. ♦ O Teorema de Normalização Forte pode ser utilizado como ferramenta poderosa para provar a completude de semânticas que implementam sistemas de dedução automática e programação lógica, como mostram Troelstra & Schwichtenberg[1996], que apresentam uma prova da completude para SLD-resolução, que é conseqüência imediata do Teorema de Normalização Forte para M. Estamos atualmente investigando sistemas não standard de dedução automática e uma possível aplicação prática do nosso método de obtenção de normalização forte nesta área. Poderíamos utilizar o nosso método como ferramenta para obtenção de provas de normalização forte para sistemas de lógicas não clássicas que levassem a provas de completude para sistemas de dedução automática não standard. ♦ Por fim, gostaríamos de discutir um pouco uma suspeita bastante intrigante que o nosso método do obtenção de provas de normalização forte via ordinal natural nos suscitou. Consideremos os nossos resultados para C'. Como vimos, o resultado (i) acima, juntamente com uma prova de que lp(π)< ω para toda derivação π, levam à normalização forte de C'. Mas (i) é um resultado que, sozinho, não tem nada a ver com normalização forte. Uma prova disso é que em 6.3.15 provamos que (i) vale para um cálculo lambda livre de tipos, onde não vale nem normalização fraca. Parece, portanto, bastante razoável que, mesmo em sistemas nos quais não valha a normalização forte, seja sempre possível definir uma seqüência de redução maximamente não econômica para os termos fortemente normalizáveis deste sistema e obter uma prova de (i). Dessa forma, o que parece ser um resultado exclusivo dos sistemas onde vale normalização forte, é a prova de que lp(π)< ω para toda derivação π. 386 O método que utilizamos para isso foi definir uma atribuição numérica o(π), que intuitivamente deveria representar o número de todas possíveis fórmulas máximas para π e provar que, para toda derivação π, o(π)= lp(π) e o(π)< ω. Se voltarmos às definições de lp(π) e de o(π), é razoável acreditar que ambas representem o número de todas as possíveis fórmulas máximas de π, e que portanto sejam iguais. A prova de que o(π)= lp(π), que realizamos no Capítulo III, representou uma confirmação desta intuição. Esta prova, apesar de longa, foi produzida apenas a partir das definições de lp(π) e o(π), e, a princípio, não tem relação direta com a normalização forte de C'. Significa apenas que as duas definições, aparentemente distintas, representam maneiras distintas de contar os mesmos objetos. Em um sistema em que não valha a normalização forte poderíamos provar, por exemplo, o(π)< ω ⇒ o(π)= lp(π). Diante disso, a parte fundamental do nosso método, que nos parece determinante para provar o Teorema de Normalização Forte, é a prova da finitude de o(π) para toda derivação π. O método que desenvolvemos para provar este resultado utilizou, basicamente, o mesmo argumento da prova do Teorema de Normalização Fraca para C'. Definimos um certo tipo especial de redução, a multiplicação-*, e provamos, utilizando o método da prova do Teorema de Normalização Fraca para C', apresentado em Prawitz[1965], que a seqüência estrela de toda derivação π é finita, terminando em uma derivação de comprimento finito π*. Com isso provamos a finitude de o(π), pois o(π) foi definido como o número de elementos de um subconjunto especial de ocorrências de fórmula em π*. Para os outros sistemas em que obtivemos os nossos resultados o argumento é o mesmo. Sempre utilizamos um resultado de normalização fraca para provar a finitude da nossa atribuição. Por outro lado, a nossa definição de multiplicação-* não é privilégio de sistemas que admitem normalização forte. Por exemplo, nada impede que estendamos as definições de segmento-α e multiplicação-*, que apresentamos no Capítulo VI, para cálculo lambda livre de tipos. O que não conseguiríamos fazer para o cálculo lambda livre de tipos é apresentar uma seqüência-* finita para todo termo M. Isso simplesmente porque não vale normalização fraca neste sistema e, portanto, o nosso argumento para a finitude da seqüência estrela não funcionaria neste caso. Dessa forma, retirando tudo o que é supérfluo, parece que o argumento principal e determinante que utilizamos para demonstrar o Teorema de Normalização Forte foi o Teorema de Normalização Fraca. 387 Seguindo esta linha de raciocínio, poderíamos então interpretar os nossos resultados como uma prova de que, para o caso específico dos sistemas nos quais trabalhamos (C', λ⊃, M, I, C'S4, C'S5, MS4 e IS4) temos: N ormalização Fraca ⇒ N ormalização Forte . Com base nesta conjectura, tivemos a idéia de que talvez possa ser possível provar, genericamente, que normalização fraca, ou pelo menos normalização fraca aliada a alguma outra propriedade genérica implica normalização forte, o que seria um resultado bastante forte. Um caminho para a obtenção deste resultado, como desenvolvimento futuro de nossa tese, seria estender os nossos resultados para um sistema de redução genérico, utilizando, por exemplo, a notação introduzida em Klop[1980]. Se conseguíssemos desenvolver um resultado semelhante ao nosso em um sistema genérico, demonstrando que todos os passos, com exceção da prova de finitude para o(π), podem ser obtidos para um sistema que não satisfaça normalização fraca, então talvez pudéssemos provar a nossa conjectura. 388 Bibliografia BARENDREGT, H. P. (1990) The Lambda Calculus, North-Holland, Amsterdan. 3a edição; 1a edição (1984). BARENDREGT, H. P. & NIPKON, T. (1994) (eds.) Types for Proofs and Programs, Lecture Notes in Computer Science #806, Springer-Verlag, Berlim. BACHMANN, H. (1955) Transfinite Zahlen, Springer-Verlag, Berlim. BECKMANN, A. (1998) Exact bounds for lengths of reductions in Typed λ-calculus. (submetido) BECKMANN, A. & WEIERMANN, A. (1999) Analyzing Gödel's T via expanded head reduction trees. (submetido) CHELLAS, B. F. (1980) Modal logic: an introduction, Cambridge University Press, Cambridge. CHURCH, A. (1932/ 3) "A set of postulates for the foundation of logic", In: Annals of Math. (2) v. 33, pp. 346-366 e (3) v. 34, pp. 839-864. CURRY, H. B. (1934) "Functionality in combinatory logic", Proceedings of the National Academy of the U.S.A., v. 20, pp. 584-590. CURRY, H. B. (1942) "The combinatory foundations of mathematical logic", The Journal of Symbolic Logic, v. 7, pp. 49-64. CURRY, H. B. & FEYS, R. (1958) Combinatory Logic Vol I, Studies in Logic and the Foundations of Mathematics, North-Holland Publ. Co., Amsterdan. 2a edição (1968). 391 DILLER, J. (1968) "Zur Berechenbarkeit primitiv-rekursiver Funktionale endlicher Typen". In: Contributions to mathematical logic, editado por SCHÜTTE, K. North-Holland, Amsterdan, pp. 109-120. GANDY, R. O. (1980) "Proofs of Strong Normalization", In: To H. B. Curry: Essays on Combinatory Logic, Lambda-Calculus and Formalism, editado por HINDLEY, J. R. e SELDIN, J. P. Academic Press, NewYork. GANDY, R. O. (1980a) "An early proof of normalization by A. M. Turing", In: To H. B. Curry: Essays on Combinatory Logic, Lambda-Calculus and Formalism, editado por HINDLEY, J. R. e SELDIN, J. P. Academic Press, NewYork. GENTZEN, G. (1935) "Untersuchungen über das Logische Schliessen", Matematische Zeitschrift, v. 39, pp. 176-210, 405-431. GENTZEN, G. (1938) "Neue Fassung des Widerspruchsfreiheitsbeweises für die reine Zahlentheorie", In: Forsch. Logik u. Grundl. Exakten W issenschaften N. S. 4, Hirzel, Leipzig. GIRARD, J.Y. (1971) "Une extension de l'interprétacion de Gödel à l'analyse et son application à l'élimination des coupures dans l'analyse et la théorie des types". In: Proceedings of the Second Scandinavian Logic Symposium, editado por FENSTAD, J. E., Studies in Logic v.63, North-Holland, Amsterdan. GIRARD, J. Y., LAFONT, Y. & TAYLOR, P. (1989) Proofs and Types. Cambridge Tracts in Theoretical Computer Science, v. 7. Cambridge University Press, Cambridge. GIRARD, J. Y. (1987) Proof Theory and Logical Complexity, Bibliopolis, Napoli. GÖDEL, K. (1958) "Über eine bisher noch nicht benützete Erweiterung des finiten Standpunktes", Dialectica #12, pp. 280-287. 392 HEIJENOORT, J. van (1967) ed., From Frege to Gödel. A source Book in Mathematical Logic 1879 – 1931, Harvard University Press, Cambridge. HELMAN, G. (1977) Restricted Lambda-abstraction and the Interpretation of Some Non-classical Logics, Dissertação, University of Pittsburg. HEYTING, A. (1930) "Die formalen Regeln der intuitionistischen Logik", Sitzungsberichte der Preussischen Akademie von W issenschaften. Physikalish-matematische Klasse. Math, pp. 42-56. HEYTING, A. (1930A) "Die formalen Regeln der intuitionistischen Mathematik", Sitzungsberichte der Preussischen Akademie von W issenschaften. Physikalish-matematische Klasse. Math, pp. 57-71. HILBERT, D. (1923) "Die logischen Grundlagen der Mathematik", Mathematische Annalen, v. 88, pp. 151-165. HINDLEY, J. R. & SELDIN, J. P. (1986) Introduction to Combinators and λ-cálculus, Cambridge University Press, Cambridge. HOWARD, W. A. (1968) "Assignment of Ordinals to Terms for Primitive Recursive Functionals of Finite Type". In: Intuitionism and Proof Theory, Proceedings of the Summer Conference at Buffalo, New York. HOWARD, W. A. (1980) "The Formulae-as-Types Notion of Constructions". In: To H. B. Curry: Essays on Combinatory Logic, Lambda-Calculus and Formalism, editado por HINDLEY, J. R. e SELDIN, J. P. Academic Press, NewYork. HOWARD, W. A. (1980A) "Ordinal analysis of terms of finite type", Journal of Symbolic Logic, v. 45 (3), pp. 493-504. 393 JAŠKOWSKI, S. (1967)) "On the rules of suppositions in formal logic". In: Polish Logic 1920 – 1929, editado por McCALL, S. The Claredon Press, Oxford, pp. 232–258. JOHANSSON, I. (1936) "Der Minimalkalkül, ein reduzierter intuitionistischer Formalismus", Compositio Mathematik, v. 4, pp. 119-136. KLEENE, S. C. (1959) "Recursive Functionals and Quantifiers of Finite Types I", Transactions of the American Mathematical Society, v. 90, pp. 1–52. KLEENE, S. C. (1978) "Recursive Functionals and Quantifiers of Finite Types Revisited I". In: Generalized Recursion Theory II, editado por FENSTAD, J. E., GANDY, G. E., SACKS, G. E. North-Holland, Amsterdan. KLOP, J. W. (1980) Combinatory Reduction Systems, Mathematical Center Tracts #129, Amsterdan. KOLMOGOROV, A. N. (1925) "On the pricicple of the excluded midle", Matematiceskij Sbornik, v. 32, pp. 646-667; english translated in: Heijenoort[1967], pp. 416-437. LLOYD, J. W. (1987) "Foundations of Logic Programming", Symbolic Computation – Artificial Inteligence, v. XII, Springer-Verlag. 1a edição (1984). MARTIN-LÖF, P. (1971) "Hauptsatz for The Intuitionistic Theory of Iterated Inductive Definitions". In: Proceedings of the Second Scandinaviam Logic Symposium, ed. By J. E. Fenstad, North-Holland, Amsterdan, pp. 179-216. MASSI, C. D. B. (1989) Normalização e Normalização Forte para a Lógica Clássica de Primeira Ordem, Dissertação de Mestrado, UNICAMP/ CLE. MASSI, C. D. B. (1990) Provas de Normalização para a Lógica Clássica, Tese de Doutorado, UNICAMP/ CLE. 394 MELDELSON, E. (1964) Introduction to Mathematical Logic. D. van Nostrand, Princeton. PEREIRA, L. C. P. D. (1974) "Normalização forte para a Lógica Intuicionista de primeira ordem com reduções permutativas", Cadernos de Historia e Filosofia da Ciência, v. 7, CLE – UNICAMP. PEREIRA, L. C. P. D. (1982) On the Estimation of Length of Normal Derivations, Philosophical Studies, v. 4, Akademilitteratur, Stockholm. POHLERS, W. (1989) Proof Theory. An Introduction, Lecture Notes in Mathematics, v. 1407. Springer-Verlag, Berlim. PRAWITZ, D. (1965) Natural Deduction, A proof-theoretical study, Almquist & Wiksell, Stockholm. PRAWITZ, D. (1971) "Ideisa and Results in Proof Theory". In: Proceedings of the Second Scandinaviam Logic Symposium, ed. By J. E. Fenstad, North-Holland, Amsterdan. pp. 239-308; SANCHIS, L. E. (1967) "Functionals defined by recursion", Notre Dame Journal of Formal Logic, v. 8, pp. 161-174. SCHÜTE, K. (1951) "Beweistheoreitische Erfassung der Unendlichen Induktion in der Zahlentheorie", Mathematische Annalen, v. 122, pp. 369-380. SCHÜTE, K. (1977) Proof Theory, Springer-Verlag, Berlim. SCHWICHTENBERG, H. (1982) "Complexity of normalization in the pure typed λ-calculus". In: Brouwer Centenary Symposium. Proceedings of the Conference held in Noordwijkerhout. Editado por TROELSTRA, A. S., DALEN, D. van. North395 Holland, Studies in Logic and the Foundations of Mathematics. Amsterdan. pp. 453-458. SCHWICHTENBERG, H. (1991) "An Upper Bound for Reduction Sequences in the Typed λ-calculus", Arch. Math. Logic, v. 30, pp. 405-408. SHOENFIELD, J. R. (1967) Mathematical Logic. Addison-Wesley, New York. STATMAN, R. (1979) "The Typed λ-Calculus is not Elementary Recursive", Theoretical Computer Science, v. 9, pp. 73-81. TAIT, W. (1965) "Infinitely long terms of transfinite type". In: Formal Systems and Recursive Functions, editado por CROSSLEY, J. N. e DUMMETT, M. A. E., Proccedings of the 8th Logic Coloquium, Oxford, July 1963. North-Holand, Amsterdan. TAIT, W. (1967) "Intentional Interpretations of functionals of finite type I", Journal of Symbolic Logic, v. 32, pp. 198-212. TAKEUTI, G. (1975) Proof Theory, Studies in Logic and Foundations of Mathematics, v.81, North-Holland, Amsterdan. TROELSTRA, A. S. (1973) (ed.), Metamathematical Investigations of Intuitionistic Arithmetic and Analysis, Lecture Notes in Mathematics #344. Springer-Verlag, Berlim. TROELSTRA, A. S. & DALEN, D. van (1988) Constructivism in Mathematics an Introduction v. 1, "Studies in Logic and The Foundations of Mathematics, v. 121, North-Holland, Amsterdan. TROELSTRA, A. S. & SCHWICHTENBERG, H. (1996) Basic Proof Theory. Cambridge Tracts in Theoretical Computer Science, v. 43. Cambridge University Press, Cambridge. 396 VRIJER, R. C. de (1987) "Exactly Estimate Functionals and Strong Normalization" ♣ WEIERMANN, A. (1998) "How is it that infinitary methods can be applied to finitary mathematics? Gödel T : a case study", Journal of Symbolic Logic, v. 63, pp. 1348-1370. WILKEN, G. & WEIERMANN, A. (1997) Sharp upper bounds for the depths of reduction trees of typed λ-calculus with recursors. (submetido) WILKEN, G. (1998) Abschätzung der Berechnungskomplexität von Gödels T und seinen Teilsystemen. Dissertação de Mestrado, Universidade de Münster. ♣ Referência incompleta. O autor é membro do Centrale Interfaculteit, Universidade de Amsterdan. Endereço: Grimburgwal 10, bldg 13, 1012 GA Amsterdan, the Nethrlands. 397 Índice remissivo A abstração............................................................. 165 altura (da árvore de redução).............................. 172 análise ordinal......................................................... 4 aplicação............................................................. 165 árvore de redução ............................................... 171 atribuição v ......................................................... 228 B Barendregt......9, 164, 168, 169, 176, 178, 224, 230, 309, 310, 311, 312, 313, 317, 384 Beckmann......10, 200, 201, 240, 241, 242, 243, 245, 248, 249, 250, 266, 313, 314, 315, 316, 386 Brower .............................................................. 3, 13 C cálculo de seqüentes contexto histórico .............................................. 4 sistemas LK e LJ ................................................ 4 caracterização de derivações com F(π) não multiplicativa .......................................... 101 C-atribuição........................................................ 236 centro (de um segmento) ...................................... 39 Church.........6, 8, 10, 26, 31, 87, 141, 157, 158, 159, 163, 202, 253, 255, 307, 308, 310, 311, 312, 313, 316, 317, 383, 384 Church-Rosser (propriedade) .............................. 26 classes................................................................. 211 comprimento de uma derivação ............................................. 50 de um termo................................................... 241 de um tipo ...................................................... 264 do F-path........................................................ 179 computabilidade ................................................. 202 congruência-α..................................................... 168 contextoA,B ......................................................... 175 contractum.......................................................... 171 convenções de variáveis (definição).................................. 169 de variáveis (descrição) ................................. 168 identidade sintática entre termos.................... 168 sobre parâmetros próprios................................ 19 Curry .................................................. 181, 392, 393 D dedução natural contexto histórico .............................................. 3 sistema C ......................................................... 20 sistema C' ........................................................ 20 sistema C' (justificativa).................................. 26 sistema I........................................................... 19 sistema M......................................................... 19 sistemas (apresentação).................................... 15 sistemas (introdução) ....................................... 13 sistemas NK e NJ ............................................... 3 derivação descrição informal............................................ 14 estrela (derivação-*)................................. 69, 347 exemplo............................................................ 17 fortemente normalizável .................................. 26 limite .............................................................. 118 marcada.......................................................... 348 normal .............................................................. 22 normalizável..................................................... 26 Diller........................................................... 241, 315 E elemento.............................................................. 322 associado a elemento pesado.......................... 344 candidato a elemento máximo........................ 344 estrela ............................................................. 352 máximo .......................................................... 323 multiplicativo ................................................. 346 multiplicativo de tipo 1 .................................. 346 multiplicativo de tipo 2 .................................. 346 multiplicativo de tipo 3 .................................. 346 pesado ............................................................ 344 pesado limite .................................................. 345 unitário ........................................................... 322 estimativa exata .................................................. 229 estimativa frouxa ................................................ 228 estratégia de redução........................................... 178 estratégia perpétua .............................................. 180 estratégia-R1 (one-step) ...................................... 179 F fecho (de um termo)............................................ 167 Feys..................................................................... 181 forma normal ................................................ 22, 171 fórmula essencialmente modal com respeito a S4 ........ 378 essencialmente modal com respeito a S5 ........ 378 máxima............................................................. 22 máxima multiplicativa...................................... 51 máxima principal ............................................. 28 principal ......................................................... 323 F-path.................................................................. 179 Frege............................................................. 13, 393 funcionais hereditariamente cumulativos............ 234 funcionais rotulados............................................ 225 funcionais minimamente cumulativos ................ 227 funções como regras ........................................... 163 G Gandy.............. 7, 201, 241, 250, 312, 313, 314, 315 Gentzen ............................... 3, 4, 6, 13, 14, 202, 222 401 Girard............................................. 7, 164, 181, 186 Gödel.........3, 5, 8, 74, 163, 202, 220, 222, 223, 391, 392, 393, 397 grau de um elemento.............................................. 347 de um subtermo pesado ................................. 265 de uma fórmula................................................ 56 máximo multiplicativo..................... 71, 265, 347 H Hauptsatz................................................................ 4 head reduction tree ............................................. 244 Heyting ....................... 3, 13, 19, 182, 314, 321, 385 Hilbert ...................................................... 3, 4, 5, 13 hipóteses abertas.............................................................. 22 cortadas ou descartadas.................................... 15 definição .......................................................... 14 destacadas ........................................................ 21 Howard.....8, 10, 164, 181, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 213, 216, 217, 218, 220, 221, 222, 223, 241, 313, 314, 315, 384 I I-redex ................................................................ 171 isomorfismo de fórmulas como tipos ......... 182, 188 I-subtermos......................................................... 205 J Jaškowski.............................................................. 13 Johansson ............................................................. 13 K Kolmogorov .......................................................... 13 K-redex ............................................................... 171 L Lafont ......................................................... 164, 186 leftmost redex..................................................... 179 M Martin-Löf .............................................................. 7 Massi.......7, 8, 9, 14, 28, 31, 35, 141, 158, 159, 181, 255, 310, 312, 316, 323, 328, 329, 330, 331, 341, 342, 380, 383, 384, 385 multiplicação estrela (multiplicação-*) 69, 266, 350 N nível de um termo ou tipo....................................... 204 de um vetor de expressões ............................. 208 noção de fórmulas como tipos ............................ 181 normalização forte ................................................ 26 normalização fraca................................................ 26 número de Beckmann ......................................... 242 número de OMπ de grau máximo.......................... 71 número máximo de um termo............................. 266 O ocorrência à esquerda......................................................... 37 acima................................................................ 38 associada a ocorrência pesada.......................... 50 candidata a fórmula máxima ............................ 49 central............................................................... 39 cópia-* ............................................................. 74 de fórmula ........................................................ 18 de ligação ......................................................... 60 dependente ....................................................... 18 estrela ............................................................... 71 gerada............................................................... 22 imediatamente à esquerda (direita) .................. 37 imediatamente acima (abaixo) ......................... 37 ligação para cima (baixo)................................. 61 multiplicativa ................................................... 69 na primeira (segunda) metade de ρ .................. 40 pesada............................................................... 49 pesada local...................................................... 63 pesada não local ............................................... 63 simétrica........................................................... 40 ordinal natural definição........................................... 83, 283, 354 método ............................................................... 7 P par simétrico ......................................................... 40 par-α ..................................................................... 41 par-α de nível n..................................................... 45 parâmetro próprio ................................................. 17 Pereira ............................................................ 2, 7, 9 peso....................................................... 67, 283, 349 peso-1.................................................................. 345 pior seqüência de redução apresentação..................................................... 28 definição formal ............................................. 180 definição formal ............................................... 30 posição, função ..................................................... 61 Prawitz........6, 7, 8, 9, 14, 15, 19, 20, 23, 26, 27, 55, 81, 321, 378, 379, 380, 384, 387 premissa esquerda (direita) ................................... 37 princípio de inversão............................................. 26 programa de Hilbert ................................................ 3 prova normal (conceito).......................................... 3 Q quase-derivação .................................................... 59 402 R raiz........................................................................ 21 ramo...................................................................... 37 redex................................................................... 171 reduções ∨-permutação................................................... 25 ∃-permutação ................................................... 25 ∧-redução......................................................... 23 ⊃-redução-1 ..................................................... 23 ⊃-redução-2 ..................................................... 23 ∀-redução ........................................................ 24 ∨-redução-1 ..................................................... 24 ∨-redução-2 ..................................................... 24 ∃-redução-1...................................................... 25 ∃-redução-2...................................................... 25 definição .......................................................... 22 redução geral.................................................. 205 redução imediata.............................................. 23 redução restrita .............................................. 205 redução-β ............................................... 171, 190 seqüência de reduções.............................. 25, 171 regra estrutural.................................................... 244 regra-β ................................................................ 244 regra-β0............................................................... 244 regra-Cut............................................................. 244 regras de inferência apresentação formal ......................................... 16 conclusão ......................................................... 14 descrição .......................................................... 14 premissas ......................................................... 14 regra do absurdo clássico................................. 20 regra do absurdo intuicionista.......................... 19 regras de eliminação. ....................................... 13 regras de introdução......................................... 13 restrições.......................................................... 18 regra-Var ............................................................ 244 resíduo-*............................................................. 268 Russell .................................................................. 13 S Sanchis ....................................................... 241, 315 Schwichtenberg...........164, 181, 186, 201, 240, 242, 250, 313, 314, 315, 386 segmento............................................................... 38 cadeia-φ de segmentos..................................... 39 comprimento.................................................... 38 ponte entre segmentos...................................... 38 segmento-α (em λ⊃) ...................................... 264 segmento-α de nível 1 ..................................... 40 segmento-α de nível n ..................................... 43 segmento-α determinado ........................... 41, 45 segmentos ligados............................................ 38 subsegmento..................................................... 39 seqüência estrela ................................... 72, 267, 353 seqüência estrela limite ............................... 118, 291 seqüência idêntica ............................................... 321 simplificações-∃∨ ............................................... 372 Statman ....................................................... 163, 242 subárvores ............................................................. 60 completas ......................................................... 60 disjuntas ........................................................... 61 ligadas .............................................................. 61 substituição ................................................. 169, 213 subtermo definição......................................................... 167 estrela ............................................................. 267 multiplicativo ................................................. 265 pesado ............................................................ 265 pesado local.................................................... 291 próprio............................................................ 167 T Tait.................................................................. 7, 202 Taylor.......................................................... 164, 186 teoremas (descrição) da forma normal ................................................. 5 de Churc-Rosser................................................. 6 de normalização forte......................................... 6 de normalização fraca ........................................ 6 de unicidade da forma normal............................ 6 teoria da prova origem ................................................................ 3 teoria geral da prova........................................... 5 teoria redutiva da prova...................................... 5 teoria E de expressões......................................... 205 termo λ-temo............................................................ 165 estrela ............................................................. 267 fechado........................................................... 167 limite .............................................................. 290 tipo ...................................................................... 165 top-fórmula ........................................................... 21 troca de variáveis ligadas.................................... 168 Troelstra ..................................... 164, 181, 186, 386 V variável ligada.............................................................. 166 livre ................................................................ 166 Vrijer.....7, 9, 10, 200, 201, 224, 225, 232, 234, 237, 239, 242, 250, 313, 314, 315, 316, 317, 384, 385 W Weiermann .......................................................... 223 Wilken ......................................................... 222, 223 403 Símbolos e Notações Operadores lógicos ∧, ⊃, ∨ operadores proposicionais................. 15 ∃, ∀ quantificadores....................................... 15 ⊥ constante do absurdo.................................. 15 ¬ operador definido....................................... 16 Identidade ≡ identidade sintática ............................. 20, 166 ≡α congruência-α ......................................... 168 Sistemas formais λ⊃ ...................................................................165 λC' ................................................................. 196 λI .................................................................. 186 λR⊃................................................................. 210 C... ................................................................... 20 C⊃.................................................................. 182 C'. .................................................................... 20 C'S4 ................................................................ 379 C'S5 ................................................................ 379 E .................................................................... 205 H . .................................................................. 202 I........................................................................ 19 IS4.. ................................................................ 380 M...................................................................... 19 MS4 ................................................................ 380 T... ................................................................. 202 Regras de inferência (∧I) introdução da conjunção......................... 16 (∧E) eliminação da conjunção ....................... 16 (∨I) introdução da disjunção.......................... 16 (∨E) eliminação da disjunção ........................ 16 (⊃I) introdução da implicação ....................... 16 (⊃E) eliminação da implicação...................... 16 (∃I) introdução do existêncial ........................ 16 (∃E) eliminação do existencial ...................... 16 (∀I) introdução do universal.......................... 16 (∀E) eliminação do universal ........................ 16 (⊥I) absurdo intuicionista .............................. 19 (⊥C) absurdo clássico ..................................... 20 (¬E) eliminação da negação .......................... 19 (¬I) introdução da negação............................ 19 (NE) eliminação da necessidade .................. 379 (NI) introdução da necessidade.................... 379 Leis de formação de termos λx.M abstração ..................................... 165, 187 MN aplicação ............................................... 165 E∨x,y(M,N,Z) ................................................... 186 E∃y(M, N)......................................................... 187 EA ⊥(M) ............................................................. 187 f[M] ................................................................ 192 k0 B(M).............................................................. 186 k1 B(M).............................................................. 186 My .................................................................. 187 p(M, y)............................................................ 187 p(M,N)............................................................ 186 pi(M) .............................................................. 186 Expressando derivações π derivação..................................................... 20 Σ seqüência de derivações.............................. 20 A π explicitação da raiz de π ........................... 21 π Γ hipóteses destacadas de π .......................... 21 π ]A[ hipóteses destacadas de π da forma A ..... 21 π }A{ possíveis hipóteses de π ....................... 119 2 1 ]A[ π π substituição de hipótese por derivação.... 21 1 n2 ]A[ ][][ π ππ 43421 L substituições multiplas................. 62 π A uma hipótese destacada de π...................... 21 Expressando termos (C[ ]A) B contextoA,B..................................... 175 C[M] substituição em contexto .................... 176 C'[ ] redução de contexto............................. 176 MA, NA, LA termos do tipo A ........................ 166 oi i-ésimo tipo básico................................... 165 Pd troca de nomes de var. livres................... 292 404 xA, yA, zA,... variáveis do tipo A ................... 166 Derivações transformadas π∆ multiplicação-* de F(π) ............................ 98 π  redução de F(π)......................................... 92 π* último termo da seq. estrela de π ...... 72, 353 π°i i-ésima derivação da pior seq. de π ......... 30 π•i i-ésima derivação da seq-* de π ...... 72, 353 π[A] derivação limite de π para A ................ 118 πM derivação isomorfa ao termo M .............. 182 πt a e Σt a substituição de parâmetro por termo . 21 (πi)j j-ésima cópia de πi ............................... 71 πP última derivação da pior seq. de π ............ 31 Termos transformados F (M) redução da estratégia perpétua.......... 180 ∞ Fi(M) i-ésimo termo do F-path de M .......... 179 M∆ multiplicação-* do left-most SM............ 292 M  redução do left-most redex..................... 180 M° idêntico a F∞(M) .................................... 180 M  redução do left-most redex de M ........... 285 M•i i-ésimo termo da seq. estrela de M ....... 267 M°i i-ésimo termo da pior seqüência de M.. 180 M〈t1/t2〉 subst. de tipos nos subtermos de M 191 M* último termo da seq. estrela de M.......... 268 M[n] termo limite de M para n..................... 290 MP último termo da pior seqüência para M . 181 M[x/N] subst de var. livre por termo............ 169 Transformações → redução imediata....................... 23, 171, 190 → se reduz a ......................................... 26, 172 → R se reduz ou é idêntico a .................... 26, 172 →∆ redução de ∆.......................................... 171 →p pior redução imediata ........................ 30, 180 →p se reduz da pior forma a ........................... 30 →p R se reduz da pior forma ou é idêntico a.. 180 →* multiplicação-*.......................... 71, 266, 350 →* o multiplicação da seqüência estrela... 72, 268 →0 marcar com zero ...................................... 349 →1 operação em elementos............................ 347 →2 operação permutativa............................... 349 Ocorrências, elementos e subtermos ∆ redex......................................................... 171 assπ(φ) ocorrência associada a φ ................... 50 c(ρ) ocorrência central do segmento ρ........... 39 CM elemento candidato à máximo............... 344 CMπ ocor. candidata a fórmula máxima......... 49 Dπ(C) premissa direita de C em π.................. 37 Eπ(C) premissa esquerda de C em π .............. 37 EM elemento multiplicativo em π .............. 346 π EM1 elemento multiplicativo de tipo 1 ........ 346 π EM2 elemento multiplicativo de tipo 2 ........ 346 π 3EMπ elemento multiplicativo de tipo 3 ........ 346 EP elemento pesado ..................................... 344 EPlπ elemento pesado limite ........................ 345 F(π) .................................................... 28, 92, 323 FMπ fórmula máxima em π ............................ 22 FP(π) fórmula máxima principal de π ........... 28 FP(π) fórmula principal de π ....................... 323 OMπ ocorrência multiplicativa em π .............. 69 OPπ ocorrência pesada em π .......................... 49 OPLπ(π1) ocorrência pesada local a π1 .......... 63 OPnLπ(π1) ocorrência pesada não local a π1.. 63 PM premissa maior ........................................ 21 pm premissa menor ........................................ 21 r(π) raiz de π .................................................. 21 (R)i i-ésimo resíduo-* de R ......................... 269 SM subtermo multiplicativo ......................... 265 SP subtermo pesado ..................................... 265 SPL subtermo pesado local .......................... 291 T(π) ocorrência estrela de π ........................... 71 T(π) elemento estrela de π............................ 352 T(M) subtermo estrela de M ......................... 267 (φ)(n) ocorrência marcada com n................. 348 (φ) i-ésima cópia-* de φ em π• .................... 74 i (φ)n n-ésima fórmula no elemento φ............ 322 (φ)ni i-ésima cópia-* de φ em π•n ................... 74 [φ] elemento da forma φ .............................. 345 Valores numéricos g(π) grau máximo multiplicativo de π ... 71, 347 g(M) grau máximo de M .............................. 265 gr(φ) grau de φ....................................... 56, 347 grM(Q) grau do subtermo Q em M ............... 265 h(π) altura da árvore de redução de π........... 156 h(M) altura da árvore de redução de M ........ 172 lτ(A) comprimento do tipo A ........................ 264 lτ(M) comprimento do tipo de M .................. 264 l(π) comprimento de π ................................... 50 l(ρ) comprimento do segmento ρ ................... 38 l(φ) número de ocorrências no elemento φ .. 322 LF(M) comprimento do F-path de M ............ 179 lp(π) comprimento da pior seqüência de π..... 30 m(π) soma total das marcas de π .................. 349 ng(M) numero máximo de M ....................... 266 405 ng1(π) quantidade de EM 1 de grau máximo 351 ng2(π) qtd. total de EM de grau máximo ..... 351 nlπ(π1) número de OPnLπ(π1) ........................ 63 n(ρ) nível do segmento-α ρ ........................... 45 n[A](π) número de hipóteses destacadas........ 22 ng(π) número de OMπ de grau máximo ......... 71 o(π) ordinal natural de π ........................ 83, 354 p(π) peso de π ................................................ 67 p(M) peso de M............................................ 283 p1(π) peso-1 de π ......................................... 345 posπ(φ) posição de φ em π............................. 61 Conjuntos e seqüências απ(φ) maior segmento-α determinado por φ .. 41 βπ seqüência estrela de π................................ 72 βπ [A] seqüência-* limite de π para A ............ 118 β seqüência estrela de M............................ 267 M [n]βM seqüência-* limite de M para n ............ 291 ∇π(A) subárvore determinada por A .............. 60 ΛA conjunto de termos do tipo A ................. 165 Λ⊃ conjunto dos termos de λ⊃...................... 165 ΛI conjunto dos termos de λI ...................... 187 ρ e μ segmentos ............................................. 38 BV(M) conjunto das var. ligadas de M......... 167 FV(M) conjunto das var. livres de M ... 166, 187 Sub(M) conjunto dos subtermos de M ......... 167 Typ conjunto dos tipos de λ⊃ ....................... 165 TypI conjunto dos tipos de λI ...................... 186 X cadeia-φ de segmentos ............................... 39 Símbolos especiais de Beckmann[1998] #M atribuição numérica ............................... 248 ρ α M read reduction tree de M .................... 244 2k(n) exponenciação k-iterada ..................... 241 g(M) grau de M ............................................ 241 l(M) comprimento de M............................... 241 M[x/N] seqüência de substituições.............. 244 N seqüência de termos................................. 244 n M) número de Beckmann para M ........... 242 L cionais rotulados do tipo A ................ 225 B( Símbolos especiais de Howard[1968] ( , ) operação par em E ................................. 205 + na interpretação de E................................. 206 + operação soma em E ................................. 205 + soma de vetores de expressões.................. 208   operação em vetores de E ......................... 211 ∠ relação de ordem em E............................. 205 B vetor atribuído ao termo B .................... 208 δr operação em expressões........................... 212 δr operação em vetores ................................ 212 ξ enumeração de variáveis ........................... 204 E teoria de expressões .................................. 205 ε0 ordinal infinito ......................................... 202 C classe de vetores ....................................... 211 Ci classe de expressões................................ 211 f vetor de expressões de E............................ 208 f, g, h expressões de E.................................. 205 fi ou (f)i i-ésima componente do vetor f...... 208 h[yr/e] substituição de vetores ..................... 213 h[yrj/e] substituição de var. por expressão.... 213 ISub(M) I-subtermos de M ........................... 204 l função nível................................................ 208 lv(f) nível do vetor f ..................................... 208 lv(M) nível de M........................................... 204 yr variáveis de E........................................... 205 i yr vetor de variáveis..................................... 208 Símbolos especiais de Vrijer[1987] +A soma de funcionais................................... 226 <A e ≤A ordens sobre funcionais................... 234 Λ abstração funcional................................... 226 C coleção de funcionais cumulativos ........... 235 C funcionais cumulativos do tipo A ........... 234 A A cn funcional minimamente cumulativo ........ 227 e v-atribuição minimal ................................. 228 A fun [M]e estimativa exata de M .......................... 229 {M}e estimativa frouxa de M ....................... 228 |M, N|v ............................................................ 237 |M|v ................................................................. 237 v(x/f) atribuição v/f ....................................... 228 v(xA) atribuição v.......................................... 228