UNIVERSIDADE FEDERAL DE GOIÁS FACULDADE DE FILOSOFIA PROGRAMA DE PÓS-GRADUAÇÃO EM FILOSOFIA BRUNO RIGONATO MUNDIM Uma Abordagem sobre a Concepção de Proposição da Teoria Intuicionista de Tipos Goiânia 2013 sa sistema debibliotecas uf~ ..,••UFG TERMO DE CIENCIA E DE AUTORIZAC;:AO PARA DISPONIBILIZAR AS TESES E DISSERTAC;:OES ELETRONICAS (TEDE) NA BIBLIOTECA DIGITAL DA UFG Na qualidade de t itu lar dos direitos de autor, autorizo a Universidade Federal de Golas (UFG) a disponlbill zar, grat uitamen te, por meio da Bibl iote ca Digital de Teses e Dissertacdes (BDTD/ UFG), sem ressarciment o dos di reitos autorais , de acordo com a Lei nO 9610/98 , 0 docu mento conforme permiss6es assinaladas abai xo, para fins de leitura , lrnpressao e/ou download, a titulo de dl vu lqacao da pro ducao cientlfi ca brasilei ra , a partir desta data , 1. Identificac;:ao do material bibliogratico : [Xl plssertacao [ 1Tese -rcecessrta-se do CPF quando 0 nome nao constar do SISPG. 2. Identificacao da Tese ou Dissertacao: Autor : Bruno Riconato Mundim E-mail : brunornund trn ea cu ttu ra.corn .br Seu e-mail pode ser disponibi lizado na paqina? [ ]Sim [ X] Nao Vinculo ernpre qaticio do auto r : Aqencia de fomento: Coordenacao de Aperfeicoarnento de Pessoal ISigla: CAPES de Nivel Superior Pais: Bras il I UF: GO I CNPJ : 00889834/ 0001 Tit ulo : Uma Abordagem Sobre a Concepcao de Proposicao da Teoria I ntuicioni sta de Tipos Palavras-chave: Teoria intuicion ista de ti pos, Martin-Lof, Proposiciies como coni untos/ti oos Titulo em Dut ra lingua: An Approach to I ntuit ionist ic Ty pe Theory 's Concept ion of a Prooosit ion Palavras-chave em out ra lingu a: Int uiti onist ic type t heory, MartinLof, Propositions as sets/types Are a de concentracao : t.ooica e Filosof ia da Linquaqem Data da defesa : 02/ 09/20 13 Proqrama de Pos-Grad uacao: Proqrama de Pos-Graduacao em Filosofia Orientador : Andre da Silva Porto E-mail : Co-or te ntad orra i :* E-m ail : 3. Informac;:oes de acesso ao documento: Eautorizada a libe racao tota l do documento? [X ] SI M [ ] NAO' Havendo conco rdancie com a dtspo ntbt l tzacao ete tron ica, torna-se imprescindlvel 0 env io does) arqu ivo(s) em Formato digital , PDF ou DOC, da tese ou dtssertacao . o siste ma da Bibli oteca Digital de Teses e orsse rtacoes garante aos auto res que, ant es de sua disponlbl lizecao , os arquivos contendo elet ronicamente as t eses e/ou dissertacoes receberao pro cedim ento de sequranca: cri pto grafia usando 0 padrao do Adob e Acrobat (pa ra nao permiti r copla e extracao de conteudo, apenas irnpressao fraca) . tJk\t I'!\ Cl~.~ l'Y "\illmA\f\f\C\ Assina ura do aut or Dat a : xz /-.l..L / Z'0\'1 I Neste caso 0 documento sera embargado por ate urn ano, a partir da data da defesa. A extensao deste prazo suscita j ustificacao acoorde nacao do curso. Os dados do documento nao serao disponibilizados durante 0 periodo de embargo. BRUNO RIGONATO MUNDIM Uma Abordagem sobre a Concepção de Proposição da Teoria Intuicionista de Tipos Dissertação apresentada ao Programa de Pós-Graduação em Filosofia da Faculdade de Filosofia da Universidade Federal de Goiás, como exigência parcial para a obtenção do título de Mestre em Filosofia. Linha de Pesquisa: Lógica e Filosofia da Linguagem. Orientador: Prof. Dr. André da Silva Porto. Goiânia 2013 Dados Internacionais de Catalogação na Publicação (CIP) GPT/BC/UFG Mundim, Bruno Rigonato. M965a Uma Abordagem sobre a Concepção de Proposição da Teoria Intuicionista de Tipos [manuscrito] / Bruno Rigonato Mundim. – 2013. 118 f. Orientador: Prof. Dr. André da Silva Porto. Dissertação (Mestrado) – Universidade Federal de Goiás, Faculdade de Filosofia, 2013. Bibliografia. 1. Teoria de Tipos. 2. Filosofia lógica. I. Título. CDU: 101:517.1 a* " " " ' *, -x . .. ";' ''= '"., --. UNIVERSIDADE FEDERAL DE GOlAs PROGRAMA DE POS GRADUACAo EM FILOSOFIAlFAFIL .r-&••UFG ATA DA DEFESA PUBLICA DA DISSERTA<;:AO DE : BRUNO RIGONATO MUNDIM • REALIZADA EM 02 DE SETEMBRO DE 201 3 Aos 02 dias do rnes de setembro d e 201 3, as 10h, nas d ependencies da Faculdade de Filosofia da Universidade Federal de Goios (UFG), foi insta lada a sessoo pu blica para julgamento da dlssertocc o fina l ela bora da pelo mestrando BRUNO RIGONATO MUNDIM, do Programa de Pos-qrod uocoo em Filosofia da Universidade Federal de Coios. matricu lado sob 0 numero 2011 /0176, intitulada : "UMA ABORDAGEM SOBRE A CONCEPCAO DE PROPOSICAO DA TEORIA INTUICIONISTA DE TIPOS" . Ap6s a abertura da sessco. a professor Andre da Silva Porto/UFG, orientador e presiden te da banca julgadora, deu seguimento aos trabalhos, apresenta ndo os demais exa minadores, os professores doutores: Araceli Rosich Soares Velloso/ UFG e Luiz Carlos Pinheiro Dias Pereira/PUC/RJ. Foi d ada a palavra ao mestrando, que expos seu trabalho e, em seguida, ouviu-se a leitura dos respectivos pareceres dos integra ntes da banca. Terminada a leitu ra, procedeu-se a orquic oo e respostas do mestrando. Ao flnol, a banca . reuniu-se em separado para ovollocco e o tribulcoo da nota ao mestrando. Disc utido 0 tra balho e 0 desempenho do mestrando loi ele considerado r~)c:?l .d6' . por ~""""'" ~v~ . 0 c a nd ida to loi declarado . pelo presidente da banca exorn ino doro . Nada mais havendo a trctor. loi encerrada a sessc o e lavrada a presen te ata que sera assinada por todos e en tregu e a Secretaria do Programa de Pos-Orcduocoo em Filosolia , para os lins. prof~ da Silva Porto IUFG .,d; t{ (I/eR* ~. ~(Y Proia . Araceli Rosich Soares Velioso/UFG c=YJ (\C\~ ~ Prof. Luiz Carlos Pinheiro Dias Pereira/PUC/RJ Campus II Samambaia Faculdade de Filosotia Fax: 352 1-1164 Caixa Postal 13 1CEP: 7400 1-970 Goiiinia-GO www.tiIosotia.ufg.br Aos meus pais, apesar de me terem dado a vida, dedico o que possa haver aqui de valor. Agradecimentos Ao meu orientador e aos membros das bancas examinadoras, por me terem guiado na planície nos momentos em que desci da montanha; ao instigante clima de discussão propiciado pelos seminários do professor Wagner, quase que invariavelmente compostos apenas por Diego, Hermógenes e eu; à Marlene, da secretaria; à Narrira e aos amigos, pelos bons momentos nas ocasiões em que o trabalho dava uma trégua; e ao auxílio material da CAPES. Então escrever é o modo de quem tem a palavra como isca: a palavra pescando o que não é palavra. Quando essa não-palavra – a entrelinha – morde a isca, alguma coisa se escreveu. Uma vez que se pescou a entrelinha, poder-se-ia com alívio jogar a palavra fora. Mas aí cessa a analogia: a não-palavra, ao morder a isca, incorporou-a. O que salva então é escrever distraidamente. Clarice Lispector Resumo Mundim, Bruno R.. Uma Abordagem sobre a Concepção de Proposição da Teoria Intuicionista de Tipos. Goiânia, 2013. 118 páginas. Dissertação de Mestrado. Faculdade de Filosofia, Universidade Federal de Goiás. A teoria intuicionista de tipos, de Martin-Löf, alega, à luz da correspondência CurryHoward, que definir uma proposição por meio do estabelecimento de como as suas provas canônicas são formadas é o mesmo que definir um conjunto por meio do estabelecimento de como os seus elementos canônicos são formados, fazendo com que uma proposição possa ser vista como o conjunto de suas provas. Por outro lado, encontramos nessa mesma teoria uma distinção entre as noções de conjunto e tipo, sendo que a diferença deste em relação àquele consiste no fato de que para se formar um tipo não é preciso apresentar uma prescrição exaustiva da formação de seus objetos, basta se ter uma noção geral do que seria um objeto arbitrário que o habita. Tendo isso em conta, argumentamos que podemos extrair da teoria intuicionista de tipos duas concepções de proposição distintas, uma que considera proposições como tipos e outra que considera proposições como conjuntos. Tal distinção implicará em algumas considerações envolvendo questões sobre demonstrações hipotéticas e a formação de conjecturas. Palavras-chave: Teoria Intuicionista de Tipos, Martin-Löf, Proposições como conjuntos/tipos. Abstract Mundim, Bruno R.. An Approach to Intuitionistic Type Theory's Conception of a Proposition. Goiânia, 2013. 118 pages. Master's Dissertation. Faculdade de Filosofia, Universidade Federal de Goiás. By means of the Curry-Howard Correspondence Martin-Löf's intuitionistic type theory claims that to define a proposition by laying down how its canonical proofs are formed is the same as to define a set by laying down how its canonical elements are formed; consequently a proposition can be seen as the set of its proofs. On the other hand, we find in this very same theory a distinction between the notions of set and of type, such that the difference of the latter in relation to the former consists in the fact that to form a type we do not need to present an exhaustive prescription for the formation of its objects; it is sufficient to just have a general notion of what would be an arbitrary object that inhabits such type. Thus we argue that we can extract two distinct notions of propositon from the intuitionistic type theory, one which treats propositions as types and another which treats propositions as sets. Such distinction will have some bearing on discussions concerning hypothetical demonstrations and conjecture's formation. Keywords: Intuitionistic type theory, Martin-Löf, Propositions as sets/types. Sumário Introdução 13 Preâmbulo 16 1 Martin-Löf: Matemática Construtiva e Ciência da Computação 20 1.1 Correção formal de um programa . . . . . . . . . . . . . . . . . . . . . . . . . 24 2 Funções 27 2.1 Tipos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.2 Cálculo lambda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.3 O seletor R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3 A Teoria Intuicionista de Tipos 39 3.1 As quatro formas de juízo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.2 Proposições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.3 A formação de proposições . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.4 As regras de inferência . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.4.1 Regras de igualdade . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.4.2 Regras de substituição . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.4.3 O conjunto dos números naturais . . . . . . . . . . . . . . . . . . . . . 58 3.4.4 Produto cartesiano de uma família de conjuntos . . . . . . . . . . . . . 62 3.4.5 União disjunta de uma família de conjuntos . . . . . . . . . . . . . . . 66 3.4.6 União disjunta de dois conjuntos . . . . . . . . . . . . . . . . . . . . . 72 3.4.7 Igualdade proposicional . . . . . . . . . . . . . . . . . . . . . . . . . 74 4 Conjuntos e Categorias 77 SUMÁRIO 4.1 O problema do falso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 4.2 Como e o quê . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 4.2.1 Prova e demonstração . . . . . . . . . . . . . . . . . . . . . . . . . . 86 4.3 A formação de conjecturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 4.3.1 Tipos e categorias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 4.4 Hipótese e negação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 4.4.1 O princípio de ex falso quodlibet . . . . . . . . . . . . . . . . . . . . . 99 4.5 Domínio e quantificação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 4.5.1 Realismo ontológico . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Conclusão 112 Referências Bibliográficas 115 Introdução A interpretação construtiva das constantes lógicas, cuja principal origem a literatura especializada no tema aponta os nomes de Brouwer, Heyting e Kolmogorov, compartilha a concepção de que o sentido de uma constante lógica não é explicado pela maneira como ela depende da verdade ou falsidade das proposições sobre as quais se aplica. De um ponto de vista construtivo, esse sentido é dado pela elucidação do que conta como uma demonstração da proposição onde a constante lógica ocorre como elemento principal, assumindo-se já saber o que conta como uma demonstração de cada uma de suas proposições componentes. Em outros termos, se soubermos o que conta como uma demonstração de cada proposição A1,A2, ...,An, o sentido de uma constante lógica c é dado pela explicação do que conta como uma demonstração da proposição c(A1,A2, ...,An). Isso se deve ao fato de que no construtivismo o valor de verdade de uma proposição não é concebido independentemente do conhecimento de sua demonstração. Para se asserir a verdade de uma proposição A devemos possuir uma construção que a demonstre, ao passo que a asserção de sua falsidade consiste numa construção evidenciando que qualquer tentativa de demonstrá-la deve falhar (TROELSTRA, 1999, p. 234). Podemos assinalar diferentes sistemas formais que poderiam ser compreendidos como uma formalização disso que intuitivamente foi denominado de construção, a despeito do objetivo da criação desses sistemas ter tido ou não essa finalidade. Como exemplos, vale mencionar o método de realizabilidade, de Kleene (1945), em que um realizador pode ser visto como uma construção capaz de nos fornecer informações sobre a verdade da proposição que realiza; o sistema de Kreisel (1962), que formaliza a relação "p demonstra A"; e especialmente a teoria de Curry (CURRY; FEYS, 1958) e Howard (1980) que observa uma correspondência entre as noções de demonstração de uma proposição e elemento de um tipo, hoje em dia referida por correspondência Curry-Howard. Diante desse cenário, podemos salientar um dos aspectos da teoria intuicionista de tipos, de Martin-Löf 1. De acordo com ela, podemos tomar a correspondência Curry-Howard como nos dizendo que o tipo de uma função (comumente representada em cálculo lambda) pode 1Para simplificar, convencionamos que a denominação teoria intuicionista de tipos não se refere a qualquer outra teoria de tipos que não seja a de Martin-Löf. 13 INTRODUÇÃO 14 ser considerado uma proposição, ao passo que tal função seria a sua prova, ou melhor, seria um objeto que nos diria como verificar essa proposição, estando assim de acordo com o mote intuicionista de que a verdade de uma proposição é ratificada pela apresentação de sua prova. Essa concepção de proposição, comumente encontrada na literatura sob o nome de proposições como tipos, toma corpo no sistema formal de Martin-Löf. Aliando Dedução Natural e cálculo lambda tipado, como podemos nos dias atuais claramente divisar, a teoria intuicionista de tipos consiste num sistema dedutivo em que toda asserção demonstrada (as quais Martin-Löf denomina juízos) contém um objeto funcional construído como fruto da evidência da verdade da proposição nela asserida. Nessa perspectiva, esse sistema consegue formalizar a interpretação construtiva dada às constantes lógicas. Contudo, na teoria intuicionista de tipos também encontramos uma distinção entre as noções de tipo e conjunto, que se resume em dizer que para se formar um conjunto é preciso ter regras exaustivas que instruam a construção dos seus elementos, ao passo que para se formar um tipo basta apenas haver uma noção geral do que seria um objeto arbitrário do tipo em questão. Consequentemente, temos a partir daí, como argumentaremos, duas concepções de proposição, dependendo se correspondemos uma proposição a um conjunto ou a um tipo. Se considerarmos uma proposição como o conjunto de suas provas, isso implica em dizer que para formarmos uma proposição devemos de antemão estar de posse de regras exaustivas que instruam a construção dessas provas. Ou seja, isso acarreta a estranha condição de que antes de concebermos uma proposição já sabemos como prová-la. Além do mais, observando que na teoria intuicionista de tipos a formação de uma proposição constitui uma derivação no interior do seu aparato dedutivo, diferenciando-se do que costumamos ver com as regras sintáticas indutivas de outros sistemas formais, por meio das quais podemos formar proposições com um valor de verdade ainda não definido, com a noção de proposições como conjuntos não poderíamos sequer utilizar a linguagem da teoria para expressarmos uma conjectura, já que a condição para se formar qualquer uma de suas proposições envolve o conhecimento prévio de sua prova. Aqui a noção de hipótese também se encontra modificada, pois apenas suporíamos algo para o qual já temos condições precisas de dar uma resposta. Numa outra perspectiva, encontramos a noção de proposições como tipos. Nesse caso, a formação de uma proposição não exigiria uma prescrição de como construir suas provas, dado que a formação de um tipo impõe condições menos restritas a respeito da caracterização de seus objetos. Nesse contexto, além de podermos expressar conjecturas, uma construção hipotética assume a característica de uma demonstração que possa depender de um resultado ainda sob investigação. Sendo esse o nosso pano de fundo, esforçar-nos-emos por apresentar a teoria intuicionista INTRODUÇÃO 15 de tipos, indo da sua compreensão no âmbito do construtivismo matemático à explicação do seu sistema formal, sem deixar de fazer algumas considerações filosóficas a respeito dos pontos aludidos acima. A seguir, um breve resumo dos capítulos que compõem a dissertação. No primeiro capítulo, tentaremos esclarecer o que consiste uma demonstração matemática construtiva e como a teoria intuicionista de tipos se insere nesse contexto. Observaremos que uma demonstração construtiva pode ser caracterizada computacionalmente e que o sistema de Martin-Löf constitui uma ferramenta expressiva capaz de extrair o elemento computacional dessas demonstrações. O segundo capítulo tratará da noção de função. Nele procuraremos elucidar o que se pode admitir como uma concepção construtiva de função, a qual se orienta por uma característica computacional. O principal argumento consistirá em dizer que não seria construtivamente adequado definir uma função como um caso particular de relação. Em seguida, trataremos das noções de tipo e cálculo lambda. Procuramos estudar essas noções nelas mesmas, deixando para o próximo capítulo o esclarecimento dos seus papéis nas formas de juízo da teoria intuicionista de tipos. O capítulo se encerra com a definição do seletor R, que, além de ter o seu papel nas regras inferenciais, ilustra bem aquilo que chamamos de caráter computacional de uma função. O terceiro capítulo cuidará particularmente dos aspectos formais da teoria intuicionista de tipos. Há várias maneiras de se interpretar suas formas básicas de juízo, que apesar de serem isomórficas apresentam, ao nosso ver, implicações filosóficas distintas. Nosso ponto de partida adota a perspectiva de uma teoria construtiva dos conjuntos. Por esse viés, a elucidação semântica das formas de juízo nos permitirá problematizar a concepção de proposição proposta por Martin-Löf que define uma proposição como sendo o conjunto de suas provas. O quarto capítulo proporá que a concepção filosófica segundo a qual a compreensão de uma proposição não pode pressupor o estabelecimento de sua verdade entra em conflito com a noção que identifica proposições a conjuntos de prova. Neste ponto investigamos o que geralmente se denomina na filosofia de o problema do falso, para denunciar que a concepção de proposições como conjuntos conduz ao mesmo problema, i.e., de que com essa identificação não se pode conceber proposições que não sejam verdadeiras. Proporemos que para não nos enredarmos nessa aporia uma proposição deve ser compreendida como um tipo. Em seções e subseções específicas aprofundaremos no tema que envolve essas duas concepções de proposição e trataremos das consequências que isso acarreta na compreensão de raciocínios hipotéticos, conjectura e negação (particularmente no que tange ao princípio de ex falso quodlibet). A última seção visa mostrar que o domínio de quantificação de uma proposição deve ser um conjunto (estritamente compreendido no âmbito da distinção conjunto/tipo), para que os critérios de asserção de uma proposição quantificada não percam o seu caráter construtivo. Preâmbulo Introduzimos este espaço com o propósito de fornecer uma visão panorâmica da teoria intuicionista de tipos. Tendo essa perspectiva mais ampla em mente, teremos maior facilidade de "encaixarmos as peças" quando estivermos detidos nos detalhes. Consideramos que uma boa maneira de concebermos essa visão geral seja por meio de um exemplo, ainda que possa parecer neste momento um tanto incompreensível ao leitor não familiarizado com o sistema – o que ambicionamos remediar com o desenrolar do texto. Para tanto, façamos uma derivação formal da proposição A⊃ (B⊃ (A∧B)), que num cálculo proposicional pode ser tomada como o axioma da conjunção. Essa proposição é derivável num sistema de Dedução Natural. A primeira regra inferencial que utilizamos para derivá-la é a de introdução da conjunção, simbolizada por i∧. Ela nos diz que se tivermos garantido como premissa que as proposições A e B são verdadeiras, podemos concluir que a conjunção delas é verdadeira: A B A∧B i∧ Supondo-se então como premissa a verdade das proposições A e B e aplicando a regra acima, damos início à construção da derivação da proposição tomada de exemplo. As hipóteses serão colocadas entre colchetes, juntamente com um índice numérico, para que possamos localizar a ocasião dos seus respectivos descartes: [A]1 [B]2 A∧B i∧ A próxima regra inferencial a ser empregada é a de introdução da implicação, i ⊃, que 16 PREÂMBULO 17 nos permite concluir a verdade de uma implicação A ⊃ B se da hipótese de que A é verdadeira pudermos derivar que B é verdadeira. Nesta regra, a hipótese assumida é descartada, ou seja, a conclusão que contém a implicação por ela introduzida não depende mais da proposição hipotética envolvida no passo inferencial. Como demos índices numéricos às hipóteses, o índice relativo à hipótese descartada é escrito no passo inferencial em que ocorre o descarte: [A]1.... B A⊃ B 1, i⊃ Os pontos na vertical indicam uma derivação que nos leva à proposição B. Voltando ao nosso exemplo, podemos utilizar a regra acima e descartar a hipótese de índice 2, obtendo assim a implicação B⊃ (A∧B), i.e.: [A]1 [B]2 A∧B i∧ B⊃ (A∧B) 2, i⊃ Para concluir, resta apenas descartar a hipótese remanescente [A]1, obtendo assim a demonstração da proposição A⊃ (B⊃ (A∧B)), com ela não dependendo da verdade de nenhuma outra proposição. Esse último passo inferencial é dado novamente pela regra de introdução da implicação: [A]1 [B]2 A∧B i∧ B⊃ (A∧B) 2, i⊃ A⊃ (B⊃ (A∧B)) 1, i⊃ A partir dessa demonstração podemos elucidar algumas características da teoria intuicionista de tipos, as quais serão aprofundadas nos capítulos subsequentes. Um primeiro ponto a se observar é que o sistema de Martin-Löf faz uma distinção entre juízos e proposições. De modo geral, uma proposição consiste naquilo em que incidem as operações lógicas, como os conectivos lógicos ∧ e ⊃, introduzidos pelas regras especificadas acima, e um juízo consiste no que figura como premissa ou conclusão de uma demonstração. De uma proposição para a qual não se tem uma prova, não podemos nos posicionar a respeito do seu valor de verdade, se ela é verdadeira ou falsa, o que se coloca de acordo com o ponto de vista intuicionista, que considera uma proposição verdadeira desde que se possa prová-la. Nesse sentido, cabe a um juízo asserir uma proposição, i.e., dizer que ela é verdadeira, o que na teoria intuicionista de tipos se dá por PREÂMBULO 18 meio da apresentação de uma prova. Assim, a derivação acima adquiriria outro aspecto no interior da teoria intuicionista de tipos. Nela, a prova de uma proposição é explicitamente representada na derivação. Tais provas consistem em objetos matemáticos (como uma função, por exemplo), os quais Martin-Löf denomina de objetos de prova. Desse modo, no sistema formal se tem a forma de juízo a ∈ A para se expressar o fato de que o objeto de prova a é uma prova da proposição A. O passo inferencial da introdução da conjunção seria então expresso desta maneira [x ∈ A]1 [y ∈ B]2 (x,y) ∈ A∧B i∧ Os juízos x ∈ A e y ∈ B indicam que supomos os objetos de prova x e y das proposições A e B. Dessa suposição, construímos, de acordo com as condições que definem a regra i∧, o par ordenado (x,y), que é o objeto de prova da conjunção A∧B. Já aqui se torna mais claro por que os juízos constituem as premissas e conclusões de uma demonstração, e as proposições aquilo sobre o qual incidem as operações lógicas. Quanto à regra de introdução da implicação, a teoria intuicionista de tipos se utiliza da regra de abstração, do cálculo lambda, para representar a construção dos seus objetos de prova. O objeto de prova de uma implicação A ⊃ B consiste numa abstração lambda sobre o objeto de prova da proposição B, ou seja, se da suposição de uma prova x de A chegarmos a uma prova b de B, podemos construir o objeto de prova λx.b, que nos permite asserir a proposição A⊃ B. Esse objeto de prova exprime a ideia de que uma prova de uma implicação A⊃ B consiste numa operação (aqui a função λx.b) que transforma provas de A em provas de B. Aplicando essa regra ao nosso exemplo, criamos uma função a partir da abstração sobre um dos termos que compõe o par ordenado do objeto de prova da conjunção e descartamos a hipótese respectiva ao elemento abstraído: [x ∈ A]1 [y ∈ B]2 (x,y) ∈ A∧B i∧ λy.(x,y) ∈ B⊃ (A∧B) 2, i⊃ Para descartar a outra hipótese e concluirmos a demonstração, efetuamos a abstração sobre o outro termo do par ordenado: PREÂMBULO 19 [x ∈ A]1 [y ∈ B]2 (x,y) ∈ A∧B i∧ λy.(x,y) ∈ B⊃ (A∧B) 2, i⊃ λx.λy.(x,y) ∈ A⊃ (B⊃ (A∧B)) 1, i⊃ Como é possível notar, a forma de se expressar da teoria intuicionista de tipos alia o cálculo lambda tipado à Dedução Natural. O cálculo lambda tipado se exprime em juízos da forma a ∈ A, em que A constitui o tipo do termo lambda a, ao passo que as regras inferenciais são definidas à maneira de um sistema de Dedução Natural. Por essa perspectiva, acreditamos propor uma compreensão mais favorável aos desígnios que se desenvolverão no porvir deste trabalho. Capítulo 1 Martin-Löf: Matemática Construtiva e Ciência da Computação Podemos abordar a teoria intuicionista de tipos como um sistema que permite extrair programas de provas matemáticas, o que propicia uma interseção entre matemática e teoria da computação. Deve-se notar, contudo, como já indica o nome "intuicionista", que estamos falando da matemática em sua perspectiva construtiva 1, pois os procedimentos de prova da matemática clássica poderia impedir a extração de elementos computacionais (MARTIN-LÖF, 1984b, p. 503). Esse impedimento se nota no fato de que, na concepção ontológica da matemática clássica, para que um objeto seja considerado existente, basta que se prove a impossibilidade dele não existir. Em outras palavras, se a suposição da não existência de um objeto a leva a uma contradição, segue-se que a existe. Por outro lado, na concepção construtiva da matemática, antes de se reconhecer a existência de um objeto, deve-se primeiro apresentar um algorítimo que o construa. A matemática construtiva compreende a expressão "existe" de maneira que ela signifique "pode-se construir". Nesse contexto, além de que os objetos designados pelo quantificador existencial tenham a sua existência respaldada por um procedimento efetivo que os gerem, todas as constantes lógicas devem ser interpretadas como prescrições que instruam a construção da prova das sentenças em que elas ocorrem (BRIDGES, 2012). No exemplo a seguir, ilustramos como um método de prova da matemática clássica pode não oferecer uma condição suficiente para se obter um procedimento por meio do qual possamos 1Numa perspectiva mais ampla, envolvendo distinções filosóficas mais finas, o intuicionismo consiste numa particularidade do construtivismo (SILVA, 2007, p. 147). No presente momento, essas distinções não vêm ao caso, por isso trataremos intuicionismo e construtivismo intercambiadamente. 20 CAPÍTULO 1. CONSTRUTIVISMO E CIÊNCIA DA COMPUTAÇÃO 21 construir o objeto que se alega existir. Diz-se um número a ser um número quadrado se for o caso de a = b2, em que b é um número inteiro, ou seja, o resultado da raiz quadrada de a deve ser um número inteiro. Temos 0,1,4,9,16 como exemplos de números quadrados. A partir disso, podemos colocar a seguinte proposição: Um número não quadrado existe no conjunto {2 *10500 +15, 2 *10500 +16}. Notamos que esse conjunto possui dois números como elementos, os quais se diferem por uma unidade. Assim, para provar a proposição acima, podemos apelar para o fato de que os únicos números quadrados que se diferem por 1 são o 0 e o 1, o que implica que quaisquer outros números que se diferem por 1, como os do conjunto acima, não podem ser ambos quadrados. Logo, um número não quadrado deve existir nesse conjunto. O que nos chama a atenção nessa demonstração é o seu caráter não construtivo. De uma prova construtiva de uma proposição se pode extrair um algorítimo que constrói (pelo menos em princípio), pela computação de seus argumentos, o objeto que a proposição alega existir. Mas no caso acima, a existência de um número não quadrado naquele conjunto foi assegurada apenas por uma redução ao absurdo, i.e., se este número não existisse, entraríamos em contradição com o fato de 0 e 1 serem os únicos números quadrados que se diferem apenas por uma unidade. Por essa inaptidão de se apresentar uma construção do objeto em questão, essa demonstração é incapaz de nos apontar pelo menos um daqueles dois números como sendo um número não quadrado. A partir de uma concepção construtiva de existência, podemos obter uma interpretação da disjunção que destitui a validade lógica do princípio do terceiro excluído, o qual é pressuposto numa argumentação por redução ao absurdo. Para se provar a proposição P1∨P2 não é suficiente apenas demonstrar que ambas não são falsas, deve-se construir um objeto (de prova) t que prove pelo menos um dos disjuntos e se possa, além disso, indicar para qual dos disjuntos existe essa prova. Vejamos isso mais de perto. Considere-se uma sequência binária a, caracterizada aqui como um rotina finita que atribui a cada inteiro positivo um elemento do conjunto {1,0}. Observemos então as seguintes proposições: P(a), tal que an = 1, para algum n, ∼ P(a), tal que an = 0, para todo n, P(a) ∨ ∼ P(a), tal que ou P(a) ou ∼ P(a), CAPÍTULO 1. CONSTRUTIVISMO E CIÊNCIA DA COMPUTAÇÃO 22 Para uma prova construtiva da proposição P(a) ∨ ∼ P(a), deve existir um procedimento que, ou compute um número inteiro positivo n, tal que an = 1, ou que nos garanta, em princípio, que an = 0 para todo n. Se fizermos a seguinte abreviação, G(x) ≡ 2x+2 é a soma de dois primos, em que x está para os números inteiros positivos, podemos definir a sequência binária a = (a1,a2,a3...), tal que an =  0 se ∀x≤ n(G(x)) é verdadeira1 caso contrário De acordo com essa definição, uma prova construtiva da proposição P(a) ∨ ∼ P(a) requereria um método efetivo para o qual a conjectura de Goldbach fosse decidível, em que ∼ P(a) afirmaria a verdade da conjectura, e P(a) afirmaria a sua negação. Como até o presente momento essa conjectura não foi resolvida, não temos o direito de construtivamente afirmar a proposição ∀x(P(x) ∨ ∼ P(x)), que representa o princípio do terceiro excluído, da lógica clássica. Em outras palavras, a sequência binária a é um contraexemplo à validade deste princípio, quando considerado à luz dos parâmetros construtivistas (esse exemplo se encontra em (BRIDGES; RICHMAN, 1987)). Os termos "algorítimo", "método efetivo", "procedimento mecânico", entre outros, são aqui empregados como sinônimos. O que eles significam, quando dizemos, por exemplo, que uma prova deve consistir num método efetivo que constrói um objeto a partir da computação de certos argumentos, reside na seguinte definição informal: um método efetivo (bem como os outros termos sinônimos) consiste num processo discreto (i.e., que ocorre passo a passo) de aplicação de regras não ambíguas a um conjunto de argumentos (os dados de entrada); a aplicação dessas regras não exige criatividade do aplicador e, se seguidas corretamente, necessariamente retornam, num número finito de passos, um conjunto determinado de valores (os dados de saída). Um método efetivo apto a resolver um certo problema está necessariamente condicionado a retornar a resposta certa, mesmo que não seja possível, por questões práticas, que ele seja levado a cabo. Por essa razão, muitas vezes nos referimos apenas à execução em princípio de um método efetivo. Levando em conta a descrição acima, um algorítimo pode ser executado por uma máquina ideal (onde os impedimentos práticos são ignorados), já que o procedimento é discreto e não requer engenhosidade do agente que aplica as regras. Desse modo, tomando a noção de algorítimo como elemento fundamental na caracterização dos métodos de prova da matemática construtiva, CAPÍTULO 1. CONSTRUTIVISMO E CIÊNCIA DA COMPUTAÇÃO 23 pode-se, por esse viés, encontrar um espaço comum entre computação e matemática, que é o lugar privilegiado onde a teoria intuicionista de tipos se desenvolve. Essa caracterização algorítmica das provas construtivas é assim detalhada pelas palavras de Bridges (2012, §2): Idealmente, estamos tentando desenvolver a matemática de uma maneira que, se um teorema assere a existência de um objeto x com uma propriedade P, então a demonstração do teorema encorpora algorítimos para construir x e para demonstrar, por meio de quaisquer cálculos que sejam necessários, que x tem a propriedade P. 2 Acrescentando, podemos dizer que as noções de matemática construtiva e programação computacional se confundem na medida em que o ato de programar não se orienta mais pelo objetivo específico de escrever um conjunto de instruções para uma determinada máquina, mas em criar métodos computacionais cuja execução estaria a cargo de um computador, mesmo que ideal. Essa mudança de atitude é acompanhado por uma alteração terminológica, o que antes se denominava "ciência do computador" (computer science) passa a se chamar "ciência da computação" (computing science), como observa Dijkstra (1976, p. 201), que também afirma: "O propósito do programa costumava ser o de instruir nossos computadores; tornou-se o propósito do computador executar nossos programas" 3. Tal questão transita de como um programa deveria ser escrito – a fim de instruir adequadamente uma máquina existente –, para como uma máquina deveria funcionar na hipótese de que o programa fosse implementado. Distinguem-se assim dois tipos de máquina, uma fisicamente existente, suscetível portanto às limitações tecnológicas e práticas, e uma abstrata, que representa a execução ideal de programas, cuja demanda pela implementação pode ser ignorada. Nessa perspectiva idealizada da computação, notamos mais um elemento que a coloca em paralelo à atividade matemática: a correção de um programa é estabelecida no âmbito formal, independentemente de sua execução real. Ou seja, podemos, por inferências lógicas, deduzir que um certo programa realiza a especificação a ele atribuída. Dentro desse mesmo panorama, aludimos a Hoare (1969, p. 576), que afirma: Programação de computador é uma ciência exata no sentido de que todas as propriedade de um programa e todas as consequências de sua execução em qualquer ambiente dado podem, em princípio, serem encontradas fora do próprio texto do programa, por meio de raciocínios puramente dedutivos. 4 2"Ideally, we are trying to develop mathematics in such a way that if a theorem asserts the existence of an object x with a property P, then the proof of the theorem embodies algorithms for constructing x and for demonstrating, by whatever calculations are necessary, that x has the property P". 3"It used to be the program's purpose to instruct our computers; it became the computer's purpose to execute our programs". 4"Computer programming is an exact science in that all the properties of a program and all the consequences of executing it in any given environment can, in principle, be found out from the text of the program itself by means of purely deductive reasoning". CAPÍTULO 1. CONSTRUTIVISMO E CIÊNCIA DA COMPUTAÇÃO 24 Em suma, a teoria da computação e a matemática construtiva se conciliam porque (1) ambas disciplinas partilham do mesmo fundamento, o caráter algorítmico de suas operações; e (2) as propriedades de um programa podem ser dedutivamente estabelecidas. No entanto, o que falta para que essas disciplinas se fundam numa coisa só é uma linguagem capaz de abrangê-las indistintamente. Nesse ponto observamos Martin-Löf exercer um papel fundamental, uma vez que, além de sua teoria intuicionista de tipos intender à formalização dos fundamentos da matemática construtiva, ela possui uma expressividade que a torna apta a ser considerada uma linguagem de programação. Quanto ao primeiro aspecto, lemos em (MARTIN-LÖF, 1998a, p. 127): A teoria de tipos com a qual nos ocuparemos pretende ser um sistema integral para a formalização da matemática intuicionista, como desenvolvida, por exemplo, no livro de Bishop [(1967)]. 5 Já esta passagem (MARTIN-LÖF, 1984, p. 2 (2)): "[A] riqueza adicional da teoria de tipos, se comparada à lógica de predicados de primeira ordem, a torna utilizável como linguagem de programação" 6, destaca sua expressividade adequada ao âmbito computacional. Martin-Löf (1984b, p. 503) nos diz que há um consenso entre os construtivistas de que não se deve haver divisão entre programação e os conceitos primitivos de uma matemática construtiva, sobretudo no que diz respeito ao conceito de função. No âmbito dessa fusão, um programador poderia alegar apenas que os procedimentos computacionais presentes numa apresentação construtiva da matemática não seriam suficientemente explícitos para serem executados por uma máquina. Assim, na perspectiva da vinculação entre essas disciplinas, Martin-Löf afirma que a sua motivação filosófica em tentar esclarecer a sintaxe e a semântica da matemática construtiva o conduziu à elaboração de uma teoria de tipos que pudesse ser igualmente encarada como uma linguagem de programação. 1.1 Correção formal de um programa Dissemos que uma das faces matemática da teoria da computação reside no fato de que o ato de programar está envolto em raciocínios puramente dedutíveis. Aliado a isso, a teoria intuicionista de tipos, além de possuir uma notação para os programas a serem executados, o que a insere no âmbito das linguagens de programação, ela também permite descrever as tarefas 5"The theory of types with which we shall be concerned is intended to be a full scale system for formalizing intuitionistic mathematics as developed, for example, in the book by Bishop". 6"[T]he additional richness of type theory, as compared with first order predicate logic, makes it usable as a programming language". CAPÍTULO 1. CONSTRUTIVISMO E CIÊNCIA DA COMPUTAÇÃO 25 que se supõem que os programas executem, desse modo, é possível decidir dedutivamente se um programa realiza uma certa especificação. Assim temos uma especificação, que descreve qual o problema a ser resolvido por um programa, ao passo que este nos diz como o problema descrito pela especificação pode ser resolvido 7. Deve-se observar que isso não se confunde com a questão, que não compete intrinsecamente à teoria de tipos, de saber se a especificação consegue adequar formalmente o problema que se apresenta, i.e., se a regimentação do problema em termos formais corresponde ao problema que se coloca de maneira intuitiva. Essa relação entre programa e especificação é descrita abaixo por Hoare (1969, p. 577), o qual descreve a especificação como sendo "o pretenso papel de um programa": Uma das mais importantes propriedades de um programa é se ele exerce ou não seu pretenso papel. O pretenso papel de um programa, ou de uma parte do programa, pode ser especificado fazendo-se declarações gerais sobre os valores que as variáveis relevantes tomarão após a execução do programa. Essas declarações usualmente não atribuirão valores particulares para cada variável, mas, antes, especificarão certas propriedades gerais dos valores e das relações que se mantêm entre elas. 8 Na teoria intuicionista de tipos, programa e especificação ocorrem lado a lado. Um programa é construído ao mesmo tempo em que se demonstra que ele realiza a sua especificação. Antecipando um pouco as peculiaridades formais do sistema de Martin-Löf, que serão apresentadas nos capítulos a seguir, vejamos uma das quatro formas básicas de juízo desse sistema, que já mencionamos no preâmbulo, mas no contexto de uma teoria proposicional: a ∈ A, aqui, o símbolo à esquerda representa um programa, e o à direita a sua especificação, ambos derivados concomitantemente de acordo com as regras inferenciais da teoria intuicionista de tipos. Uma das maneiras de se ler esse juízo (a maneira que concebe a teoria como uma linguagem de programação) é o programa a realiza a especificação A. Dada a possibilidade de se derivar essa forma de juízo, podemos conceber uma noção de correção: a noção de que um programa é correto em relação a uma certa especificação. Assim, 7Mais sobre isso no capítulo 4. 8"One of the most important properties of a program is whether or not it carries out its intended function. The intended function of a program, or part of a program, can be specified by making general assertions about the values which the relevant variables will take after execution of the program. These assertions will usually not ascribe particular values to each variable, but will rather specify certain general properties of the values and the relationships holding between them". CAPÍTULO 1. CONSTRUTIVISMO E CIÊNCIA DA COMPUTAÇÃO 26 antes mesmo de um programa ser implementado, é possível, empregando-se apenas raciocínio dedutivo, delimitar suas propriedade e prever suas consequências. Nesse sentido, podemos compreender a seguinte passagem, de Bridges (2012, §3.4): Toda demonstração construtiva envolve um algorítimo que, em princípio, pode ser extraído e rearranjado como um programa de computador; além do mais, a demonstração construtiva é por si mesma uma verificação de que o algorítimo é correto – isto é, realiza a sua especificação. Uma grande vantagem da abordagem formal de Martin-Löf à matemática construtiva é que ela facilita enormemente a extração de programas das demonstrações. 9 Um ponto interessante a ser observado é que essa verificação formal, capaz de demonstrar matematicamente a correção de um programa em relação a uma especificação, é um modo de se garantir formalmente que um sistema está livre de erros de programação. Em ambientes onde um erro de programação pode trazer prejuízos ou levar a situações de risco, a verificação formal se torna uma ferramenta indispensável. Para concluir, esse paralelismo entre programa e especificação, e a demonstração formal de que um realiza o outro, é um dos traços distintivos da teoria de tipos, de Martin-Löf, o qual nos conduzirá a uma teoria proposicional fundamentada em dois outros aspectos, os quais ficaram conhecidos na literatura especializada como (a) correspondência Curry-Howard e (b) interpretação BHK das constantes lógicas. 9"Every constructive proof embodies an algorithm that, in principle, can be extracted and recast as a computer program; moreover, the constructive proof is itself a verification that the algorithm is correct – that is, meets its specification. One major advantage of Martin-Löf's formal approach to constructive mathematics is that it greatly facilitates the extraction of programs from proofs". Capítulo 2 Funções Vimos no capítulo anterior que a matemática construtiva se confunde com a teoria da computação na medida em que suas demonstrações embutem algorítimos, i.e., da demonstração de um teorema que contém uma afirmação de que um certo objeto possui uma certa propriedade, pode-se extrair um algorítimo que instrui a construção desse objeto satisfazendo a propriedade a ele atribuída. Nessa perspectiva, a noção de função desempenha um papel primordial, já que ela constitui, considerada a partir de seu caráter computacional, as próprias instruções algorítmicas. Neste capítulo veremos, portanto, o que se quer dizer com caráter computacional de uma função, mas para chegarmos lá, passaremos primeiro pela definição relacional de função da teoria dos conjuntos e levantaremos considerações acerca da teoria fregiana de função. Informalmente, podemos descrever as funções matemáticas como operações que associam valores a argumentos, sendo argumentos aquilo sobre o qual a função opera, e valores o resultado dessa operação. Isso ocorre por meio do domínio e do contradomínio da função, sendo o primeiro o conjunto dos seus possíveis argumentos, e o segundo, um conjunto que contenha, pelo menos, todos os valores associados a esses argumentos. Uma das peculiaridades de uma função é que existe um, e somente um, valor para cada argumento, isso significa que a operação funcional não é ambígua, pois para um determinado argumento não há mais de um valor a ele associado. Essa compreensão intuitiva que se tem da noção de função é comumente formalizada no âmbito da teoria dos conjuntos por meio da noção de relação. Em teoria dos conjuntos, relações são ênuplas ordenadas pertencentes a um subconjunto de um produto cartesiano. Expliquemos essa definição: o produto cartesiano A×B dos conjuntos A e B é formado por todos os pares ordenados < a,b >, tal que a ∈ A e b ∈ B. Assim, dizemos um objeto a estar numa relação (binária) R com um objeto b se o par ordenado < a,b > pertencer a um conjunto de pares 27 CAPÍTULO 2. FUNÇÕES 28 ordenados que seja subconjunto do produto cartesiano A×B, i.e., < a,b >∈ R e R ⊆ A×B. Considerando, por exemplo, nos números naturais, a relação de identidade < x,y >∈ I, ela consistirá no conjunto de pares ordenados I = {< 0,0 >,< 1,1 >,< 2,2 >,...}, que é um subconjunto do produto cartesiano N×N. A partir disso, segue-se facilmente a definição de função, a saber, por função entende-se uma relação R em que para todo x existe um único y tal que < x,y >∈ R. Nessas condições, o domínio e o contradomínio da função consistem nos conjuntos envolvidos no produto cartesiano do qual a relação acima descrita é um subconjunto. Vemos, contudo, essa definição conjuntista com ressalvas. Uma objeção que fazemos, adotando uma perspectiva fregiana, é que por essa definição não se distingue a função do seu conjunto de pares ordenados – o que para Frege (1978, p. 40) seria o seu percurso de valores, ou o que hodiernamente denominamos de grafo da função. O grafo de uma função consiste num conjunto de pares ordenados (ou ênuplas ordenadas, dependendo da quantidade de argumentos da função), em que o primeiro elemento é o argumento da função, e o segundo o valor que a função atribui a esse argumento. Assim, toda função f , com um conjunto A contendo os seus possíveis argumentos e um conjunto B contendo os valores para esses argumentos, seria tomada pelo seu grafo, definido da seguinte maneria, em que f (a) é a aplicação da função f ao argumento a: Grafo de f = {< a,b >| a ∈ A e b = f (a) ∈ B}, de modo que não existam dois pares ordenados distintos com o primeiro elemento igual. Esse ponto de vista não considera o caráter operacional de uma função, pois duas funções que operam distintamente, mas que no final das contas sempre associam o mesmo valor para os argumentos de um mesmo domínio, são consideradas idênticas. Por exemplo, as funções 2 * x e x+ x, claramente distintas por envolverem operações diferentes, multiplicação e soma, seriam consideradas, a partir apenas do grafo, idênticas. Frege (1978, p. 40) nos diz: Quando escrevemos x2−4x = x(x−4), não identificamos uma função com a outra, mas apenas identificamos seus valores. CAPÍTULO 2. FUNÇÕES 29 Disso podemos extrair duas conclusões: (a) funções e objetos são entidades de natureza distintas; (b) reduzindo a noção de função à de relação, como descrito acima, ignoramos, ao nosso ver, um importante aspecto das funções, que é o modo como seus argumentos são computados. Sobre esses pontos, interessa-nos caracterizar a noção de função sem colapsá-la com a noção de grafo, além de considerá-la logicamente anterior 1. Para tal, recorremos a Frege (1978, pp. 37-38). Como ele nos explica, uma função é representada por uma expressão incompleta, que, quando completada por uma expressão pertinente – denominada sinal do argumento – torna-se uma expressão capaz de se referir definidamente a uma entidade. Por exemplo, a expressão "2 * x3 + x", em que "x" indica indefinidamente um número, representa uma função. Substituindo "x" por diferentes sinais de argumentos, "1", "4" e "5", i.e., "2 *13 +1" "2 *43 +4" "2 *53 +5," essas expressões se referirão aos números 3, 132 e 255, respectivamente. O importante a observar é que em meio às diversas substituições possíveis, reconhecemos a mesma função ao se depreender a forma que permanece comum, o que pode ser explicitado pela expressão "2 * ( )3 +( )". Por meio desses exemplos notamos que o que caracteriza fundamentalmente uma função é a sua necessidade de complementação – ou, na terminologia de Frege, sua condição insaturada –, compreendida numa forma comum que se preserva mediante a substituição de diferentes argumentos. Assim, podemos reconhecer a mesma função nas expressões "2 *13+1" e "2 *23+ 2", apesar de se referirem a números distintos, mas não reconhecermos a mesma função em "2 *13 +1" e "4−1", embora essas expressões se refiram ao mesmo número. Em suma, concebemos uma expressão complexa analisável em partes mais simples, os sinais de argumento. A referência da expressão como um todo está em função dos sinais de 1"Em algumas locuções de expressão corrente em Matemática, a palavra 'função' corresponde certamente ao que chamei aqui de percurso de valores de uma função. Mas a função, no sentido em que a emprego, é logicamente anterior" (FREGE, 1978, p. 41, n. 1). CAPÍTULO 2. FUNÇÕES 30 argumento que nela se podem substituir, e se tomarmos a expressão na sua forma a ser complementada, ou seja, com um lugar vago onde se insere um sinal de argumento, temos uma expressão que se refere a uma função. Frege (1967, p. 22) assim afirma: Se em uma expressão, cujo conteúdo não precisa ser capaz de se tornar um juízo, um sinal simples ou composto tem uma ou mais ocorrências e o consideramos substituível em todas ou algumas dessas ocorrências por alguma outra coisa (mas pela mesma coisa em todos os lugares), então chamamos de função essa parte que permanece invariante na expressão, e de argumento da função a parte substituível. 2 É essa concepção de função que nos interessa, uma entidade que à medida que se completa por argumentos resulta em determinados valores. Isso nos permite caracterizar a noção de função sem a identificarmos com o seu grafo. Pode-se, além disso, fazer o caminho inverso ao que apontamos na teoria dos conjuntos, i.e., tomar a noção de função como básica e definir a partir dela a noção de relação. Diz-se, por exemplo, que a relação x > y é verdadeira quando o número substituído no lugar de x é maior que o número substituído no lugar de y, e falsa quando x é menor ou igual a y. Desse modo, ao invés de se definir essa relação por meio do conjunto dos pares ordenados que a verificam, podemos defini-la como uma função, de argumentos numéricos, que para certos x e y associa o valor o verdadeiro e para outros o valor o falso. Ou seja, para os argumentos 3 e 2 teríamos a substituição 3 > 2, que resultaria no valor o verdadeiro, já para os argumentos 4 e 4 obteríamos o valor o falso. As relações são assim definidas como funções cujos valores associados a seus argumentos são valores de verdade. Assim Frege define as relações por meio da noção, mais básica (ou como dizíamos, logicamente anterior), de função. Além do mais, ele concebe a noção de conceito, que consiste também numa função cujos valores são valores de verdade, mas que, diferentemente das relações, propicia a substituição de apenas um argumento por vez (FREGE, 1978, p. 55). Propriedades numéricas como x é primo ou x é par seriam conceitos, uma vez que resultam num certo valor de verdade dependendo do número que se coloque no lugar de x. A plausibilidade de não se reduzir uma função ao seu grafo consiste em salientar o seu aspecto computacional, ressaltando, sobretudo, como os valores são construídos à medida que os argumentos são computados. Como vimos, considerando as funções um caso especial da noção de relação, seria natural afirmarmos que o conjunto de pares ordenados 2"If in an expression, whose content need not be capable of becoming a judgement, a simple or compound sign has one or more occurrences and if we regard that sign as replaceable in all or some of those occurrences by something else (but everywhere by the same thing), then we call the part that remains invariant in the expression a function, and the replaceable part the argument of the function." CAPÍTULO 2. FUNÇÕES 31 P = {< 1,2 >,< 2,4 >,< 3,6 >,< 4,8 >,...} corresponde à função numérica f , de domínio e contradomínio N, dada pela regra f (x) = 2x, entre outras possíveis. Ao que tudo indica, essa concepção parece supor que o conjunto P já estaria de certa forma dado e que f seria uma relação verdadeira na medida em que o representasse, ou seja, a associação que ela faz entre argumentos e valores corresponderia aos pares ordenados desse conjunto. Não obstante, se perguntássemos a respeito dos elementos do conjunto P, principalmente acerca de quais são os elementos sugeridos pelos três pontos, a única resposta possível, já que se trata de um conjunto infinito, seria apresentar uma maneira de se construir os pares ordenados que a sequência acima indica apenas implicitamente. Mas essa maneira de se construir os pares ordenados nada mais é do que uma função, que assim se coloca conceitualmente anterior à noção conjuntista de relação. Para reforçarmos esse ponto, reconsideremos o conceito (utilizando a terminologia fregiana) G(x), que apresentamos no primeiro capítulo. Por esse conceito envolver uma conjectura, ainda não sabemos qual conjunto de pares ordenados lhe corresponderia, a despeito de se poder construir um algorítimo que nos diga, para qualquer número par maior do que dois, se ele é a soma de dois números primos. Ou seja, nesse caso temos uma função, definida pela sua operação, apesar de ignorarmos o seu grafo. Quanto à questão sobre a validade da conjectura de Goldbach, ela residiria em saber se é possível garantir que G(x) sempre retorná o valor o verdadeiro para qualquer argumento de seu domínio. Além disso, com Frege observamos que conceitos são um caso particular de função. Ora, se um conjunto é dado por meio de um conceito que delimita precisamente quais os elementos que a ele pertence ou não, incorreríamos numa petição de princípio assumir que uma função é um conjunto de pares ordenados 3 . Gostaríamos de concluir esta parte salientando que a noção fregiana de função nos deixa claro que o grafo de uma função – um conjunto de pares ordenados – não se confunde com a própria função. Por meio dessa distinção, podemos enfatizar o caráter dinâmico das funções, que na teoria intuicionista de tipos desempenha o papel de articular as transformações de um objeto no seu tráfego entre diversos tipos, ou, do ponto de vista computacional, uma função seria um programa que, quando executado, aplica aos argumentos as transformações requeridas por uma certa especificação. 3Como encontramos, por exemplo, em Enderton (1977, p. 42): "Portanto, uma função é um conjunto de pares ordenados (i.e. uma relação)" 4. 4Thus a function is a set of ordered pairs (i.e. a relation). CAPÍTULO 2. FUNÇÕES 32 2.1 Tipos A argumentação precedente nos conduziu à conclusão de que uma função consiste numa operação que transforma certos argumentos em determinados valores. Nesta seção, chamaremos a atenção ao fato de que tais argumentos e valores se restringem aos domínios em que a operação funcional é significativa, constituindo assim o tipo da função. Comecemos por um exemplo. Seja considerada a função sucessora S, que para cada argumento numérico x, atribui como valor o número que imediatamente lhe sucede, i.e., x′. Assim, se o argumento x – o objeto de entrada que será computado por S – for igual a 2, o valor a ele atribuído – o objeto de saída – será 3; se x for 3, o valor será 4, etc. . Notamos então que, sendo S uma função, para cada argumento x de entrada existe um único valor S(x) de saída, o que pode ser descrito pela definição S(x) = x′. Devemos atentar que quando dissemos que os argumentos de S eram numéricos, a noção de domínios de significatividade estava implicitamente presente, a qual consiste na delimitação de quais objetos são significativamente operados por uma certa função. Isso quer dizer que não faz sentido definir uma função sem antes estipular quais serão os possíveis objetos por ela operados e quais os possíveis objetos que dela resultarão. No caso de S, temos que ela é uma função significativamente aplicável a objetos numéricos e que o seus valores resultam, igualmente, em objetos numéricos; não faria sentido, por exemplo, tomar como argumento de S um juízo P e perguntar pelo seu sucessor, ou seja, somar P a 1. Dessa maneira, na definição de uma função existem duas noções fundamentais, a de domínio e a de contradomínio. O domínio se constitui dos objetos que podem ser tomados como argumentos, a fonte de entrada da função, já o contradomínio é formado, pelo menos, pelos possíveis valores originários da operação sobre os argumentos. Diz-se "pelo menos" devido ao fato de um contradomínio poder conter mais objetos do que os estritamente gerados pela função em questão. Considerando a função S, ela poderia ter como domínio os números naturais e como contradomínio os números inteiros, todavia, apenas parte do contradomínio seria referida como valores de S, parte essa que denominamos de imagem da função. Se A e B são, respectivamente, domínio e contradomínio de uma função f , expressamos isso por f : A→ B, significando que f toma seus argumentos no domínio A e os mapeia a objetos do contradomínio B. Desse modo, tem-se explícito quais objetos podem ser inseridos no lugar das variáveis que ocorrem na função f , para que assim a sua operação esteja restrita ao âmbito de sua significaCAPÍTULO 2. FUNÇÕES 33 tividade. Um outro modo de dizer a mesma coisa é afirmar que f mapeia objetos do tipo A a objetos do tipo B, entendendo por tipo nada mais do que um certo domínio de objetos, neste caso construído com a finalidade de delimitar o campo de operação de uma função. Assim temos, por exemplo, o tipo dos números naturais, o tipo dos valores de verdade, o tipo dos caracteres linguísticos reconhecidos por uma certa máquina, etc. . Escrevemos x : A para declararmos o tipo da variável x, em outras palavras, para dizer que esta variável deve ser substituída apenas por objetos do tipo A. Na expressão acima, em que definimos o domínio e o contradomínio de uma função f , o sinal de dois pontos foi empregado da mesma maneira, ele nos diz que f é do tipo A→ B, sendo que f é uma variável que pode ser substituída por qualquer função que mapeie um objeto do tipo A a um objeto do tipo B. Considerando f : N→ N, f poderia ser substituída pela função sucessora, por exemplo, uma vez que pode ser definida sobre os números naturais. De maneira análoga, se, como Frege, tomarmos as propriedades como funções que mapeiam seus argumentos a valores de verdade, o tipo de uma propriedade numérica P seria expresso por P : N→ B, em que B é o tipo booleano, um domínio de dois objetos, o verdadeiro e o falso. Qualquer tipo da forma A→ B representa o tipo de uma entidade funcional, o que salienta o aspecto de que uma função se define a partir de uma mapeamento entre domínios. Para nos referirmos a uma função f definível entre os tipos A e B, podemos também utilizar a notação x 7→ f y, sendo que x : A e y : B. Assim, a função S, de tipo N→ N, pode ser expressa por x 7→ S x′. Nessa expressão podemos notar pelo menos três elementos envolvidos: uma função S, um argumento x e o valor que corresponde à aplicação de S a x, i.e., x′. Isso evita o tratamento ambíguo que por vezes ocorre ao se mencionar uma função f por f (x), que é o valor de f , não a função propriamente. Além do mais, esse modo de representar uma função ajuda a compreender melhor, como se verá agora, a notação lambda. 2.2 Cálculo lambda Fazemos aqui uma breve apresentação do cálculo lambda tipado. Esse cálculo se apresenta bastante conveniente para representar a noção de função que vimos propondo, pois, além de nele se poder representar os tipos dos valores e argumentos de uma função, seu mecanismo de abstração permite construir objetos funcionais, uma particularidade de grande valia para as CAPÍTULO 2. FUNÇÕES 34 regras inferenciais da teoria intuicionista de tipos. Na notação lambda, temos o operador de abstração λ, o qual exerce o papel de abstrair uma função a partir de um mapeamento entre dois objetos, substituindo um desses objetos, ou ambos, por uma variável de um determinado tipo. Seja considerado o seguinte mapeamento, que mapeia o número 0 ao seu sucessor: 0 7→ S 0′. Substituindo a primeira ocorrência de 0 pela variável x, de tipo N, obtém-se a função constante x 7→ 0′, de tipo N→ N, que mapeia qualquer número natural x ao número sucessor de 0, i.e., o número 1. Em notação lambda, isso é representado pela expressão (λx : N.0′). Note-se que a declaração de tipo dos argumentos da função foi incorporada à própria expressão. Agora, substituindo a segunda ocorrência do número 0 pela mesma variável, abstrai-se a função sucessora S : N→ N, i.e.: (λx.x′). Essa expressão diz que a variável imediatamente após a letra grega λ é o argumento sobre o qual deverá incidir a operação descrita após o ponto. Como observam Hindley e Seldin (2008, p. 2), a parte "λx." dessa expressão pode ser encarada como uma representação disfarçada de "x 7→", o que auxilia a visualizar que está havendo um mapeamento de x a algum valor. Neste último caso, a declaração de tipo no interior do próprio termo lambda foi omitida, expediente empregado quando os tipos envolvidos já estiverem explícitos pelo contexto. Resta ainda esclarecer como as funções computam seus argumentos, ou seja, como elas se aplicam a objetos condizentes com o seu domínio a fim de produzir os valores que lhes correspondem. Sendo (λx. f (x)) uma função de tipo A→ B, temos (λx. f (x))a = f (a), em que f (a) denota o resultado da substituição de x em f (x) pelo objeto a de tipo A 5. A 5Como não poderia deixar de ser, pois se o argumento fosse de outro tipo, a aplicação, por fugir do domínio da CAPÍTULO 2. FUNÇÕES 35 variável que deve ser substituída é a que está ligada pelo operador de abstração lambda, i.e., a variável imediatamente após "λ". E como já indicado pelo tipo da função, o resultado dessa aplicação retorna um objeto de tipo B, ou seja, f (a) : B. Deve-se notar que (λx. f (x)) é diferente de f (x), o primeiro representa uma das possíveis funções de tipo A→ B, já o segundo representa um dos possíveis valores dessa função para um argumento x : A, e por isso é do tipo B. Se tomarmos como exemplo a função sucessora S : N→ N, e representarmos um número natural n por um 0 seguido de n sinais de "′", para se obter o número sucessor de um n : N, basta efetuar a aplicação (λx.x′)n, a qual retornará um n′ : N como resultado. Um ponto interessante é como as funções com mais de uma variável, i.e., com aridade maior do que 1, são representadas na notação lambda. Consideremos a função de adição, definida assim: (x,y) 7→ ad x+ y Nesse caso, ad toma os argumentos x e y e os mapeia ao valor correspondente à sua soma. Para considerar uma aplicação dessa função, sejam a e b os argumentos, assim: ((x,y) 7→ ad x+ y)(a,b) = a+b. Nesse exemplo, o argumento de ad foi tratado como um par ordenado (a,b), tal que a : N e b : N, de maneira que as suas duas variáveis foram simultaneamente instanciadas. Dessa forma, (N×N)→ N seria o seu tipo, tendo como domínio um produto cartesiano entre os números naturais. Todavia, pelo que ficou conhecido como currying, essa mesma função pode ser equivalentemente transformada numa função de uma só variável, a qual computa um único argumento de cada vez. A ideia consiste simplesmente em mapear o argumento inicial a uma outra função: x 7→ g (y 7→ h x+ y). Considerando novamente os argumentos a e b, tem-se: função, não seria significativa. CAPÍTULO 2. FUNÇÕES 36 ((x 7→ g (y 7→ h x+ y))(a))(b) = (y 7→ h a+ y)(b) = a+b. Como indica a ordenação dos parênteses, a prioridade das aplicações se da pela esquerda. Primeiro se aplica a função g, que tem a como argumento, só então a função h é aplicada, a qual possui o argumento de g como constante. A função h consiste assim na operação de "somar y ao argumento da função g". Em notação lambda isso seria ((λx.(λy.x+ y))a)b = (λy.a+ y)b = a+b. Desse modo, para a função ad definida como ad(x,y) = x+ y, podemos construir a função (λx.(λy.x+ y)), de aridade 1. Vale notar que a técnica de currying não se trata de uma composição de funções em que o contradomínio de uma função corresponde ao domínio da função com a qual ela faz composição. Por exemplo, se tivermos as funções g : A→ B e h : B→C, poderíamos compô-las a fim de se formar a função composta h◦g : A→C. Isso quer dizer que para um dado argumento a : A, computá-lo pela função composta h ◦ g é equivalente a computá-lo pela função g e usar o valor que ela produzir como argumento da função h, i.e.: A g // h◦g > >> >> >> B h  C Diferentemente, com o currying, a implicação entre os domínios é interpretada dando-se prioridade à direita. Se g e h fossem as funções empregadas para se obter a versão currying de uma função de aridade 2, g teria o tipo A→ (B→C), e h o tipo B→C, o que significa que o contradomínio de g é constituído por objetos funcionais, além de que ele é diferente do domínio de h. De modo geral, uma função de aridade n tem o tipo A→ (A1→ (A2→ (...(An−1→ An)...). CAPÍTULO 2. FUNÇÕES 37 Concluindo, nos termos da notação lambda, uma função (λx.(λy. f (x,y))) : A→ (B→C) retorna como valor para cada a : A uma função (λy. f (a,y)) : B→C, que por fim, para cada argumento b : B, retorna o valor f (a,b) : C. 2.3 O seletor R Neste capítulo, foi apresentada uma noção de função que privilegiou o seu aspecto dinâmico. Para conclui-lo, expomos a seguir o seletor R, que nos servirá tanto para ilustrar o papel computacional de uma função, como para esclarecer o seu próprio funcionamento, uma vez que ele é empregado pelas regras de inferência da teoria intuicionista de tipos, com as quais lidaremos no próximo capítulo. A teoria intuicionista de tipos se utiliza do seletor R para expressar funções recursivas. Este seletor consiste num esquema geral por meio do qual uma diversidade dessas funções podem ser representadas, como predecessão, soma, multiplicação. Define-se R da seguinte maneira:  R(0,d,(x,y)e(x,y)) = dR(a′,d,(x,y)e(x,y)) = (x,y)e(x,y)(a,R(a,d,(x,y)e(x,y))) O passo recursivo é dado pela segunda equação, em que a′ passa para a e R é reaplicado, ambos ocorrendo como argumentos de (x,y)e(x,y). Aplicando R paulatinamente, chegamos a a = 0, resultando então, como diz a primeira equação, no valor d. A função recursiva de predecessão, por exemplo, intuitivamente dada assim:  pd(0) = 0pd(a′) = a CAPÍTULO 2. FUNÇÕES 38 é definida pelo seletor R da seguinte maneira: pd(a)≡ R(a,0,(x,y)x). De acordo com o esquema geral acima, primeiramente executamos a, o qual retorna como valor 0 ou b′. No caso de a = 0, o valor de R(a,0,(x,y)x) é 0. Mas no caso de a = b′, tem-se R(b′,0,(x,y)x) = (x,y)x (b,R(b,0,(x,y)x), e assim sucessivamente, até que o primeiro argumento de R seja 0. Vale notar que uma expressão da forma (x,y) f (x) significa que uma função f deve ser aplicada somente sobre o elemento x de um par (x,y) que se apresenta como argumento. Como na definição de pd temos apenas (x,y)x, essa expressão simplesmente nos diz que x deve ser substituído pelo elemento correlato à posição de x num par (x,y), que nesse caso é o primeiro, assim: (x,y)x (a,b) = a Para esclarecer melhor, calculemos o predecessor do número 3: R(3,0,(x,y)x) = (x,y)x (2,R(2,0,(x,y)x)) = (x,y)x (2,(x,y)x (1,R(1,0,(x,y)x))) = (x,y)x (2,(x,y)x (1,(x,y)x (0,R(0,0,(x,y)x)))) = (x,y)x (2,(x,y)x (1,(x,y)x (0,0))) = (x,y)x (2,(x,y)x (1,0)) = (x,y)x (2,1) = 2 No capítulo a seguir, empregaremos R para definir as operações de soma e multiplicação. Capítulo 3 A Teoria Intuicionista de Tipos A gente nunca aceita o fato quando ele sucede e como sucede; não sei se alguém já pensou nisso antes, mas sempre me pareceu que um fato, para ter verdadeiramente realidade, precisa acontecer subjetivamente dentro de nós, depois de ter acontecido objetivamente, no mundo real. Rachel de Queiroz A esta altura, já temos os ingredientes básicos para adentrarmos no sistema de MartinLöf. As noções de função e tipo que procuramos elucidar acima compõem os elementos que constituem as formas básicas de juízo da teoria intuicionista de tipos, a partir das quais suas regras inferenciais são consideradas. Os juízos são as unidades expressivas básicas do sistema, é por meio deles que se viabiliza a formação de proposições. E como se tornará claro aqui, a força assertiva de uma proposição depende de sua ocorrência no interior de uma determinada forma de juízo, que pode ocorrer como premissa ou conclusão de uma demonstração. Antes de prosseguirmos, convém mencionar que uma das dificuldades de se apresentar a teoria intuicionista de tipos reside em darmos conta da correspondência isomórfica que ela propõe entre diferentes áreas do conhecimento, a saber: (a) teoria dos conjuntos; (b) lógica de predicados; (c) teoria da computação. Por esse motivo, as formas básicas de juízo da teoria intuicionista de tipos podem ser lidas de diferentes maneiras, dependendo da área de conhecimento que se tem em vista. De certo modo, essa abrangência de disciplinas irá se refletir no percurso deste texto, que, num mesmo lugar, poderá transitar repentinamente de uma teoria dos conjuntos a uma teoria proposicional, por exemplo. 39 CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 40 3.1 As quatro formas de juízo Na apresentação das formas de juízo, que se segue nesta seção, decidimos por seguir a apresentação dada por Martin-Löf no seu livro Intuitionistic Type Theory. Como já mencionamos, a teoria intuicionista de tipos abrange diferentes disciplinas, de modo que, naquele livro, o ponto de vista assumido para a elucidação das formas de juízo foi o de uma teoria (construtiva) dos conjuntos. Optamos aqui por seguir o mesmo viés expositivo basicamente por dois motivos, o primeiro é poder dialogar diretamente com esse livro, o qual, dos escritos de Martin-Löf que tivemos acesso, apresenta a teoria intuicionista de tipos de maneira mais acabada; a segunda motivação é a de já abrirmos espaço para tratarmos de uma distinção conceitual proposta por Martin-Löf (1984, p. 21 (11)), que é a distinção entre conjuntos e categorias, com a qual oportunamente lidaremos mais adiante. As regras de inferência se justificam pelo que elas permitem concluir a partir das premissas que assumem, mas para essa justificação ser possível, devemos primeiramente conhecer o que nos dá o direito de efetuarmos qualquer uma das formas de juízo que as premissas e conclusão possam eventualmente assumir numa regra inferencial. Martin-Löf (1984, p. 5 (3)) considera no seu sistema quatro formas de juízo. A elucidação do que essas formas significam se situa num nível pré-teórico, no sentido em que essa tarefa exige o emprego de conceitos primitivos, i.e., conceitos não definíveis por outros conceitos já presentes na teoria. As formas de juízo são as seguintes: (1) A con j. A é um conjunto; (2) A = B A e B são conjuntos iguais; (3) a ∈ A a é um elemento do conjunto A; (4) a = b ∈ A a e b são elementos iguais do conjunto A. Os juízos são as unidades expressivas básicas da teoria intuicionista de tipos (RANTA, 1995, p. 56), sem os quais nada poderia ser dito no interior do sistema. Eles são mais básicos até do que os próprios conjuntos, porque é por meio de um juízo que se constrói um conjunto. A lista acima, das formas de juízo, não foi ordenada de maneira arbitrária, pois há uma relação de prioridade conceitual entre elas (MARTIN-LÖF, 1984, p. 5 (3)). O juízo A = B não pode ser compreendido sem que antes possamos demonstrar que tanto A como B são conjuntos; semelhantemente, a compreensão de a = b ∈ A pressupõe que tenhamos condições de demonstrar o juízo que diz a e b serem elementos do conjunto A. Comecemos então pela elucidação do primeiro juízo. Um conjunto é definido como sendo uma prescrição que, se levada a cabo, constrói um CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 41 elemento do qual podemos afirmar ser do conjunto de onde se originou a prescrição que o produziu. Ou seja, um conjunto A nos diz como construir os elementos dos quais poderíamos legitimamente dizer ser do conjunto A. Sendo assim, a condição para que o juízo A con j. nos seja evidente é a de que saibamos como construir os elementos de A. A definição dada por Martin-Löf (1984, p. 8 (5)) é a seguinte: (1) Um conjunto A é definido prescrevendo-se como um elemento canônico de A é formado e como dois elementos canônicos iguais de A são formados. Como o próprio Martin-Löf (1998a, p. 128) afirma, sua definição corresponde à definição de conjunto dada por Bishop (1967, p. 13), a qual apresentamos abaixo: Um con junto é definido descrevendo-se o que deve ser feito para se construir um elemento do con junto, e o que deve ser feito para demonstrar que dois elementos do conjunto são iguais (grifos do autor). 1 Tratando-se de um conjunto finito, poderíamos defini-lo pela enumeração de todos os seus elementos (RANTA, 1995, p. 19). Para definirmos o conjunto Continente, por exemplo, poderíamos simplesmente apresentar a seguinte lista : África ∈ Continente África = África ∈ Continente América ∈ Continente América = América ∈ Continente Ásia ∈ Continente Ásia = Ásia ∈ Continente Austrália ∈ Continente Austrália = Austrália ∈ Continente Europa ∈ Continente Europa = Europa ∈ Continente Todavia, se a definição for de um conjunto infinito, a inviabilidade de uma enumeração completa de seus elementos deve ser suprida pela apresentação de um método que poderia, em princípio, gerar qualquer um deles. Um exemplo modelar é o do conjunto dos números naturais, representado por N. A seguinte regra recursiva, a partir de um elemento base, o 0, gera sucessivamente os números naturais: 0 ∈ N a ∈ N a′ ∈ N A formação dos elementos iguais é dada pela regra: 0 = 0 ∈ N a = b ∈ N a′ = b′ ∈ N 1"[A] set is defined by describing what must be done to construct an element of the set, and what must be done to show that two elements of the set are equal". CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 42 Uma vez que, por meio dessas regras, prescrevemos como um elemento de N e dois elementos iguais de N podem ser formados, estamos em condições, de acordo com a definição (1), de fazer o juízo N con j. Como observa Martin-Löf (1984, p. 8 (5)), desde que a igualdade entre os elementos seja uma relação de equivalência (i.e., reflexiva, simétrica e transitiva), não há limites para se conceber uma prescrição definindo um conjunto. Para dar mais um exemplo (BISHOP, 1967, p. 13), apresentamos abaixo as regras que prescrevem a construção dos elementos do conjunto dos números racionais, com uma relação de equivalência entre os elementos iguais, justificando assim o juízo Q con j.: a ∈ Z b ∈ Z∗ a/b ∈Q a/b = c/d ∈Q ad = bc ∈Q Deve-se notar que as regras de introdução formam apenas os elementos canônicos de um conjunto. É preciso fazer essa distinção porque um elemento de um conjunto A pode não estar na forma em que os elementos desse conjunto têm quando construídos diretamente a partir da prescrição fornecida por A, mas ainda assim serem elementos de A. Por exemplo, o elemento 2+2 é um elemento de N, todavia, por ele não estar na forma a′, diz-se ele não ser um elemento canônico do conjunto dos números naturais. A prescrição que esse conjunto oferece é insuficiente para construir um elemento da forma a+ b. Como veremos, compete à terceira e quarta formas de juízo transformar elementos não canônicos em elementos canônicos. A segunda forma de juízo diz respeito à igualdade entre conjuntos. Sabendo construir os elementos canônicos (e os elementos canônicos iguais) de um conjunto, definimos que dois conjuntos são iguais quando eles possuem os mesmos elementos canônicos. Logo, a definição (MARTIN-LÖF, 1984, p. 9 (5)): (2) Dois conjuntos A e B são iguais se a ∈ A a ∈ B e a = b ∈ A a = b ∈ B para elementos canônicos arbitrários a,b. O traço inferencial duplo indica que a regra é valida nas duas direções. CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 43 A terceira forma de juízo entra em cena na medida em que precisamos reduzir um elemento à sua forma canônica, para que assim reconheçamos a prescrição originária do conjunto do qual ele é proveniente. Para tanto é preciso, também, remontar à primeira forma de juízo, que nos diz como são os elementos canônicos de um determinado conjunto. Martin-Löf (1984, p. 9 (6)) assim define essa forma de juízo: (3) Um elemento de um conjunto A é um método (ou programa) que, quando executado, produz um elemento canônico de A como resultado. Desse modo, ao se fazer o juízo a ∈ A, ou a já é um elemento canônico de A, ou ele é um método que, quando executado por um certo procedimento computacional, reduz-se a um elemento canônico de A. Usando as definições recursivas de soma e multiplicação (fazendo aqui o papel de um procedimento computacional) podemos elucidar esse ponto com o seguinte exemplo: o juízo (0′′+0′′) ∈ N é demonstrável, pois (0′′+0′′) é um método que, se executado pela definição indutiva de soma 2, reduz-se ao elemento canônico 0′′′′ de N: (0′′+0′′) = (0′′+0′)′ = (0′′+0)′′ = 0′′′′ Sabemos que 0′′′′ é um elemento canônico de N porque ele pode ser obtido diretamente seguindo os critérios de construção prescritos pelo conjunto N, i.e.: 0 ∈ N 0′ ∈ N 0′′ ∈ N 0′′′ ∈ N 0′′′′ ∈ N Chegamos, por fim, à quarta forma de juízo, a qual diz dois elementos de um conjunto serem iguais se eles puderem se reduzir a elementos canônicos iguais do conjunto em questão. A definição precisa é esta (MARTIN-LÖF, 1984, p. 9 (6)): 2A soma e a multiplicação serão apresentadas formalmente em 3.4.3. CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 44 (4) Dois elementos arbitrários a,b de um conjunto A são iguais se, quando executados, produzem elementos canônicos iguais de A como resultado. Damos como exemplo o juízo (0′′+0′′) = (0′′ *0′′) ∈ N. Já sabemos que (0′′+0′′) se reduz ao elemento canônico 0′′′′, resta então computar (0′′ *0′′), por meio das regras recursivas de multiplicação, para verificarmos se ele também se reduz a 0′′′′, o que é efetuado da seguinte maneira: (0′′ *0′′) = 0′′+(0′′ *0′) = 0′′+(0′′+(0′′ *0)) = 0′′+(0′′+0) = 0′′+0′′ = 0′′′′ Com esse resultado, demonstramos o juízo anterior, pois pela transitividade da igualdade podemos chegar ao juízo 0′′′′ = 0′′′′ ∈ N, em que 0′′′′ = 0′′′′ é um elemento canônico de N, uma vez que ele pode ser obtido diretamente, no que diz respeito à construção de elementos iguais, pela prescrição fornecida por esse conjunto. 3.2 Proposições De acordo com Martin-Löf (1996, p. 14), uma transição fundamental na lógica se deu quando a noção de proposição foi desvinculada das noções de afirmação e negação. Na lógica aristotélica, por exemplo, uma afirmação era concebida como uma proposição dividida entre sujeito e predicado, em que este afirma algo sobre aquele; e de maneira simétrica, a negação se dava quando o predicado negava algo sobre o sujeito. Martin-Löf nos diz que isso foi abandonado na lógica moderna, fazendo com que os juízos categóricos deixassem de ser expressos na CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 45 forma S é P. Ele procura atribuir a Bolzano, seguido por Brentano e Frege, a substituição dessa forma de juízo pela forma A é, A é verdadeira, ou A é válida. Bretano introduziu a forma oposta A não é, ou A é falsa. Passando a lógica a se basear nesta nova forma de juízo, devido, em grande parte, à influência da lógica fregiana, possibilitou-se isolar A e perguntar sobre isso que se diz ser verdadeiro. Martin-Löf (1996, p. 14) afirma: A isolação desse conceito foi um passo inteiramente necessário para o desenvolvimento da lógica moderna. A lógica moderna simplesmente não funcionaria se não tivéssemos esse conceito, porque é sobre as coisas que caem sob ele que as operações lógicas operam 3. Essa forma de juízo que Martin-Löf atribui à lógica moderna é incorporada ao seu sistema por meio da noção de proposições como conjuntos (ou proposições como tipos), trazida à tona pelos lógicos Curry, Feys e Howard – por isso tal noção é também conhecida por correspondência Curry-Howard. Curry e Feys (CURRY; FEYS, 1958, p. 312) observaram que os tipos de certas funções correspondiam a alguns axiomas – aqueles que envolviam apenas implicação – do cálculo proposicional. Retomando o que vimos na seção 2.2, podemos ver como o tipo do combinador K (representado em cálculo lambda), da lógica combinatória de Curry e Feys, corresponde a um dos axiomas da lógica proposicional de Hilbert. Supondo que x : A e y : B, i.e., os elementos x e y pertencem, respectivamente, aos tipos A e B, podemos efetuar uma abstração lambda sobre y e obter a função λy.x : B→ A. Efetuando uma nova abstração, agora sobre x, obtemos, por fim λx.λy.x : A→ (B→ A). 3"The isolation of this concept was a step which was entirely necessary for the development of modern logic. Modern logic simply would not work unless we had this concept, because it is on the things that fall under it that the logical operations operate". CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 46 Como podemos notar, o tipo da função λx.λy.x pode ser interpretado como sendo uma implicação, correspondendo assim à proposição A ⊃ (B ⊃ A). A observação por Curry e Feys dessa correspondência se limitava à parte implicativa do cálculo proposicional, mais tarde ela foi ampliada, por Howard (1980), à aritmética de primeira ordem intuicionista. A partir da forma de juízo A é verdadeira e da correspondência Curry-Howard, compreendese então a noção de proposições como conjuntos, que fundamenta a teoria proposicional de Martin-Löf. Uma vez que, do ponto de vista intuicionista, uma proposição é verdadeira desde que ela possa ser provada 4 , Martin-Löf considera a forma de juízo acima como sendo uma abreviação da forma de juízo a ∈ A, interpretando-a como nos dizendo que o elemento a é uma prova da proposição A. Assim, uma proposição é tida como o conjunto de suas provas (MARTIN-LÖF, 1984, p. 13 (7)), que nesse caso são objetos funcionais. Vale notar que, por meio desa forma de juízo, as proposições asseridas no sistema de Martin-Löf são explicitamente acompanhadas pelos objetos que as verificam, o que nos permite fazer a seguinte inferência: a ∈ A A é verdadeira Reexaminado o exemplo dado logo acima, diríamos que se pode fazer o juízo de que a proposição A⊃ (B⊃ A) é verdadeira porque podemos construir a sua prova, i.e., a função λx.λy.x. Nesse sentido, com a analogia entre conjuntos e proposições a teoria intuicionista de tipos consegue aliar a interpretação informal do significado das constantes lógicas dada pelos construtivistas, à interpretação formal possibilitada pela correspondência Curry-Howard (RANTA, 1995, 41). Considere-se, por exemplo, a maneira como Heyting (1971, p. 102) interpreta a implicação: A implicação p→ q pode ser asserida, se, e somente se, possuirmos uma construção r que, agregada a uma construção provando p (supondo que a última seja efetuada), efetuaria automaticamente uma construção provando q. Em outras palavras, uma prova de p unida a r formaria uma prova de q (grifo do autor) 6 . A construção r que Heyting diz formar uma prova de q, dada uma prova de p, poderia ser 4"[U]ma proposição é verdadeira se ela tiver uma prova, isto é, se uma prova dela puder ser dada" (MARTINLÖF, 1984, p. 11 (6)). 5 5"[A] a proposition is true if it has a proof, that is, if a proof of it can be given". 6"The implication p → q can be asserted, if and only if we possess a construction r, which, joined to any construction proving p (supposing that the latter be effected), would automatically effect a construction proving q. In other words, a proof of p, together with r, would form a proof of q". CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 47 considerada uma função de tipo p→ q, tal como vimos acima. Hodiernamente, costuma-se agrupar a compreensão construtivista do significado das constantes lógicas sob o que se convencionou chamar de interpretação BHK, estando essa sigla para as iniciais de Brouwer, Heyting e Kolmogorov. Tal interpretação é assim apresentada em (TROELSTRA; DALEN, 1988, p. 9): 1. Absurdo⊥ (contradição) não tem prova; a prova de∼ A é uma construção que transforma qualquer prova hipotética de A numa prova de uma contradição. 2. Uma prova de A∧B é dada apresentando-se uma prova de A e uma prova de B. 3. Uma prova de A∨B é dada apresentando-se ou uma prova de A ou uma prova de B (mais a estipulação de que queremos considerar a prova apresentada como uma evidência para A∨B). 4. Uma prova de A⊃ B é uma construção que nos permite transformar qualquer prova de A numa prova de B. 5. Uma prova de ∀xA(x) é uma construção que transforma uma prova de d ∈ D (sendo D o domínio pretendido para a variável x) numa prova de A(d). 6. Uma prova de ∃xA(x) é dada provendo d ∈ D e uma prova de A(d). Na teoria intuicionista de tipos, a interpretação dessas constantes lógicas é formalmente definida de acordo com a noção de proposições como conjuntos, possibilitada pela correspondência Curry-Howard. Desse modo, as provas de proposições são explicitamente declaradas como objetos matemáticos – denominados de objetos de prova –, como temos a seguir (MARTINLÖF, 1984, p. 13 (7)): A prova da proposição tem a forma ⊥ A∧B (a,b), em que a é uma prova de A e b é uma prova de B A∨B i(a), em que a é uma prova de A, ou j(b), em que b é uma prova de B A⊃ B λx.b(x), em que b(a) é uma prova de B desde que a seja uma prova de A (∀x ∈ A)B(x) λx.b(x), em que b(a) é uma prova de B(a) desde que a seja um elemento de A (∃x ∈ A)B(x) (a,b), em que a é um elemento de A e b é uma prova de B(a) CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 48 Na seção 4.5, veremos precisamente o que significa ser "um elemento de A" no contexto de uma proposição quantificada. Temos assim uma das principais peculiaridades da teoria intuicionista de tipos: a asserção de uma proposição ocorre com a apresentação explícita do objeto de prova por meio do qual podemos verificar a sua verdade. Uma outra característica digna de nota consiste nas regras de formação de proposição, as quais pertencem ao próprio aparato dedutivo do sistema. Para tratar deste último ponto, abrimos a próxima seção. 3.3 A formação de proposições Em uma formalização usual de uma teoria matemática, emprega-se a noção de fórmula, a qual é definida indutivamente por regras de formação que regem o conjunto de símbolos de uma linguagem formal. Por meio das fórmulas se definem os axiomas, e aplicando a eles passos inferenciais permitidos pelas regras de inferência, os teoremas da teoria em questão são derivados dentro do sistema formal. Nessa concepção, considera-se a linguagem formal como sendo passível a diversas interpretações, já que ela, por si mesma, é destituída de qualquer significado – um mero agregado de expressões organizado por critérios puramente sintáticos. Somente por meio de um modelo, com um domínio e uma interpretação, as fórmulas adquiririam, por assim dizer, conteúdo. Por outro lado, na teoria de tipos de Martin-Löf, as regras de formação são incorporadas às próprias regras de inferência. Para tanto, ao invés das noções de fórmula e teorema, são consideradas as noções de proposição e juízo. As proposições consistem naquilo sobre o qual incidem as constantes lógicas e pelo qual inquirimos sobre o seu valor de verdade. Diferentemente de um fórmula, uma proposição não é definida à parte por critérios sintáticos, adquirindo significado apenas posteriormente por uma interpretação semântica. Como Martin-Löf subscreve à posição intuicionista de que verdadeiro é aquilo que se pode provar, a proposição se torna o seio onde a noção sintática de prova e a noção semântica de verdade se imbricam mutuamente, de tal modo que o significado de uma proposição se constitui à medida em que ela desempenha um papel numa certa derivação. A própria maneira de se utilizar a linguagem já a imbui de significado, de tal modo que essa tarefa não é postergada a uma interpretação semântica, que precisaria associar à linguagem, até então vazia de conteúdo, um domínio de objetos. Voltemos nossa atenção às formas de juízo da teoria intuicionista de tipos. Uma vez que uma proposição se restringe a colocar algo em consideração, sem se posicionar a respeito da verdade do que está sendo considerado, o que ela tem a dizer não está intrinsecamente comCAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 49 prometido com o seu valor de verdade. Assim, um dos papéis desempenhados por um juízo consiste em asserir uma proposição, i.e., firmar um compromisso com um dos valores de verdade que ela possa assumir, à semelhança do que Frege propunha com a sua barra assertiva "`" (FREGE, 1967, §2). Para tanto, temos a terceira forma de juízo, a ∈ A, compreendida da seguinte maneira no contexto proposicional (MARTIN-LÖF, 1984, p. 3 (2)): A}{{} proposição é verdadeira } {{ } juízo Não obstante, o juízo acima não seria compreensível se não fosse antes derivável o juízo da forma A é uma proposição, o correlato proposicional da primeira forma de juízo da seção 3.1, dado que para se poder afirmar que A é verdadeira, precisamos antes saber que A se trata de uma proposição, porque é a uma proposição que se atribui um valor de verdade. Num sistema de Dedução Natural, essas duas formas de juízo são tidas como pressupostas, pois se assume implicitamente que, numa regra inferencial, a premissa e a conclusão são asserções de proposições. Com base nisso, Martin-Löf (1996, p. 17) acusa que tais pressuposições impedem que essas regras sejam completamente formais. Ele argumenta da seguinte maneira: seja considerada, num sistema de Dedução Natural, a regra de introdução da disjunção, em que da asserção de A segue-se a asserção de A∨B: A A∨B As variáveis A e B estão para o quê? Ou melhor, o que pode ser inserido no lugar delas? Uma resposta possível diria que elas podem ser substituídas por fórmulas da linguagem em que a teoria em questão foi formalizada. Entretanto, essa resposta não seria satisfatória, pois inserese aqui uma dependência à linguagem, como se a regra de introdução da disjunção fosse válida apenas para as fórmulas definidas na linguagem considerada na formalização. Considerando então que a validade da regra é indiferente a qualquer linguagem, uma resposta mais condicente seria dizer que A e B são substituíveis por quaisquer fórmulas – proveniente de qualquer linguagem –, desde que expressem claramente o seu significado, o que, em outras palavras, quer dizer que o aspecto fundamental concernente à validade da regra seria de CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 50 que essas variáveis se referissem a proposições arbitrárias. Não obstante, há também um problema com essa resposta, pois assumindo essa posição, a regra de inferência acaba perdendo o seu aspecto puramente formal, dado que se substitui uma noção sintática, a de fórmulas definidas em uma linguagem, por uma noção semântica, tal como é a de proposição. Para uma regra ser formal, ela não deve estabelecer condições sobre o conteúdo das premissas e conclusão. A saída que Martin-Löf (1996, p. 18) encontra é trazer para o aparato dedutivo do sistema as regras de formação, tal que a derivação de que A é uma proposição fique a par da derivação de que A é verdadeira. Voltando ao nosso exemplo, temos assim uma regra de formação da proposição A∨B: A prop. B prop. A∨B prop. Tendo derivado que A∨B é uma proposição, podemos então derivar, agora pela regra de introdução da disjunção, que da asserção da proposição A se segue a asserção da proposição A∨B: ` A ` A∨B A barra assertiva foi empregada a fim de se abreviar a forma de juízo a ∈ A, o qual deixaria explícito qual a prova da proposição A. De modo geral, essas duas regras se fundem num único passo inferencial: A prop. B prop. ` A ` A∨B Incorporando na própria regra de inferência as condições que dizem respeito à forma das premissas e conclusão, as regras inferenciais não se encontram mais submetidas a condições semânticas. As variáveis A e B podem ser substituídas por qualquer expressão, independentemente da linguagem ou do sentido que expressem, restaurando desse modo o aspecto formal que uma regra de inferência deve ter. Por essa razão, no sistema de Martin-Löf, além das usuais regras de introdução e eliminação das constantes lógicas, especificam-se também regras de formação, as quais se envolvem numa derivação tal qual as outras regras. Assim, a questão da forma de uma expressão deixa de ser uma simples definição sintática, passando a ser um juízo demonstrável no interior da teoria. Uma outra característica importante das regras de formação, afora a atribuição do aspecto completamente formal do sistema, é que a legitimidade das demonstrações não dependem de CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 51 critérios estabelecidos metalinguisticamente. Nas construções usuais de sistemas formais, as definições sintáticas são uma descrição da linguagem objeto, por esse motivo elas se situam num meta nível. Para se construir, por exemplo, uma linguagem L do cálculo proposicional, primeiramente se elege um alfabeto – um conjunto de símbolos – e, a partir dele, define-se indutivamente: (1) A é um fórmula atômica se, e somente se, consistir em um dos símbolos P1,P2,P3, ...; (2) Uma fórmula atômica em L é uma fórmula bem formada em L ; (3) Se A e B são fórmulas bem formadas em L , então A∧B, A⊃ B e A∨B são fórmulas bem formadas em L . Por meio desse exemplo elementar, chamamos a atenção para o fato de que o juízo de que uma certa configuração de símbolos é uma fórmula bem formada da linguagem não foi obtido por uma derivação efetuada pelo aparato dedutivo do sistema formal em consideração. O juízo (2), por exemplo, envolve elementos que não podem ser expressos, e tampouco deriváveis, em L , por essa razão ele consiste num juízo metalinguístico. Num contexto matemático, a noção de boa formação das sentenças da teoria é assumida informalmente, não há regras explícitas para dizer que, por exemplo "a > b" é bem formada ao passo que "> b* = c+" não é uma sentença da teoria. Nos sistemas formais, as regras de formação são completamente explícitas, mas como vimos acima, essa explicitação se dá num meta nível. A grande diferença da teoria intuicionista de tipos, portanto, consiste em não relegar à metalinguagem o papel de definir as fórmulas do sistema formal; elas são estabelecidas por regras de inferência do próprio sistema. Caso demonstrássemos o juízo ` A∨B, ele não seria dependente de uma definição metalinguística de que A e B são proposições, pois essa definição se torna uma asserção – com uma forma específica de juízo destinada a essa tarefa – incorporada à própria derivação. Por esse motivo, não veremos um capítulo à parte apresentando a linguagem formal em que o sistema será desenvolvido. 3.4 As regras de inferência Para concluir este capítulo, onde se expõe o sistema formal da teoria intuicionista de tipos, apresentamos a seguir suas regras de inferência 7. A respeito disso, é apropriada esta citação de Martin-Löf (1984b, p. 510): 7Os lugares de consulta privilegiados para a feitura desta seção foram: (MARTIN-LÖF, 1984), (CROSILLA, 2003), (NORDSTRÖM; PETERSSON; SMITH, 1990), (RANTA, 1995). CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 52 Para cada uma das regras de inferência, o leitor, sob a pressuposição de conhecer as premissas, é chamado a tentar tornar a conclusão evidente para si mesmo. Isso não significa que explicações verbais posteriores não ajudem a trazer um entendimento sobre as regras, apenas que isso não serve de lugar para tais explicações detalhadas. Mas há também certos limites para o que explicações verbais podem fazer quando se trata de justificar axiomas e regras de inferência. No final, cada um deve entender por si mesmo 8. No que se segue, elucidamos essas regras com o intuito de justificar o significado dos juízos que podemos obter por meio delas. Ao lado de vários exemplos de derivações, procuramos conciliar algumas explicações informais, tentando assim tornar mais fácil o vislumbre da evidência contida numa inferência lógica. 3.4.1 Regras de igualdade Dado que para se formar um conjunto há a exigência de que a igualdade entre os seus elementos canônicos seja reflexiva, simétrica e transitiva, as seguintes regras de inferência são válidas: Reflexividade a ∈ A a = a ∈ A re f l A con j. A = A REFL Simetria a = b ∈ A b = a ∈ A sim A = B B = A SIM Transitividade a = b ∈ A b = c ∈ A a = c ∈ A tran A = B B =C A =C T RAN Como a exigência de que a igualdade firmada entre os elementos canônicos de um conjunto seja uma relação de equivalência nos esclarece a validade dessas regras? Tomando de exemplo a regra de transitividade, podemos esclarecê-la da seguinte maneira: os objetos a e b em a = b ∈ A se reduzem para os elementos canônicos d e e, o que nos dá d = e ∈ A. Desse modo, 8"For each of the rules of inference, the reader is asked to try to make the conclusion evident to himself on the presupposition that he knows the premises. This does not mean that further verbal explanations are of no help in bringing about an understanding of the rules, only that this is not the place for such detailed explanations. But there are also certain limits to what verbal explanations can do when it comes to justifying axioms and rules of inference. In the end, everybody must understand for himself". CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 53 se c em b = c ∈ A se reduz ao elemento canônico f , temos, por causa da redução de b a e, e = f ∈ A. Uma vez que a transitividade vale, por definição, para qualquer elemento canônico de um conjunto, podemos concluir d = f ∈ A, que nada mais é do que a forma canônica de a = c ∈ A, justificando assim a regra tran, acima (MARTIN-LÖF, 1984, p. 14 (8)). Esse pequeno esclarecimento constitui um exemplo típico do que Martin-Löf considera, como vimos na citação no início desta seção, uma explicação verbal que auxilia no entendimento de axiomas e regras de inferência. Pelo esclarecimento do significado de um juízo da forma A = B con j., evidencia-se a Igualdade de conjuntos a ∈ A A = B a ∈ B ic a = b ∈ A A = B a = b ∈ B ic′ 3.4.2 Regras de substituição As quatro formas de juízo apresentadas na seção 3.1 assumem formas hipotéticas, o que possibilita conceber juízos sob a dependência de uma ou mais assunções. A formalização dos juízos hipotéticos na teoria intuicionista de tipos se dá por meio da apropriação da noção de família indexada de conjuntos. Para termos um ideia intuitiva de como isso funciona (cf. RANTA, 1995, p. 36), consideremos o calendário gregoriano, composto por doze meses, cada um com um certo número de dias, variando de 28 a 31. Para formarmos o conjunto dos dias de um mês, devemos primeiramente saber de qual mês se trata e qual o ano em questão (já que o número de dias do mês de fevereiro pode variar se o ano for bissexto), ou seja, a formação do conjunto dia(x,y) dos dias de um mês depende de outros dois conjuntos, o conjunto mês dos doze meses de um ano, e o conjunto ano dos anos. Temos assim, de acordo com esse exemplo, os seguintes juízos: ano con j. mês con j. dia(x,y) con j. [x ∈ ano,y ∈ mês] No último caso dizemos que dia(x,y) é uma família de conjuntos dependentes dos conjuntos ano e mês (ou que dia(x,y) é uma família de conjuntos indexada por esses dois conjuntos). Os colchetes indicam os juízos dos quais o conjunto dia(x,y) depende (i.e., as assunções estabelecidas), sendo este diferente de acordo com os elementos que substituírem as variáveis x e y. Se, CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 54 por exemplo, ocorrer a substituição dia( f ev,2016), obtém-se um conjunto de 29 dias, por outro lado, na substituição dia(dez,2013) se obtém um conjunto de 31 dias. Dito isso, a primeira forma de juízo da teoria intuicionista de tipos assume a seguinte forma hipotética: (1) B(x) con j. [x ∈ A]. Por vezes, também optaremos pela notação não linear de um juízo hipotético: [x ∈ A] B(x) con j. Essa forma de juízo significa que B(a) é um conjunto sempre que a for um elemento de A, e que B(a) e B(c) são conjuntos iguais sempre que a e c forem elementos iguais de A, expressando assim a dependência de um conjunto B(x) aos elementos do conjunto A. Por meio dessa elucidação justificamos a validade das duas seguintes regras inferenciais, concernentes à substituição de variáveis de conjuntos: a ∈ A [x ∈ A]1 B(x) con j. B(a) con j. 1, subst a = c ∈ A [x ∈ A]1 B(x) con j. B(a) = B(c) 1, subst Os juízos que ocorrem entre colchetes podem ser, de acordo com uma regra de inferência pertinente, apropriadamente descartados, eliminando-se assim a dependência do juízo que ocorria sob sua alçada. Acima, os conjuntos B(a) e B(c) não dependem mais da assunção x ∈ A, por isso a descartamos. Para nos orientarmos nesses descartes, faremos uso de índices numéricos, que demarcarão as assunções e os respectivos passos inferenciais que possibilitam os descartes. A segunda forma de juízo assume a forma hipotética (2) B(x) = D(x) [x ∈ A], significando que B(x) e D(x) são famílias de conjuntos dependentes do conjunto A, o que nos permite dizer que B(a) e D(a) são conjuntos iguais para qualquer elemento a de A. Isso justifica a validade da regra de substituição de variáveis de conjuntos iguais: a ∈ A [x ∈ A]1 B(x) = D(x) B(a) = D(a) 1, subst CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 55 Ainda no que diz respeito a essa forma de juízo, podemos obter, por meio das regras que já possuímos, a regra: a = c ∈ A [x ∈ A]1 B(x) = D(x) B(a) = D(c) 1, subst Considerando que c ∈ A está implícito no juízo a = c ∈ A, construímos a seguinte derivação, justificando assim a validade da regra acima: a = c ∈ A [x ∈ A]1 B(x) con j. B(a) = B(c) 1, subst c ∈ A [x ∈ A]1 B(x) = D(x) B(c) = D(c) 1, subst B(a) = D(c) T RAN A seguir introduzimos a forma hipotética da terceira forma de juízo: (3) b(x) ∈ B(x) [x ∈ A]. A forma de juízo a ∈ A introduz elementos do conjunto A, já um juízo da forma b(x) ∈ B [x ∈ A] introduz funções que têm A e B como domínio e contradomínio, respectivamente, i.e., b(x) é o valor, contido em B, de uma função b aplicada a um elemento qualquer de A. Sendo assim, a forma de juízo (3), logo acima, expressa o caso geral em que o contradomínio da função depende dos argumentos tomados por b no domínio A. Nesse caso, pela derivação desse juízo construímos uma função num espaço funcional A→ B(x) [x ∈ A], i.e.: b ∈ A→ B(x) [x ∈ A], em que a função b mapeia os membros de A a algum elemento pertencente a algum dos conjuntos B(x), sob a condição de que o elemento correspondente ao valor da aplicação de b deve pertencer a um conjunto cujo índice seja igual ao argumento tomado por essa mesma função. Em outras palavras, se soubermos que a ∈ A, sabemos que b(a) é um elemento do conjunto B(a); similarmente, sabendo que a e c são elementos iguais do conjunto A, sabemos que b(a) e b(c) são elementos iguais pertencentes ao conjunto B(a). Isso justifica as seguintes inferências: CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 56 a ∈ A [x ∈ A]1 b(x) ∈ B(x) b(a) ∈ B(a) 1, subst a = c ∈ A [x ∈ A]1 b(x) ∈ B(x) b(a) = b(c) ∈ B(a) 1, subst Por fim, temos a expressão hipotética da quarta forma de juízo: (4) b(x) = d(x) ∈ B(x) [x ∈ A]. Ela nos diz que, para qualquer elemento a ∈ A, b(a) e d(a) são elementos iguais do conjunto B(a), quando b(x) = d(x), por isso a ∈ A [x ∈ A]1 b(x) = d(x) ∈ B(x) b(a) = d(a) ∈ B(a) 1, subst Todas essas formas hipotéticas de juízo podem ser formadas não por apenas uma assunção, mas por n assunções, formando assim o que se chama de contexto, algo semelhante ao que em Dedução Natural se costuma representar pelas letras gregas Γ e ∆. A elucidação do significado desses juízos ocorre por indução, i.e., assumindo já se saber o significado de um juízo dependente de n− 1 assunções, sabemos o significado de um juízo de n assunções (MARTIN-LÖF, 1984, p. 19 (10)). Desse modo, seja x1 ∈ A1,x2 ∈ A2(x1), ...,xn ∈ An(x1, ...,xn−1) um contexto de n assunções. Assim sabemos que A1 é um conjunto, A2(x1) é uma família de conjuntos dependente de x1 ∈ A1, A3(x1,x2) é uma família de conjuntos dependente de x1 ∈ A1 e x2 ∈ A2(x1), ... An(x1, ...,xn−1) é uma família de conjuntos dependente de x1 ∈ A1,x2 ∈ A2(x1), ...,xn−1 ∈ An−1(x1, ...,xn−2). Vemos que cada variável recém introduzida depende de uma família de conjuntos indexada por um conjunto introduzido anteriormente, ou seja, cada Ai(x1, ...,xi−1) é um conjunto sob CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 57 as assunções precedentes. Note-se, por exemplo, que x2 depende de um conjunto da família de conjuntos A2(x1), que por sua vez possui conjuntos indexados pelos elementos do conjunto A1. Se retornarmos paulatinamente na ordem das assunções, deparamo-nos com uma variável introduzida por um conjunto não dependente de outro conjunto. Temos assim a forma de juízo (1) Família de conjuntos com n índices (ou como dizíamos, dependente de n assunções): [x1 ∈ A1,x2 ∈ A2(x1), ...,xn ∈ An(x1, ...,xn−1)] A(x1, ...,xn) con j. Ela significa que A(a1, ...,an) é um conjunto sempre que a1 ∈ A1 a2 ∈ A2(a1) ... an ∈ An(a1, ...,an−1), e que A(a1, ...,an) = A(b1, ...,bn) sempre que a1 = b1 ∈ A1 ... an = bn ∈ An(a1, ...,an−1). Observamos que, no interior de um contexto, uma variável xi só pode ocorrer livre em A j se i < j. Além disso, não podemos descartar uma assunção em que uma outra assunção dependa de seus elementos. Por exemplo, no contexto [x1 ∈ A1,x2 ∈ A2(x1)], a despeito de podermos descartar a assunção x2 ∈ A2(x1), não podemos descartar – pelo menos até que esta última seja descartada – a assunção x1 ∈ A1, já que A2(x1) depende do elemento x1 presente em A1 (BEESON, 1985, p. 256). Para finalizar a compreensão da noção de contexto e sua interdependência de variáveis, podemos utilizar como exemplo o calendário islâmico (cf. RANTA, 1995, p. 36). Por nele haver anos de 12 ou 13 meses, o juízo que exprime a formação do conjunto dos meses depende da formação do conjunto dos anos. Por sua vez, a formação do conjunto dos dias depende da formação prévia do conjunto dos meses e dos anos: CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 58 ano con j. mês(x) con j. [x ∈ ano] dia(x,y) con j. [x ∈ ano,y ∈ mês(x)] Como se vê, a ocorrência da variável livre x em mês(x) con j. e dia(x,y) con j. é legítima, porque são conjuntos formados posteriormente ao conjunto contendo x. Um outro ponto é que devemos efetuar os descartes de baixo para cima, obedecendo assim a dependência entre as variáveis. Há ainda três formas de juízo restantes, que são elucidadas de maneira similar às formas correspondentes envolvendo apenas uma assunção, bastando apenas estender a dependência entre conjuntos a um contexto de n assunções: (2) Famílias de conjuntos iguais com n índices: [x1 ∈ A1, ...,xn ∈ An(x1, ...,xn−1)] A(x1, ...,xn) = B(x1, ...,xn) (3) Função com n argumentos: [x1 ∈ A1, ...,xn ∈ An(x1, ...,xn−1)] a(x1, ...,xn) ∈ A(x1, ...,xn) (4) Funções iguais com n argumentos: [x1 ∈ A1, ...,xn ∈ An(x1, ...,xn−1)] a(x1, ...,xn) = b(x1, ...,xn) ∈ A(x1, ...,xn) As regras de substituição dadas anteriormente igualmente se adaptam a um contexto de extensão n. 3.4.3 O conjunto dos números naturais Expomos, até a seção precedente, as regras de igualdade, as regras de substituição e as formas de juízo hipotético sobre as quais as últimas podem operar. Apresentaremos a seguir regras inferenciais que, entre outras coisas, nos permitem introduzir novos conjuntos ou derivar conjuntos a partir de conjuntos dados. Comecemos pelas regras concernentes ao conjunto dos números naturais, mas antes, um esclarecimento a respeito da estrutura comum em que as regras inferenciais se apresentam na teoria intuicionista de tipos. CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 59 Além da habitual distinção entre regras de introdução e regras de eliminação, como se vê em Dedução Natural, a teoria intuicionista de tipos lida também com regras de formação e regras de igualdade (MARTIN-LÖF, 1984, p. 24 (13)). As regras de formação nos indicam as condições que nos permitem formar um novo conjunto ou formar um conjunto a partir de outros conjuntos (ou famílias de conjuntos). As regras de introdução nos diz como os elementos canônicos e os elementos canônicos iguais de um conjunto são formados, dando assim significado, como diz Martin-Löf (1984, p. 24 (13)), aos conjuntos introduzidos pelas regras de formação. As regras de eliminação definem funções que têm como domínio o conjunto sobre o qual se aplica a regra. Por fim, as regras de igualdade estabelecem como computar as funções definidas pelas regras de eliminação, ou seja, as regras de introdução e eliminação são neste ponto correlacionadas, já que se determina como as funções operam sobre os elementos canônicos formados por uma regra de introdução. As regras do conjunto N: Formação de N N con j. A formação do conjunto dos números naturais se dá de maneira "direta", não precisamos de premissas para estabelecer o juízo acima. Introdução de N 0 ∈ N 0 = 0 ∈ N a ∈ N a′ ∈ N iN a = b ∈ N a′ = b′ ∈ N iN′ Essas regras nos permitem formar os elementos canônicos de N, dizendo-nos que a partir do número zero podemos formar o restante dos números naturais por meio da função sucessão. Eliminação de N c ∈ N d ∈C(0) [x ∈ N,y ∈C(x)]1 e(x,y) ∈C(x′) R(c,d,(x,y)e(x,y)) ∈C(c) 1, eN A regra de eliminação introduz a função R, o seletor explicado na seção 2.3. Por meio dele é que se define as operações sobre os números naturais, como predecessão, soma e multiplicação, por exemplo. CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 60 Igualdade de N d ∈C(0) [x ∈ N,y ∈C(x)]1 e(x,y) ∈C(x′) R(0,d,(x,y)e(x,y)) = d ∈C(0) 1, N a ∈ N d ∈C(0) [x ∈ N,y ∈C(x)]1 e(x,y) ∈C(x′) R(a′,d,(x,y)e(x,y)) = e(a,R(a,d,(x,y)e(x,y))) ∈C(a′) 1, N′ As regras de igualdade acima nos esclarecem como operar a função R. Primeiramente se executa o elemento c (caso ele não esteja na forma canônica), o primeiro argumento de R, presente na inferência de eliminação de N. Após essa execução, obteremos 0 ou um elemento canônico a′, para algum a ∈ N. O restante do procedimento ocorre como vimos na seção 2.3. Exemplo 3.4.1. Soma. Podemos definir c+d ≡ R(c,d,(x,y)y′), obtendo a função R em c ∈ N d ∈ N [y ∈ N]1 y′ ∈ N iN R(c,d,(x,y)y′) ∈ N 1, eN Assim, para calcularmos 1+ 2 (para maior legibilidade, consideraremos os numerais arábicos como elementos canônicos), por exemplo, faríamos 0 ∈ N 1 ∈ N iN 0 ∈ N 1 ∈ N iN 2 ∈ N iN [y ∈ N]1 y′ ∈ N iN R(1,2,(x,y)y′) ∈ N 1, eN que com as regras de igualdade  R(0,d,(x,y)y ′) = d R(a′,d,(x,y)y′) = (x,y)y′ (a,R(a,d,(x,y)y′)) CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 61 computaríamos R(1,2,(x,y)y′) = (x,y)y′ (0,R(0,2,(x,y)y′)) = (x,y)y′ (0,2) = 3 Exemplo 3.4.2. Multiplicação. A partir da soma, definimos a multiplicação, i.e.: c *d ≡ R(c,0,(x,y)(d + y)) ≡ R(c,0,(x,y)R(d,y,(x,y)y′), formada por meio da regra de eliminação c ∈ N 0 ∈ N d ∈ N [y ∈ N]2 [y ∈ N]1 y′ ∈ N iN R(d,y,(x,y)y′) ∈ N 1, eN R(c,0,(x,y)R(d,y,(x,y)y′) ∈ N 2, eN Para multiplicarmos 2 *3, por exemplo, derivaríamos: 0 ∈ N 1 ∈ N iN 2 ∈ N iN 0 ∈ N 0 ∈ N 1 ∈ N iN 2 ∈ N iN 3 ∈ N iN [y ∈ N]2 [y ∈ N]1 y′ ∈ N iN R(3,y,(x,y)y′) ∈ N 1, eN R(2,0,(x,y)R(3,y,(x,y)y′) ∈ N 2, eN Nesse caso, a computação do seletor R se daria em dois momentos. Começaríamos por computar R(3,y,(x,y)y′), que resultaria em y′′′ Com esse valor constituiríamos o terceiro argumento do seletor R externo, i.e., CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 62 R(2,0,(x,y)y′′′), obtendo como resultado 0′′′′′′ Nesse exemplo, temos uma ilustração da noção de currying, em que o valor de uma função entra como argumento de outra função. 3.4.4 Produto cartesiano de uma família de conjuntos Por meio de um conjunto A e uma família de conjuntos B(x) [x ∈ A], podemos formar um conjunto (Πx ∈ A)B(x), cujos elementos são funções com argumentos em A e valores num contradomínio que depende do argumento a que foi aplicada a função. Trata-se aqui de uma noção mais geral de função. Normalmente, definem-se funções como mapeamentos de elementos num domínio A a um contradomínio B, todavia, com a noção de família de conjuntos, podemos definir uma função b que aplicada a um argumento a ∈ A tem como valor um elemento pertencente ao conjunto B(a) da família de conjuntos B(x) [x ∈ A]. Isso nos permite, por exemplo, conceber uma função que quando aplicada a um argumento a retorna um valor no conjunto dos números naturais, mas se aplicada a um argumento c, também no mesmo domínio de a, retorna um valor no conjunto dos valores de verdade (NORDSTRÖM; PETERSSON; SMITH, 1990, p. 47). Assim, para expressarmos na teoria intuicionista de tipos o produto cartesiano de uma família de conjuntos, temos as seguintes regras de formação: Formação de Π A con j. [x ∈ A]1 B(x) con j. (Πx ∈ A)B(x) con j. 1, f Π A =C [x ∈ A]1 B(x) = D(x) (Πx ∈ A)B(x) = (Πx ∈C)D(x) 1, f Π′ A segunda regra nos diz que para argumentos iguais se têm valores iguais. Isso vale para todos os juízos concernentes à formação de conjuntos, por isso não será repetido nas demais regras de formação a serem apresentadas (MARTIN-LÖF, 1984, p. 26 (14)) Aplicando a operação de abstração sobre os elementos b(x) de B(x)[x ∈ A], formamos as funções pertencentes ao produto cartesiano daquela família de conjuntos, i.e., seus elementos canônicos (e elementos canônicos iguais), como nos diz as regras de introdução abaixo: CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 63 Introdução de Π [x ∈ A]1 b(x) ∈ B(x) λx.b(x) ∈ (Πx ∈ A)B(x) 1, iΠ [x ∈ A]1 b(x) = d(x) ∈ B(x) λx.b(x) = λx.d(x) ∈ (Πx ∈ A)B(x) 1, iΠ′ As regras de eliminação definem a função Ap, cuja operação consiste em aplicar uma função c, elemento de (Πx ∈ A)B(x), a um elemento a ∈ A, obtendo-se assim um elemento canônico de B(a): Eliminação de Π c ∈ (Πx ∈ A)B(x) a ∈ A Ap(c,a) ∈ B(a) eΠ c = d ∈ (Πx ∈ A)B(x) a = b ∈ A Ap(c,a) = Ap(d,b) ∈ B(a) eΠ′ Computa-se Ap da seguinte maneira: 1. Primeiro se computa c, em Ap(c,a), onde c é um função em (Πx ∈ A)B(x), e a ∈ A; 2. Se o valor de c for λx.b(x), então o valor de Ap(c,a) é o valor de b(a). Por isso as regras: Igualdade de Π a ∈ A [x ∈ A]1 b(x) ∈ B(x) Ap(λx.b(x),a) = b(a) ∈ B(a) 1, Π c ∈ (Πx ∈ A)B(x) c = λx.Ap(c,x) ∈ (Πx ∈ A)B(x) Π′ Se considerarmos o conjunto (Πx∈A)B, em que B não depende da assunção x∈A, as regras acima definem o conjunto de funções A→ B, cujo contradomínio é o mesmo para qualquer argumento tomado em A. Com a noção de proposições como conjuntos, vista na seção 3.2, podemos considerar B(x) como sendo uma proposição que depende de uma hipótese [x ∈ A]. Assim, definindo-se (∀x ∈ A)B(x) ≡ (Πx ∈ A)B(x) obtemos regras para a quantificação universal 9. 9A seguir, um juízo da forma A é verdadeira é abreviado por A verd. . CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 64 Formação de ∀ A con j. [x ∈ A]1 B(x) prop. (∀x ∈ A)B(x) prop. 1, f∀ Introdução de ∀ [x ∈ A]1 B(x) verd. (∀x ∈ A)B(x) verd. 1, i∀ Eliminação de ∀ a ∈ A (∀x ∈ A)B(x) verd. B(a) verd. e∀ Note-se que a regra iΠ, vista há pouco, forma o objeto que constitui a evidência do juízo (∀x ∈ A)B(x) verd.. Nesse sentido, a compreensão de uma proposição como o conjunto de suas provas é vista como uma maneira de se fazer uma adequação formal do significado das constantes lógicas, pois de acordo com a interpretação BHK, uma prova de ∀xB(x) é uma construção que toma um elemento a em A (sendo A o domínio pretendido para a variável x) e produz uma prova de B(a). Como A é verdadeira é uma abreviação de a ∈ A, suprimindo-se assim o objeto de prova a, não se têm regras de igualdade – que definem a computação desses objetos – na contraparte proposicional. A partir das mesmas regras Π, podemos obter as regras para a implicação, bastando para isso considerar o caso em que B não depende de x. Considerando a definição A⊃ B ≡ A→ B ≡ (Πx ∈ A)B, temos: Formação de ⊃ A prop. [A verd.]1 B prop. A⊃ B prop. 1, f⊃ CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 65 Introdução de ⊃ [A verd.]1 B verd. A⊃ B verd. 1, i⊃ Eliminação de ⊃ A⊃ B verd. A verd. B verd. e⊃ Exemplo 3.4.3. O combinador I (MARTIN-LÖF, 1984, p. 35 (19)): [x ∈ A]1 λx.x ∈ A→ A 1, iΠ Exemplo 3.4.4. O combinador K (MARTIN-LÖF, 1984, p. 36 (19)): [x ∈ A]2 [y ∈ B(x)]1 λy.x ∈ B(x)→ A 1, iΠ λx.λy.x ∈ (Πx ∈ A)B(x)→ A 2, iΠ Exemplo 3.4.5. O combinador S (MARTIN-LÖF, 1984, pp. 36-38 (19-20)): [g ∈ (Πx ∈ A)(Πy ∈ B(x))C(x,y)]1 [x ∈ A]2 Ap(g,x) ∈ (Πy ∈ B(x))C(x,y) eΠ [ f ∈ (Πx ∈ A)B(x)]3 [x ∈ A]2 Ap( f ,x) ∈ B(x) eΠ Ap(Ap(g,x),Ap( f ,x)) ∈C(x,Ap( f ,x)) eΠ λx.Ap(Ap(g,x),Ap( f ,x)) ∈ (Πx ∈ A)C(x,Ap( f ,x)) 2, iΠ λ f .λx.Ap(Ap(g,x),Ap( f ,x)) ∈ (Π f ∈ (Πx ∈ A)B(x))(Πx ∈ A)C(x,Ap( f ,x)) 3, iΠ λg.λ f .λx.Ap(Ap(g,x),Ap( f ,x)) ∈ (Πx ∈ A)(Πy ∈ B(x))C(x,y)→ (Π f ∈ (Πx ∈ A)B(x))(Πx ∈ A)C(x,Ap( f ,x)) 1, iΠ Observe-se que no último passo, onde se descarta a assunção 1, a abstração lambda sobre g forma um conjunto da forma A→ B, já que o conjunto (Π f ∈ (Πx ∈ A)B(x))(Πx ∈ A)C(x,Ap( f ,x)) CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 66 não depende de g. Caso desconsiderássemos toda dependência de varíavel, a derivação acima seria: [g ∈ A→ (B→C)]1 [x ∈ A]2 Ap(g,x) ∈ B→C eΠ [ f ∈ A→ B]3 [x ∈ A]2 Ap( f ,x) ∈ B eΠ Ap(Ap(g,x),Ap( f ,x)) ∈C eΠ λx.Ap(Ap(g,x),Ap( f ,x)) ∈ A→C 2, iΠ λ f .λx.Ap(Ap(g,x),Ap( f ,x)) ∈ (A→ B)→ (A→C) 3, iΠ λg.λ f .λx.Ap(Ap(g,x),Ap( f ,x)) ∈ (A→ (B→C))→ ((A→ B)→ (A→C)) 1, iΠ 3.4.5 União disjunta de uma família de conjuntos Apresentamos agora a constante Σ, que nos servirá para formar a união disjunta de uma família de conjuntos. A partir dela poderemos definir, no âmbito proposicional, o quantificador existencial e a conjunção. Sendo A um conjunto e B(x)[x ∈ A] uma família de conjuntos indexada por A, podemos inferir a união disjunta dessa família de conjuntos, i.e., Formação de Σ A con j. [x ∈ A]1 B(x) con j. (Σx ∈ A)B(x) con j. 1, f Σ Os elementos canônicos de (Σx ∈ A)B(x) são pares da forma (a,b), em que a ∈ A e b ∈ B(a). Em outras palavras, trata-se de um produto A×B, entre dois conjuntos, generalizado para o caso de uma família de conjuntos. Temos assim a regra Introdução de Σ a ∈ A b ∈ B(a) (a,b) ∈ (Σx ∈ A)B(x) iΣ A regra de eliminação de Σ introduz a função E, computada da seguinte maneira: 1. Computa-se primeiro c, em E(c,(x,y)d(x,y)); 2. Se o valor de c for (a,b), então o valor de E(c,(x,y)d(x,y)) é o valor de d(a,b). CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 67 A título de ilustração, podemos definir, por meio da função E, funções projeção, que selecionam o elemento esquerdo ou direito de um par ordenado: E(c,(x,y)x) E(c,(x,y)y) Assim, para c = (a,b), teríamos: E((a,b),(x,y)x) = (x,y)x (a,b) = a Apresentamos então as regras de eliminação e igualdade 10: Eliminação de Σ c ∈ (Σx ∈ A)B(x) [x ∈ A,y ∈ B(x)]1 d(x,y) ∈C((x,y)) E(c,(x,y)d(x,y)) ∈C(c) 1, eΣ Igualdade de Σ a ∈ A b ∈ B(a) [x ∈ A,y ∈ B(x)]1 d(x,y) ∈C((x,y)) E((a,b),(x,y)d(x,y)) = d(a,b) ∈C((a,b)) 1, Σ Podemos elucidá-las da seguinte maneira: 1. Computa-se c a fim de se obter um elemento canônico da forma (a,b), pertencente a (Σx ∈ A)B(x); 2. Substituímos x por a ∈ A e y por b ∈ B(a), para obtermos d(a,b) ∈C((a,b)); 3. Computamos d(a,b) até obtermos um elemento canônico e, pertencente a C((a,b)). Vale notar que c = (a,b) ∈ (Σx ∈ A)B(x), logo, por substituição, C(c) = C((a,b)), ou seja, obtemos um elemento canônico e de C(c) (como expressa a conclusão da regra eΣ). No âmbito proposicional, a união disjunta de uma família de conjuntos pode ser lida como sendo o quantificador existencial ∃. Assim, definindo-se que 10Para melhor legibilidade, omitimos as premissas que expressam os juízos de formação, a saber: C(z) con j. [z∈ (Σx ∈ A)B(x)], A con j. e B(x) con j. [x ∈ A]. Já adotamos essa medida nas regras de Π e continuaremos a adotá-la sempre que não houver maiores problemas. CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 68 (∃x ∈ A)B(x) ≡ (Σx ∈ A)B(x), temos as regras: Formação de ∃ A con j. [x ∈ A]1 B(x) prop. (∃x ∈ A)B(x) prop. 1, f∃ Introdução de ∃ a ∈ A B(a) verd. (∃x ∈ A)B(x) verd. i∃ De maneira geral, nas apresentações da regra de introdução do quantificador existencial não se explicita a premissa que assere a ∈ A, de todo modo, a regra acima exprime a interpretação intuicionista de que uma prova canônica de (∃x ∈ A)B(x) consiste num par (a,b) em que b é uma prova de que o elemento a realiza B. Note-se que o juízo (∃x ∈ A)B(x) verd. suprime o objeto de prova (a,b). Eliminação de ∃ (∃x ∈ A)B(x) verd. [x ∈ A, B(x) verd.]1 C verd. C verd. 1, e∃ Como vimos na regra f Σ, o conjunto B(x) depende de uma variável x ∈ A. No entanto, não havendo essa dependência, temos o conjunto que representa o produto cartesiano entre dois conjuntos, que na contraparte proposicional exprime o significado da constante de conjunção ∧. Definindo-se A∧B ≡ A×B ≡ (Σx ∈ A)B, apresentamos as regras: Formação de ∧ CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 69 A prop. [A verd.]1 B prop. A∧B prop. 1, f∧ Exprime-se na premissa dessa regra a condição de que a formação da proposição B pode depender da verdade da proposição A. Introdução de ∧ A verd. B verd. A∧B verd. i∧ Eliminação de ∧ A∧B verd. [A verd., B verd.]1 C verd. C verd. 1, e∧ Tem-se aqui uma generalização da regra de eliminação da conjunção, em que se exprime, numa única regra, a eliminação de qualquer uma das proposições que compõe a conjunção. Sendo C igual a A ou B, a regra se apresenta mais próxima da sua forma habitual: A∧B verd. [A verd.]1 A verd. 1, e∧ A∧B verd. [B verd.]1 B verd. 1, e∧ Se na regra eΣ considerarmos um caso em que tomamos C(z) por A e d(x,y) por x, derivamos o juízo E(c,(x,y)x) ∈ A, que contém a função definida no início desta seção, i.e., c ∈ (Σx ∈ A)B(x) [x ∈ A,y ∈ B(x)]1 x ∈ A E(c,(x,y)x) ∈ A 1, eΣ Sendo assim, e definindo p(c) ≡ E(c,(x,y)x), obtemos as seguintes regras derivadas: CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 70 Projeção à esquerda c ∈ (Σx ∈ A)B(x) p(c) ∈ A p a ∈ A b ∈ B(a) p((a,b)) = a ∈ A p′ Do ponto de vista proposicional, a projeção à esquerda nos esclarece que de uma prova de (∃x ∈ A)B(x) podemos obter um elemento de A para o qual a propriedade B vale. Tendo isso em conta, Martin-Löf (1984, p. 45 (24)) observa que a teoria intuicionista de tipos prescinde de um operador descritivo como (ιx)B(x), i.e., o x tal que B(x) vale. Podemos ainda, também por meio da regra eΣ, derivar a função E(c,(x,y)y), de projeção à direita. Basta tomarmos nessa regra d(x,y) por y, e C(z) por B(p(z)), o que nos dá c ∈ (Σx ∈ A)B(x) [y ∈ B(x)]1 [x ∈ A]1 [y ∈ B(x)]1 p((x,y)) = x ∈ A p′ y ∈ B(p((x,y))) subst E(c,(x,y)y) ∈ B(p(c)) 1, eΣ Logo, definindo q(c) ≡ E(c,(x,y)y), Temos Projeção à direita c ∈ (Σx ∈ A)B(x) q(c) ∈ B(p(c)) q a ∈ A b ∈ B(a) q((a,b)) = b ∈ B(a) q′ Quando o conjunto B não depender da variável x, podemos ver as regras p e q da seguinte maneira: c ∈ A×B p(c) ∈ A p c ∈ A×B q(c) ∈ B q que encaradas proposicionalmente nos dão A∧B verd. A verd. e∧ A∧B verd. B verd. e∧ CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 71 Com as regras vistas nesta seção, podemos derivar juízos que expressam os axiomas de eliminação da conjunção: Exemplo 3.4.6. Eliminação da conjunção. [z ∈ (A×B)]1 p(z) ∈ A p λz.p(z) ∈ (A×B)→ A 1, iΠ Exemplo 3.4.7. A mesma derivação anterior, só que com variáveis dependentes: [z ∈ (Σx ∈ A)B(x)]1 p(z) ∈ A p λz.p(z) ∈ (Σx ∈ A)B(x)→ A 1, iΠ Exemplo 3.4.8. Eliminação do outro componente da conjunção. [z ∈ A×B]1 q(z) ∈ B q λz.q(z) ∈ (A×B)→ B 1, iΠ Exemplo 3.4.9. A mesma derivação anterior, só que com variáveis dependentes: [z ∈ (Σx ∈ A)B(x)]1 q(z) ∈ B(p(z)) q λz.q(z) ∈ (Πz ∈ (Σx ∈ A)B(x))B(p(z)) 1, iΠ Exemplo 3.4.10. Observando a regra eΣ, ela nos diz que uma função d(x,y), de dois argumentos – um no conjunto A e outro no conjunto B(x) –, produz uma função de um único argumento, o qual consiste num par ordenado pertencente a um conjunto da forma (Σx∈A)B(x). Derivaremos a seguir um juízo que expressa essa condição, ou seja, construiremos um elemento para (Πx ∈ A)(Πy ∈ B(x))C((x,y))→ (Πz ∈ (Σx ∈ A)B(x))C(z) A derivação se dá da seguinte maneira (MARTIN-LÖF, 1984, p. 48 (26)): CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 72 [z ∈ (Σx ∈ A)B(x)]4 [ f ∈ (Πx ∈ A)(Πy ∈ B(x))C((x,y))]1 [x ∈ A]2 Ap( f ,x) ∈ (Πy ∈ B(x))C((x,y)) eΠ [y ∈ B(x)]3 Ap(Ap(( f ,x),y)) ∈C((x,y)) eΠ E(z,(x,y)Ap(Ap(( f ,x),y))) ∈C(z) 2,3, eΣ λz.E(z,(x,y)Ap(Ap(( f ,x),y))) ∈ (Πz ∈ (Σx ∈ A)B(x))C(z) 4, iΠ λ f .λz.E(z,(x,y)Ap(Ap(( f ,x),y))) ∈ (Πx ∈ A)(Πy ∈ B(x))C((x,y))→ (Πz ∈ (Σx ∈ A)B(x))C(z) 1, iΠ 3.4.6 União disjunta de dois conjuntos Da união disjunta de uma família de conjuntos, passemos agora para a união disjunta de apenas dois conjuntos, também conhecida como soma de dois conjuntos. Por meio dela podemos elucidar o significado, no âmbito proposicional, da disjunção. Formação de + A con j. B con j. A+B con j. f+ Introdução de + a ∈ A i(a) ∈ A+B i+ b ∈ B j(b) ∈ A+B i+′ As constantes i e j nos dizem de onde provem o elemento de A+B. Desse modo, se um elemento arbitrário c ∈ A+B produz um elemento canônico da forma i(a) ou j(b), podemos saber de qual dos conjuntos A e B o elemento c é oriundo. Eliminação de + c ∈ A+B [x ∈ A]1 d(x) ∈C(i(x)) [y ∈ B]1 e(y) ∈C(j(y)) D(c,(x)d(x),(y)e(y)) ∈C(c) 1, e+ Igualdade de + a ∈ A [x ∈ A]1 d(x) ∈C(i(x)) [y ∈ B]1 e(y) ∈C(j(y)) D(i(a),(x)d(x),(y)e(y)) = d(a) ∈C(i(a)) + CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 73 b ∈ B [x ∈ A]1 d(x) ∈C(i(x)) [y ∈ B]1 e(y) ∈C(j(y)) D(j(b),(x)d(x),(y)e(y)) = e(b) ∈C(j(b)) +′ Elucidemos essas regras. A regra de eliminação forma a função D(c,(x)d(x),(y)e(y)), computada deste modo: 1. Computa-se o elemento c até a sua forma canônica; 2a. Se o valor obtido for da forma i(a), substituímos x, em (x)d(x), por a, então computamos d(a); 2b. Se o valor obtido for da forma j(b), substituímos y, em (y)e(y), por b, então computamos e(b). De acordo com as premissas, d(a) produz um elemento canônico de C(i(a)), e e(b) produz um elemento canônico de C(j(b)). Dado que se o valor de c for i(a) temos c = i(a) ∈ A+B, logo C(c) =C(i(a)); e se o valor de c for j(b) temos c = j(b) ∈ A+B, logo C(c) =C(j(b)): nos dois casos obtemos um elemento canônico de C(c). Fazendo a definição A∨B ≡ A+B, chegamos às usuais regras, em Dedução Natural, da disjunção: Formação de ∨ A prop. B prop. A∨B prop. f∨ Introdução de ∨ A verd. A∨B verd i∨ B verd. A∨B verd i∨ Eliminação de ∨ A∨B verd. [A verd.]1 C verd. [B verd.]1 C verd. C verd. 1, e∨ CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 74 Podemos agora derivar juízos que exprimem o significado dos axiomas de introdução e eliminação da conjunção: Exemplo 3.4.11. Introdução da disjunção. [x ∈ A]1 i(x) ∈ A+B i+ λx.i(x) ∈ A→ (A+B) iΠ De maneira análoga derivamos λy.j(y) ∈ B→ (A+B). Exemplo 3.4.12. Eliminação da disjunção. [z ∈ A+B]1 [ f ∈ (Πx ∈ A)C(i(x))]3 [x ∈ A]2 Ap( f ,x) ∈C(i(x)) eΠ [g ∈ (Πy ∈ B)C(j(y))]4 [y ∈ B]2 Ap(g,y) ∈C(j(y)) eΠ D(z,(x)Ap( f ,x),(y)Ap(g,y)) ∈C(z) 2, e+ λz.D(z,(x)Ap( f ,x),(y)Ap(g,y)) ∈ (Πz ∈ A+B)C(z) 1, iΠ λg.λz.D(z,(x)Ap( f ,x),(y)Ap(g,y)) ∈ (Πy ∈ B)C(j(y))→ (Πz ∈ A+B)C(z) 4, iΠ λ f .λg.λz.D(z,(x)Ap( f ,x),(y)Ap(g,y)) ∈ (Πx ∈ A)C(i(x))→ ((Πy ∈ B)C(j(y))→ (Πz ∈ A+B)C(z)) 3, iΠ Do ponto de vista proposicional, e considerando o caso em que C(z) não depende de z, o juízo há pouco derivado corresponderia a (A⊃C)⊃ ((B⊃C)⊃ (A∨B⊃C)) verd.. 3.4.7 Igualdade proposicional A teoria intuicionista de tipos abarca quatro caracterizações distintas de igualdade, as quais são expressas por: (1) ≡; (2) A = B; (3) a = b ∈ A; (4) I(A,a,b). CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 75 A primeira igualdade, chamada de definicional, que vimos utilizando em definições como A→ B ≡ (Πx ∈ A)B, é uma igualdade intensional, pois se trata de uma relação entre expressões linguísticas, ou seja, é uma relação de sinonímia, que nos diz ser igual o sentido das expressões envolvidas, não o que elas possam denotar. Martin-Löf (1984, p. 31 (16)) nos diz que precisamos dessa igualdade para verificarmos a corretude formal de uma inferência. Em A verd. B verd. A∧B verd. i∧ por exemlo, precisamos ter garantia de que as expressões A e B que ocorrem na premissa são definicionalmente iguais às suas correspondentes ocorrências presentes na conclusão. Por outro lado, em (2) e (3) se expressa, no interior de um juízo, uma relação de igualdade entre objetos. Uma igualdade como, por exemplo, 22 = 2+ 2 ∈ N, nos diz que as expressões que ladeiam o sinal "=" possuem o mesmo valor, não que elas têm o mesmo sentido, por isso seria errôneo expressarmos isso por 22 ≡ 2+2. A forma de igualdade (4) é também, como as dua últimas, uma igualdade extensional, posto que relaciona valores de expressões. Sua diferença é que I(A,a,b) se trata de uma proposição (que nos diz a e b serem elementos iguais do conjunto A), não de um juízo, permitindo-nos assim inseri-la no interior de operações lógicas, como conjunção, disjunção, etc.. Vale notar, contudo, que o juízo I(A,a,b) verd. é equivalente ao juízo a = b ∈ A (MARTIN-LÖF, 1984, p. 59 (32)). Apresentamos então as regras de I: Formação de I A con j. a ∈ A b ∈ A I(A,a,b) con j. f I Um ponto importante que podemos notar nessa regra de formação, como observa Thompson (1999, p. 110), é que ela representa bem o fato de que na teoria intuicionista de tipos a sintaxe é indissociável do aparato dedutivo do sistema – uma característica que ressaltamos na seção 3.3. Como podemos ver aqui, a derivação dos juízos a ∈ A e b ∈ A é condição necessária para que formemos o conjunto I(A,a,b), em outras palavras, a regra de formação depende que seja primeiro efetuada a derivação de um juízo. Introdução de I CAPÍTULO 3. A TEORIA INTUICIONISTA DE TIPOS 76 a = b ∈ A r ∈ I(A,a,b) iI Eliminação de I c ∈ I(A,a,b) a = b ∈ A eI Igualdade de I c ∈ I(A,a,b) c = r ∈ I(A,a,b) I Por meio dessas regras, podemos derivar os juízos que expressam o axioma de introdução da identidade e o princípio leibniziano de indiscernibilidade de idênticos. Exemplo 3.4.13. Axioma de introdução da identidade. [x ∈ A]1 x = x ∈ A re f l r ∈ I(A,x,x) iI λx.r ∈ (Πx ∈ A)I(A,x,x) 1, iΠ Exemplo 3.4.14. Indiscernibilidade de idênticos. Proposicionalmente, expressaríamos esse princípio com a afirmação de que elementos iguais satisfazem as mesmas propriedades, i.e. (∀x ∈ A)(∀y ∈ A)(I(A,x,y)⊃ (B(x)⊃ B(y))) verd.. Postergamos a derivação desse juízo, com a explicitação dos objetos de prova, para a seção 4.3, exemplo 4.1. Capítulo 4 Conjuntos e Categorias Apresentado o sistema de Martin-Löf, reservamos este capítulo para discutir a correspondência entre as noções de proposição, conjunto e categoria, nele presente. Propomos que, diferentemente do que se costuma encontrar na literatura especializada 1, considerar uma proposição como um conjunto é diferente de considerá-la como uma categoria. Nossa argumentação aponta que a noção de proposições como conjuntos infringe uma característica proposicional básica, já manifestada em diferentes períodos da história da filosofia: a de que a compreensão de uma proposição não deve pressupor o conhecimento do seu valor de verdade (ou da sua prova, como diria um intuicionista). Em seguida, empenhamos em demonstrar que a distinção proposta por Martin-Löf entre as noções de conjunto e categoria seria uma maneira de recuperar a concepção de proposição aqui defendida. Na seção em que se apresentou a elucidação semântica das quatro formas fundamentais de juízo da teoria intuicionista de tipos, vimos que o conhecimento exigido para se ter o direito de fazer um juízo da forma A con j. é de que saibamos como construir seus elementos, sendo que a prescrição dessa construção é dada pelas regras de introdução pertinentes ao conjunto em questão. Como exemplo, apresentamos o conjunto dos números naturais N, mostrando que para termos o direito de fazer o juízo 1Martin-Löf (1984, p. 11 (21)) denomina categoria o que hodiernamente se consolidou com o nome "tipo" – a partir da seção 4.3.1, adotaremos a nomenclatura mais convencional. Dito isso, notamos em diversos lugares que as expressões proposições como tipos e proposições como conjuntos são tratadas como sinônimas (cf. (MARTINLÖF, 1998a, p. 127-128), (NORDSTRÖM et al., 1990, p. 6), (VALENTINI, 1996, §3.2), (RANTA, 1995, p. 39, §2.16), (BEESON, 1985, p. 247); neste último, é interessante notar que o autor considera o conjunto N como sendo a proposição "existe um número natural"). 77 CAPÍTULO 4. CONJUNTOS E CATEGORIAS 78 N con j. devemos saber como construir os elementos canônicos de N (bem como os seus elementos canônicos iguais), o que é feito por meio de uma regra que introduz os sucessores de zero. Por meio da noção de proposições como conjuntos, que considera uma proposição como sendo o conjunto de suas provas, i.e., o conjunto dos objetos de prova construídos que a verifica, as noções de conjunto e proposição se tornam indistintas, como afirma Martin-Löf (1984, p. 13 (7)): Se considerarmos seriamente a ideia de que uma proposição é definida estabelecendo-se como suas provas canônicas são formadas [...] e aceitarmos que um conjunto é definido prescrevendo-se como seus elementos canônicos são formados, então é claro que manter distintas as noções de proposição e conjunto (e as noções associadas de prova de uma proposição e elemento de um conjunto) apenas conduziria a uma duplicação desnecessária. Ao invés disso, nós simplesmente as identificamos, ou seja, as tratamos como uma única e mesma noção (grifo nosso) 2. Tem-se assim que o direito de fazermos o juízo da forma A prop. pressupõe o conhecimento de como construir as suas provas canônicas, as quais são prescritas, como no caso de um conjunto, por regras de introdução. Com isso, Martin-Löf aparentemente assume que o sentido de uma proposição só seria alcançado a partir do momento em que se apresentasse suas regras de introdução, que diriam quais seriam suas provas canônicas. Em outras palavras, uma proposição não teria sentido até que se pudesse prová-la. A esse respeito, a seguinte citação (MARTIN-LÖF, 1984, p. 24 (13)) apresenta de maneira precisa esse posicionamento: A regra de formação diz que podemos formar um certo conjunto (proposição) de certos outros conjuntos (proposições) ou famílias de conjuntos (funções proposicionais). As regras de introdução dizem quais são os elementos canônicos (e elementos canônicos iguais) de um conjunto, dando-lhe assim o seu significado (grifo nosso) 3 . Contudo, colocado nesses termos, parece chegarmos a um impasse que contraria nossas intuições básicas a respeito do que seria uma proposição, a saber: uma proposição consiste, 2"If we understand the idea that a proposition is defined by laying down how its canonical proofs are formed [...] and accept that a set is defined by prescribing how its canonical elements are formed, then it is clear that it would lead to unnecessary duplication to keep the notions of proposition and set (and the associated notions of proof of a proposition and element of a set) apart. Instead we simply identify them, that is, treat them as one and the same notion". 3"The formation rule says that we can form a certain set (propositions) from certain other sets (propositions) or families of sets (propostional functions). The introduction rules say what are the canonical elements (and equal canonical elements) of the set, thus giving its meaning". CAPÍTULO 4. CONJUNTOS E CATEGORIAS 79 sobretudo, numa pretensão de verdade 4, sendo que o estabelecimento dessa pretensão apenas nos diz quais condições deveriam ser satisfeitas a fim de que a proposição seja verdadeira, e não como efetivamente realizar essas condições, pois neste último caso uma proposição falsa seria inconcebível. Dado que intuicionisticamente a verdade de uma proposição é definida como a posse dos meios de construir a prova que a verifica, e que para termos condições de dizer que algo é uma proposição devemos saber como construir sua prova, o juízo a ∈ A (juntamente com a regra que permite introduzi-lo), que diz a proposição A ser verdadeira (pois apresenta o seu objeto de prova), é pressuposto na elucidação semântica do juízo A prop.. Desse modo, na definição intuicionista de proposição, toda proposição prescreve (e é definida como sendo essa prescrição) a construção de sua própria prova, além de que todo objeto de prova é prova de alguma proposição, pois esses objetos só existem na medida em que exista uma proposição que instrua a sua construção e ao mesmo tempo seja o que se pretende provar pela construção do objeto de prova que ela mesma prescreveu. Para compreender melhor esse problema, convém nos determos um pouco na elucidação da teoria proposicional que estamos alegando ser contrariada pela concepção de proposição da teoria intuicionista de tipos. Adentraremos nela por meio do que se costuma denominar de o problema do falso. Propomos que não poder formar uma proposição sem que antes se prescreva a construção de sua prova conduz à aporia a respeito da impossibilidade do discurso falso, apresentada por Platão no diálogo Sofista. 4.1 O problema do falso Pelo fato de nesta seção nos envolvermos com concepções filosóficas platônicas e fregianas, ela possui um tom diferente das demais, característico dos conceitos pertinentes a essas filosofias. No entanto, o ponto que gostaríamos de destacar envolve uma questão que parece constituir fundamentalmente qualquer teoria proposicional: qual a relação de dependência entre a compreensão do que uma proposição diz e o estabelecimento de sua verdade. Como proposições falsas podem ser compreendidas? A perplexidade dessa pergunta é ocasionada por uma teoria proposicional que considera o poder descritivo das proposições como uma forma de conexão com a realidade. Dentro desse contexto, a verdade é encarada como uma expressão do real, proposições são verdadeiras na medida em que descrevem aspectos da realidade. Por isso a ocasião da interrogação acima, afinal, se as proposições verdadeiras descrevem a realidade, a tendência é concluir que as proposições falsas não a descrevem, portanto, 4Essa expressão foi inspirada em (ANGIONI, 2006, p. 19). CAPÍTULO 4. CONJUNTOS E CATEGORIAS 80 de alguma forma perderiam o seu vínculo com a realidade, tornando-se assim incompreensíveis. No exemplo do diálogo Sofista (PLATÃO, 1972), a proposição "Teeteto está sentado" é verdadeira porque há um fato real que lhe corresponde, ao passo que "Teeteto voa" é falsa justamente por haver a perda dessa correspondência. Entretanto, se não há aqui uma situação descrita, como é possível compreender o que está sendo dito? A proposição falsa fala sobre algo, mas isso a que ela faz referência não se encontra da maneira como foi descrito, quebrando, desse modo, a conexão entre linguagem e realidade encontrada nas proposições verdadeiras. Mas o que então ela descreve? Pois desde que uma proposição seja compreendida, sua conexão com a realidade não pode ter sido completamente quebrada. Platão (1972, p. 162, 236e) declara esse problema nos seguintes termos: Que modo encontrar, na realidade, para dizer ou pensar que o falso é real sem que, já ao proferi-lo, nos encontramos enredados em contradição? (grifo nosso). A contradição mencionada alude ao fato de que uma proposição falsa não pode quebrar sua conexão com a realidade, ela deve, de algum modo, "dizer ou pensar que o falso é real", pois, do contrário, não seria compreendida. Todavia, a garantia de sua compreensão reside em não quebrar essa conexão, mas isso a tornaria verdadeira. Essa conclusão traz como corolário a própria impossibilidade do discurso falso. Se uma proposição verdadeira é inteligível por estar, com sua descrição correta, vinculada à realidade, uma proposição falsa seria incomunicável, já que, não descrevendo a realidade, perderia seu vínculo com ela. Ora, sendo assim, a existência de proposições falsas já seria impedida desde o princípio, pois se elas são incapazes de transmitir uma informação, sequer elas poderiam ser reconhecidas como proposições. Esse problema é o cerne do paradoxo levantado no diálogo Sofista quanto ao estatuto do discurso falso: se ele é de todo impossível, porque não haveria como compreendê-lo, só resta então dizer verdadeiramente (e em contrapartida, isso traria a indesejada consequência de não poder acusar a falsidade do discurso sofístico). Em toda essa discussão, vale notar a relação irredutível entre compreensão e verdade: uma proposição só seria compreendida se ela fosse verdadeira. Essa é justamente a conclusão que nos parece levar a noção de proposições como conjuntos, ou seja, para se poder asserir que A é uma proposição, já deveríamos saber como prová-la. Todavia, tal conclusão não parece condizer com o movimento ordinário da linguagem. Com as sentenças interrogativas podemos exemplificar de maneira paradigmática que o conteúdo comunicável de uma sentença não só não deve ser estritamente verdadeiro, mas, sobretudo, independente do valor de verdade que ela possa expressar (FREGE, 2002, p. 16). Uma sentença interrogativa expõe uma proposição com o objetivo de obter uma resposta, CAPÍTULO 4. CONJUNTOS E CATEGORIAS 81 a qual poderá ser negativa ou afirmativa, sendo que a proposição veiculada é o suporte sobre o qual o juízo se baseia para declarar sua asserção. Contudo, é preciso notar que o valor de verdade da interrogação não está em jogo num primeiro momento, quando o pedido é declarado, pois a proposição por ela expressa precisa ser apreendida antes de qualquer asserção ser efetuada (FREGE, 2002, p. 17). Uma hipótese quando é levantada, por exemplo, não está comprometida de antemão com nenhum valor de verdade, ela apenas lança uma aposta que deverá ser averiguada, só a partir de então poderá surgir a asserção de uma proposição, reconhecendo-a como verdadeira ou falsa. No entanto, existe um problema se a proposição expressa por uma sentença for identificada com a verdade, se o seu conteúdo informativo for legítimo desde que seja verdadeiro. À primeira vista, isso acarretaria em dizer que uma proposição falsa é carente de sentido, já que somente as proposições verdadeiras têm sua condição de significatividade ratificada. Colocado assim, a sentença "três é maior que cinco é falso" não teria sentido, pois o sujeito gramatical, "três é maior que cinco", por representar uma proposição falsa, não pode ser compreendido (FREGE, 2002b, p. 43). No caso de sentenças interrogativas, isso traria ainda outras dificuldades, pois é preciso distinguir a proposição sobre a qual se faz um julgamento, e o pedido de resposta propriamente dito. A pergunta "é cinco maior que três?" expressa a proposição cinco é maior que três, todavia, essa proposição precisa ser verdadeira para ser o conteúdo veiculado pela pergunta, do contrário, esta não teria sentido. Nesse caso, a resposta já seria dada no momento mesmo da formulação da sentença interrogativa. Assim, o entrave é patente: ou a pergunta expressa uma proposição falsa, e não tem sentido, ou, por outro lado, possui sentido, mas se torna trivial. Num contexto em que a falsidade da proposição não é prontamente reconhecida, esse último ponto fica mais claro. Seja apresentada a seguinte sentença (FREGE, 2002b, p. 44): "É (21/20)100 maior que 10 √ 1021 ?" Se essa pergunta fosse respondida afirmativamente, isso indicaria que a proposição por ela expressa é verdadeira, portanto, uma sentença com sentido, já que não exprime algo sem vínculo com a realidade. Não obstante, a investigação pela resposta poderia levar a uma conclusão negativa, indicando que a proposição ali expressa é falsa, ou seja, a sentença seria destituída de sentido. À luz desse exemplo, cabe notar que independentemente da resposta obtida, a sentença interrogativa foi compreendida a ponto de levar a cabo uma investigação concluída num juízo definitivo, demonstrando assim que o conteúdo de uma interrogação, seu sentido, não coincide com um valor de verdade. O fato da compreensão de uma pergunta não ser submetida à conCAPÍTULO 4. CONJUNTOS E CATEGORIAS 82 clusão de sua resposta revela, portanto, a possibilidade de se perguntar pelo valor de verdade de algo, pois a pergunta não será ela própria também um juízo. Desse modo, ficam estabelecidos, quanto a uma sentença interrogativa, dois momentos distintos: um primeiro, que consiste na compreensão da pergunta, e um segundo, a declaração de um juízo a respeito do conteúdo da interrogação (desde que a investigação ocasionada pela pergunta leve a uma conclusão, do contrário a pergunta ainda permanece em aberto). Em consequência, para que esses momentos não sejam confundidos, não pode ocorrer que o sentido de uma sentença seja identificado com um valor de verdade. Vale notar também que a proposição expressa por uma sentença interrogativa faz parte do sentido do juízo que a responde, uma vez que este é compreendido da mesma maneira, exceto por não ser imparcial a respeito desse conteúdo. Colocado nesses termos, torna-se manifesto a inadequação de se confundir uma proposição com o estabelecimento do seu valor de verdade, porque ela tanto pode ser o conteúdo semântico de um juízo – que irá se posicionar a respeito do seu valor de verdade –, como o conteúdo de uma interrogação – que não é comprometido com nenhum valor de verdade. Para concluir, ressaltamos que o problema discutido aqui não é estranho a Martin-Löf. Se tomarmos o seu artigo On the Meaning of the Logical Constants and the Justification of the Logical Laws, onde ele prioriza a perspectiva proposicional da teoria intuicionista de tipos, encontramos a seguinte passagem: A razão pela qual eu disse que a palavra verificação pode ser perigosa é que o princípio de verificação formulado pelos positivistas lógicos nos anos trinta dizia que uma proposição é significativa se, e somente se, ela for verificável, ou que o significado de uma proposição é o seu método de verificação. Mas isso é confundir significatividade e verdade. De fato, eu usei a palavra verificável e a expressão método de verificação. Todavia, o que é equacionado com verificabilidade não é a significatividade, mas a verdade de uma proposição, e o que se qualifica como um método de verificação é uma prova de que a proposição é verdadeira. Assim, o significado de uma proposição não é o seu método de verificação. Sobretudo, o significado de uma proposição é determinado pelo o que é verificá-la, ou o que conta como a sua verificação (MARTIN-LÖF, 1996, pp. 36-37 ) (grifo nosso) 5. 5"The reason why I said that the word verification may be dangerous is that the principle of verification formulated by the logical positivists in the thirties said that a proposition is meaningful if and only if it is verifiable, or that the meaning of a proposition is its method of verification. Now that is to confuse meaningfulness and truth. I have indeed used the word verifiable and the expression method of verification. But what is equated with verifiability is not the meaningfulness but the truth of a proposition, and what qualifies as a method of verification is a proof that a proposition is true. Thus the meaning of a proposition is not its method of verification. Rather, the meaning of a proposition is determined by what it is to verify it, or what counts as a verification of it". CAPÍTULO 4. CONJUNTOS E CATEGORIAS 83 4.2 Como e o quê Diante da aporia levantada na seção anterior, o que aparenta estar em questão na correspondência entre conjuntos e proposições é a distinção que Martin-Löf faz entre conjuntos e categorias. Ele nos diz (MARTIN-LÖF, 1984, p. 21 (11)) que, ao contrário do que se dá no caso de um conjunto, podemos compreender uma categoria sem que nos sejam dadas regras exaustivas de como formar os objetos que a habitam. Assim, todo conjunto, que porta a instrução de como construir seus elementos, seria uma categoria, mas uma categoria não é necessariamente um conjunto, já que podemos compreendê-la mesmo que não saibamos como formar seus objetos. Nessas condições, correspondendo a noção de proposição à de categoria, o problema do falso não se faria presente, já que poderíamos formar uma proposição sem a necessidade de pressupor a formação dos seus objetos de prova. Com base nessa distinção, Martin-Löf (1984, p. 21 (12)) tem o cuidado de utilizar a palavra objeto quando se refere ao que pertence a uma categoria, e a palavra elemento quando se refere ao que pertence a um conjunto. Na seguinte passagem, ele nos esclarece o que tem em vista com as noções de objeto de uma categoria e elemento de um conjunto: Para se definir uma categoria não é necessário prescrever como seus objetos são formados, mas apenas compreender o que um objeto (arbitrário) da categoria é. Cada conjunto determina uma categoria, a saber, a categoria dos elementos do conjunto, mas isso não se dá no sentido inverso: por exemplo, a categoria dos conjuntos e a categoria das proposições não são conjuntos, uma vez que não podemos descrever como todos os seus elementos são formados 6 (MARTIN-LÖF, 1984, p. 21 (12)). Desse modo, na definição do que é um conjunto, que envolve regras exaustivas quanto à formação de seus elementos, os juízos da forma A con j. não podem ser compreendidos sem as regras de introdução, que derivam juízos da forma a∈A e prescrevem como os elementos de um conjunto A são formados. Como já vimos, o juízo N con j. é compreendido à luz das regras de introdução relativas ao conjunto N, isso porque se está tratando da formação de um conjunto, o qual exige a prescrição da formação dos seus elementos. É justamente essa indissociação entre regras de introdução e regras de formação, articulada por trás da noção de conjunto, que não permite uma proposição (entendida como sendo o conjunto de seus objetos de prova) ser compreendida a não ser que seja verdadeira. Consequentemente, para que uma proposição possa ser caracterizada como sendo uma pretensão de verdade, de maneira que as suas condições de verdade (ou ao modo intuicionista, suas 6"To define a category it is not necessary to prescribe how its objects are formed, but just to grasp what an (arbitrary) object of the category is. Each set determines a category, namely the category of elements of the set, but not conversely: for instance, the category of sets and the category of propositions are not sets, since we cannot describe how all their elements are formed". CAPÍTULO 4. CONJUNTOS E CATEGORIAS 84 condições de prova) não pressuponham a realização de sua verificação, ela deve ser equiparada a uma categoria, não a um conjunto, i.e., ela consistiria na categoria dos seus objetos de prova. Colocado assim, um juízo da forma a ∈ A nos diria apenas o que seria uma prova da proposição A, não como ela seria. Dado que A está sendo encarada como uma categoria, não é preciso apresentar regras exaustivas de como essa prova é formada, ou seja, podemos dizer qual seria o caso se essa proposição fosse verdadeira sem que com isso seja pressuposto o conhecimento de como prová-la. Se atentarmos ao emprego preciso das palavras objeto e elemento, notamos que na elucidação semântica que Martin-Löf apresenta ao juízo da forma A con j., no seu livro Intuitionistic Type Theory, ele utiliza a palavra elemento, dizendo-nos que um conjunto A é definido prescrevendo-se como os seus elementos canônicos são formados (MARTIN-LÖF, 1984, p. 8 (5)). Isso nos indica que essa definição corresponde ao âmbito dos conjuntos, não das categorias. Sendo assim, podemos notar que, quando um conjunto é definido, fala-se de como formar seus elementos, e não o quê eles seriam, dando a entender que a expressão como refletiria a ideia de se apresentar regras exaustiva para a construção dos elementos. Distinguindo-se assim o uso das expressões o quê e como, reservando-se esta à definição de conjunto e aquela à definição de categoria, soa bastante plausível quando Martin-Löf (1984, p. 11 (6)) nos diz que "uma proposição é definida estabelecendo-se o quê conta como uma prova da proposição" (grifo nosso). Nesse sentido, uma proposição pode ser caracterizada como uma pretensão de verdade, já que ela apenas nos diz o que seria o seu objeto de prova, não se imiscuindo, portanto, no seu processo de construção, ou seja, o que devemos saber para termos o direito de fazer um juízo da forma A prop. não envolve nenhum conhecimento que implique conhecer um juízo da forma a ∈ A. Essa concepção de proposição como categoria, e não como conjunto, parece ser mais próxima da concepção proposicional de alguns teóricos do intuicionismo. Heyting (1998, p. 307), por exemplo, nos diz que uma proposição expressa uma expectativa que pode ser realizada ou malograda; Kolmogorov (1998, p. 330), por sua vez, considera uma proposição como um problema a ser solucionado, o qual demandaria um método que instruísse a sua solução. Particularmente, esta concepção proposicional é interpretada por Martin-Löf (1984, p. 6 (4)) da seguinte maneira: "Na interpretação de Kolmogorov, a palavra problema se refere a algo a ser feito e a palavra programa 7 a como fazer isso". 8 Gostaríamos assim de considerar do seguinte modo a forma de juízo que assere uma proposição: 7Martin-Löf (1984, p. 6 (4)) entende que "a é um método" pode ser lido como "a é um programa". 8"In Kolmogorov's interpretation, the word problem refers to something to be done and the word program to how to do it". CAPÍTULO 4. CONJUNTOS E CATEGORIAS 85 a}{{} como ∈ A}{{} o quê Visto dessa maneira, o juízo A prop. não pressupõe que saibamos como provar A, tal pressuposição concerne apenas ao juízo acima, que diz A ser verdadeira, ou seja, para se dizer que uma proposição é verdadeira, deve-se saber como prová-la. A respeito disso, Martin-Löf (1996, p. 36) afirma: Observe que saber um juízo da segunda forma [i.e., a ∈ A] é saber como, mais precisamente, saber como verificar A, ao passo que saber um juízo da primeira forma [i.e., A prop.] é saber um problema, uma expectativa ou intenção, que é saber o que fazer, simplesmente. [...] Assim, a diferença entre essas duas formas de conhecimento consiste na diferença entre saber o que fazer e saber como fazer. E, claro, não há dúvida de que para sabermos como fazer algo devemos primeiro saber o que é isso que é para ser feito (grifo do autor) 9. Resta agora compreendermos melhor o significado de dizermos que uma proposição exprime o que seria a sua prova. Tomemos o exemplo de Heyting (1998, p. 307), que considera a proposição "A constante de Euler é racional". Utilizando C para se referir à constante de Euler, a proposição expressa por essa sentença nos diz o que seria a sua prova, que nesse caso é a existência de um par de números inteiros (p,q), tal que p/q = C. Todavia, apesar de sabermos o que seria a prova dessa proposição, não estamos ainda em condição de dizer que temos a prova dela, pois tal fato só será alcançado quando estivermos de posse de uma demonstração10 que nos garanta que p/q =C é o caso, instruindo-nos como construir p/q. Saber como realizar algo é o mesmo que saber que esse algo é realizável, mas saber o que é (ou o que seria) a realização de algo não é o mesmo que saber que esse algo é realizável. Apesar de que saberíamos reconhecer uma prova de que C é racional, se ela nos fosse apresentada, não podemos, somente por meio do esclarecimento das condições de verdade dessa proposição, prová-la 11 . Isso se assemelha ao que ocorre num sistema formal de lógica de primeira ordem, com suas regras de inferência e definições de fórmulas bem formadas, ou seja, apresentada uma certa derivação, é decidível se a fórmula que aparece como conclusão se segue ou não dessa 9"Observe that knowledge of a judgement of the second form is knowledge how, more precisely, knowledge how to verify A, whereas knowledge of a judgement of the first form is knowledge of a problem, expectation, or intention, which is knowledge what to do, simply. [...] So the difference between these two kinds of knowledge is the difference between knowledge what to do and knowledge how to do it. And, of course, there can be no question of knowing how to do something before you know what it is that is to be done". 10Para a noção de demonstração, cf. a seção 4.2.1, a seguir. 11A esse respeito, Dummett (2000, p. 4) diz: "De um ponto de vista intuicionista [...], o entendimento de uma sentença matemática consiste na capacidade de reconhecermos a sua prova quando esta sentença for apresentada acompanhada dela; e a verdade de uma tal sentença pode consistir apenas na existência de uma tal prova 12. 12"From an intuitionistic standpoint [...], an understanding of a methematical statement consists in the capacity to recognize a proof of it when presented with one; and the truth of such a statement can consist only in the existence of such a proof." CAPÍTULO 4. CONJUNTOS E CATEGORIAS 86 derivação, no entanto, da mera apresentação de uma fórmula bem formada, não se pode decidir se tal fórmula é ou não derivável no sistema formal em questão. Sob essa perspectiva, a teoria proposicional de Kreisel (1962, p. 201) vem a calhar: O sentido de uma asserção matemática denotada por um objeto linguístico A é intuicionisticamente determinado (ou compreendido) se tivermos estabelecido quais construções constituem uma prova de A, i.e., se possuirmos uma construção rA tal que, para qualquer construção c, rA(c) = 0 se c for uma prova de A e rA(c) = 1 se c não for uma prova de A (grifos do autor) 13. Fazendo uma analogia a essa passagem, podemos dizer que estabelecer o que constitui uma prova de uma proposição A é poder decidir, para uma prova qualquer a, se ela é ou não uma prova de A. Assim, o que devemos saber para termos o direito de fazer um juízo da forma A prop. consiste num critério que nos diga, diante de uma prova, se ela é ou não uma prova de A, desvinculando, desse modo, a compreensão de uma proposição do conhecimento de como prová-la. 4.2.1 Prova e demonstração Para melhor compreendermos o que argumentamos logo acima, é preciso observar que Martin-Löf distingue entre prova de uma proposição e demonstração de um juízo. Para ilustrarmos isso, considere-se uma derivação na teoria intuicionista de tipos, a qual assume a seguinte forma: D a ∈ A Com D nos referimos a todos os passos inferenciais que culminaram no estabelecimento do juízo a ∈ A. Assim, o que Martin-Löf denomina demonstração consiste no que é referido por D, já o que ele denomina prova consiste nos objetos formados à esquerda do sinal "∈". Diante disso, não seria adequado dizer que demonstramos uma proposição, pois o que fazemos é demonstrar um juízo que contém uma proposição para a qual ele apresenta um objeto de prova, sendo que este foi paulatinamente construído no percurso da demonstração. E já que podemos inferir a ∈ A A verd. 13"The sense of a mathematical assertion denoted by a linguistic object A is intuitionistically determined (or understood) if we have laid down what constructions constitue a proof of A, i.e., if we have a construction rA such that, for any construction c, rA(c) = 0 if c is a proof of A and rA(c) = 1 if c is not a proof of A". CAPÍTULO 4. CONJUNTOS E CATEGORIAS 87 a apresentação desse objeto de prova constitui o caráter assertivo de um juízo. Agora, sugerimos na seção precedente que compreender o que uma proposição diz consiste em podermos decidir se uma dada prova é ou não a prova da proposição em questão. Sendo assim, apresentado-nos um juízo da forma a ∈ A, teríamos que ser capazes de saber – se de fato compreendemos o que a proposição A diz – se a realmente consiste num objeto de prova de A. Não obstante, tal questão não é necessariamente respondível. O que se passa é que a teoria intuicionista de tipos pode ser concebida de maneria monomórfica ou polimórfica. Na condição monomórfica, a qual não diz respeito ao sistema apresentado nesta dissertação, os próprios elementos formados contém informações que indicam o conjunto a que pertencem. Por exemplo, uma função λx.x, pertencente ao conjunto N→N, viria expressa como λx ∈ N . x, indicando-nos assim, nela mesma, o domínio de seus argumentos. Por outro lado, na versão polimórfica não é feita essa descrição, de modo que a função λx.x é tratada indistintamente para qualquer domínio em questão. Ilustrando melhor esse fato, na teoria intuicionista de tipos polimórfica, o juízo Ap(λy.0, λx.x) ∈ N seria indistinto para diferentes demonstrações monomórficas, como as duas seguintes 14: 0 ∈ N λyN→N.0 ∈ (N→ N)→ N iΠ [x ∈ N]1 λxN.x ∈ N→ N 1, iΠ Ap(λyN→N.0, λxN.x) ∈ N eΠ 0 ∈ N λyB→B.0 ∈ (B→ B)→ N iΠ [x ∈ B]1 λxB.x ∈ B→ B 1, iΠ Ap(λyB→B.0, λxB.x) ∈ N eΠ Isso nos revela que eliminando as informações conjuntistas que acompanham os elementos, não saberíamos reconstituí-las, uma vez que elas se diferenciam de acordo com as demonstrações que as originaram. Nesse contexto, Nordström et al. (1990, p. 147) afirmam que "[u]ma vantagem com uma versão monomórfica é que toda informação sobre a validade do juízo está contida nele mesmo. Dado um juízo, é possível reconstruir a sua derivação" 15. 14Esse exemplo se encontra em (THOMPSON, 1999, p. 163). Para melhor legibilidade, adotamos a sua notação, que utiliza subscritos para discriminar nos elementos a origem dos conjuntos. 15"One advantage with a monomorphic version is that all important information about the validity of a judgement CAPÍTULO 4. CONJUNTOS E CATEGORIAS 88 Salvesen (1989) apresenta diversas propriedades que distinguem a teoria intuicionista de tipos polimórfica da monomórfica, e nos esclarece, sobretudo, que elas não são equivalentes, pois não derivam os mesmos juízos. Esse resultado é alcançado provando-se que há juízos demonstrados na teoria polimórfica que não se originam – por apenas apagar as informações conjuntistas dos elementos – de nenhum juízo da teoria monomórfica. Mas ainda não chegamos ao ponto que pretendemos. Apresentamos essa discussão para poder dizer que apenas na teoria intuicionista de tipos monomórfica se pode decidir, dado um juízo da forma a ∈ A, se a é um elemento de A – ou considerando no âmbito da teoria da computação, somente na versão monomórfica temos a decidibilidade da checagem de tipos (NORDSTRÖM et al., 1990, p. 7). A consequência disso é que na versão polimórfica pode dar-se o caso de não sabermos reconhecer uma dada prova de uma certa proposição. Precisamos, portanto, refinar o que dissemos na seção passada: uma proposição A nos diz o que seria a sua prova, mas diante de um objeto de prova a atribuído a ela, podemos não saber se a ∈ A. Para podermos decidir, na teoria polimórfica, se a de fato é uma prova de A, deve-se apresentar esse objeto de prova juntamente com a demonstração que o construiu. Numa palavra, conhecer um juízo da forma a ∈ A – e com isso poder dizer que com a sabemos como provar A – implica em saber demonstrá-lo. Além disso, observamos que nas citações de Kreisel e Dummett, logo acima, o uso por eles da palavra "prova" corresponde ao uso que Martin-Löf faz da palavra "demonstração". 4.3 A formação de conjecturas No decorrer do livro Intuitionistic Type Theory, de Martin-Löf, notamos diversos exemplos de demonstrações nas quais se usam as expressões "assuma" e "seja" ("assume" e "let", respectivamente, em inglês). Por exemplo, na derivação de um juízo em que a sua parte conjuntista corresponderia, na lógica de predicados, ao axioma de introdução da conjunção 16, MartinLöf (1984, p. 47 (25)) inicia a demonstração com as seguintes palavras: "Assuma A con j., B(x) con j. [x ∈ A] e seja x ∈ A, y ∈ B(x)". Tentemos reconstruir aqui essa demonstração, para podermos compreender de perto o papel dessas expressões. Tomemos como assunções os juízos que são convocados pela palavra "seja", i.e., x ∈ A e y ∈ B(x). A partir daí, construamos a árvore dedutiva da demonstração almejada: is contained in the judgement itself. Given a judgement, it is possible to reconstruct a derivation of the judgement". 16Já apresentamos essa demonstração no início da dissertação, todavia, sem o uso de variáveis dependentes. CAPÍTULO 4. CONJUNTOS E CATEGORIAS 89 [x ∈ A]1 [y ∈ B(x)]2 (x,y) ∈ (Σx ∈ A)B(x) iΣ λy.(x,y) ∈ B(x)→ (Σx ∈ A)B(x) 2, iΠ λx.λy.(x,y) ∈ (Πx ∈ A)(B(x)→ (Σx ∈ A)B(x)) 1, iΠ Cada uma das assunções foi descartada por uma aplicação da regra iΠ, de modo que o juízo obtido na conclusão final não depende delas. Não obstante, Martin-Löf diz ter assumido dois outros juízos na sua demonstração, A con j. e B(x) con j. – este último sob a assunção de que a ocorrência da variável x depende do juízo x ∈ A. De acordo com as regras de formação, observamos que a assunção deles é necessária para se poder derivar o juízo (Πx ∈ A)(B(x)→ (Σx ∈ A)B(x)) con j., que se daria da seguinte maneira: A con j. B(x) [x ∈ A]1 con j. (Σx ∈ A)B(x) con j. f Σ B(x)→ (Σx ∈ A)B(x) con j. f Π (Πx ∈ A)(B(x)→ (Σx ∈ A)B(x)) con j. 1, f Π Nesse caso, perguntamo-nos se os juízos A con j. e B(x) con j. são assunções como as que ocorreram na derivação anterior, já que eles, diferentemente, não foram descartados, além disso Martin-Löf os conclama pela palavra "assuma", não pela palavra "seja". Trabalhando dentro dos limites expressivos do sistema até aqui apresentado, notamos não ser possível darmos início a uma derivação a partir da assunção de um juízo da forma A con j.. Para entendermos esse limite expressivo, é preciso introduzir uma regra presente em alguns textos de apresentação da teoria intuicionista de tipos (por exemplo, NORDSTRÖM et al., 1990, p. 37 e THOMPSON, 1999, pp. 77 e 126), a qual explicita formalmente a introdução de assunções numa derivação, trata-se da regra de assunção ("assumption rule", em inglês): A con j. [x ∈ A] h Essa regra condiz com a explicação do significado da primeira forma de juízo, apresentada na seção 3.1. Dado que para termos condições de asserir que A é um conjunto precisamos apresentar regras exaustivas de como formar os seus elementos canônicos, segue-se naturalmente que a partir de um conjunto A possamos supor um elemento arbitrário dele, o qual a CAPÍTULO 4. CONJUNTOS E CATEGORIAS 90 qualquer momento poderá ser singularmente nomeado (pelo menos em princípio) pelo método de construção que já temos em mãos. Além do mais, essa regra está de acordo com a ordem de prioridade conceitual das formas de juízo (MARTIN-LÖF, 1996, p. 31), ou seja, os juízos de formação são anteriores aos juízos que asserem o fato de um elemento pertencer a um determinado conjunto, pois antes de sabermos se um elemento a pertence a um conjunto A, já devemos saber que A é um conjunto (ou falando em termos proposicionais, não faz sentido perguntar pela prova de A se já não soubermos que A se trata de uma proposição). Desse modo, quando Martin-Löf nos diz "assuma A con j.", tal juízo não se trata de uma assunção que será descartada em algum momento da derivação, trata-se antes de um juízo categórico por meio do qual podemos conjecturar a respeito dos elementos de A, isso porque temos a garantia de que A não é um conjunto vazio (ou se for vazio, já o sabemos). Contudo, se o conjunto A foi formado por meio de uma regra inferencial, a premissa dessa regra deve, por sua vez, ser composta por conjuntos já previamente formados, de maneira que assim retrocedemos paulatinamente até chegarmos a um conjunto que possa ser introduzido a partir de nenhuma premissa. Nesse contexto, lemos a seguinte afirmação de Martin-Löf (1984, p. 65 (35)): Note que, até o presente momento, não temos operações para construir conjuntos a partir do nada, mas apenas operações para obter novos conjuntos a partir de conjuntos (e famílias de conjuntos) já dados. Introduzimos agora conjuntos finitos, que são dados imediatamente; de fato, suas regras de formação de conjunto não terão premissas 17. Como exemplo de conjunto finito, Martin-Löf (1984, p. 65 (35)) apresenta o conjunto Nn, compreendido da seguinte maneira: o conjunto N0 não possui nenhum elemento (consequentemente, não possui regra de introdução); N1 possui o único elemento canônico 01; N2 possui os elementos canônicos 02,12; Nn possui os elementos canônicos 0n,1n, ...,mn. Tem-se assim a seguinte regra de formação, que não carece de premissa: Nn con j. Martin-Löf (1984, p. 65 (35)) utiliza o conjunto Nn para definir o conjunto vazio (que no âmbito proposicional corresponde à proposição do absurdo ⊥, para a qual não existe regra de introdução, uma vez que não possui prova) e o conjunto booleano Bool, que possui apenas dois elementos, que estão para o verdadeiro e para o falso. Temos então as definições: 17"Note that, up to now, we have no operations to build up sets from nothing, but only operations to obtain new sets from given ones (and from families of sets). We now introduce finite sets, which are given outright; hence their set formation rules will have no premisses". CAPÍTULO 4. CONJUNTOS E CATEGORIAS 91 /0 ≡ ⊥ ≡ N0 Bool ≡ N2 Um outro conjunto que pode ser formado a partir de nenhuma premissa é o conjunto N, visto em 3.4.3, que diferentemente do conjunto anterior, é infinito. Posto isso, a teoria intuicionista de tipos possui a peculiaridade (comparando-a com a Dedução Natural) de os juízos hipotéticos não ocorrerem no topo das árvores dedutivas, de fato, a assunção de que um elemento pertence a um certo conjunto (que equivaleria à hipótese de uma certa proposição ser verdadeira) é precedida por um juízo categórico que diz ser um conjunto o conjunto em questão. Portanto, no exemplo da derivação do axioma da conjunção, que fizemos logo acima, quando Martin-Löf diz "assuma A con j., B(x) con j. [x ∈ A]", pretende-se com isso dizer que os conjuntos A e B(x) são deriváveis no sistema ou podem ser introduzidos imediatamente, sem nenhuma premissa, sendo que a partir deles podemos fazer as hipóteses x ∈ A e y ∈ B(x), ou seja, aquela derivação se iniciaria assim: A con j. [x ∈ A] h B(x) con j. A con j. [x ∈ A] h [y ∈ B(x)] h ... Um outro exemplo, para ilustrarmos o emprego da regra de assunção, é a derivação do juízo correspondente ao princípio leibniziano de indiscernibilidade de idênticos, prometido na seção 3.4.7: Exemplo 4.3.1. Indiscernibilidade de idênticos. B(x) con j. [w ∈ B(x)]4 h A con j. [x ∈ A]1 h A con j. [y ∈ A]2 h A con j. I(A,x,y) con j. f I [z ∈ I(A,x,y)]3 h x = y ∈ A eI B(x) con j. A con j. [x ∈ A]1 h B(x) = B(y) subst w ∈ B(y) ic λw.w ∈ B(x)→ B(y) 4, iΠ λz.λw.w ∈ I(A,x,y)→ (B(x)→ B(y)) 3,iΠ λy.λz.λw.w ∈ (Πy ∈ A)I(A,x,y)→ (B(x)→ B(y)) 2,iΠ λx.λy.λz.λw.w ∈ (Πx ∈ A)(Πy ∈ A)I(A,x,y)→ (B(x)→ B(y)) 1, iΠ CAPÍTULO 4. CONJUNTOS E CATEGORIAS 92 Feitos esses esclarecimentos, colocamo-nos mais um vez, agora pela perspectiva dos juízos hipotéticos, diante do problema da pressuposição da prova proposicional, que ocorre com a noção que identifica proposições a conjuntos, não a categorias. Para se supor que um conjunto A possui um elemento, pressupõe-se a derivação de um juízo da forma A con j., que por sua vez embute a prescrição exaustiva dos seus elementos. Vendo pelo lado proposicional da história, isso acarreta na impossibilidade de se fazer conjecturas, uma vez que não há como formar uma proposição para a qual ainda não sabemos como verificá-la, i.e., para a qual não temos um método que nos diga como construir a sua prova. Parece que assim nos deparamos com uma limitação expressiva da teoria intuicionista de tipos. Em geral, num sistema formal de lógica, as regras indutivas de formação de fórmulas permitem construir fórmulas bem formadas cuja questão do seu valor de verdade ou verificabilidade se encontra ainda no âmbito da investigação, ou seja, por meio dessas fórmulas que se acordam à sintaxe do sistema em questão, pode-se exprimir conjecturas. Mesmo que não tenhamos uma prova para tais fórmulas, sabemos, por meio das regras indutivas que as definem, de qual sistema formal elas são originárias. Na teoria intuicionista de tipos, todavia, pelo fato de as regras de formação estarem enquadradas no aparato dedutivo do sistema, encontramo-nos alijados da possibilidade de derivar um juízo da forma A prop. para cuja proposição A não saibamos como prová-la. Levando a cabo essa consequência, seria razoável concluir que uma conjectura expressa pela linguagem da teoria intuicionista de tipos consistiria numa apropriação externa a essa linguagem. Consideremos, por exemplo, uma conjectura expressa por A. Ora, se fôssemos legitimamente fazer o juízo A prop., que seria derivá-lo no interior da teoria intuicionista de tipos, a proposição A já não seria uma conjectura, justamente porque a derivação daquele juízo exige que saibamos como construir um objeto de prova de A. Desse modo, a formulação de uma conjectura por meio da linguagem da teoria intuicionista de tipos só ocorreria fora do seu sistema formal, pois ele só consegue absorver proposições para as quais podemos fornecer uma prova. Num certo sentido, parece plausível exigir que se tenha uma prova para toda proposição formada, pois dessa maneira já se garantiria, desde o início, a correção do sistema 18. A despeito disso, essa maneira de se garantir a correção seria severamente restritiva, pois como vimos, isso nos impediria, ao lidarmos com algumas hipóteses, de utilizar o seu poder expressivo, a não ser que trabalhássemos, de uma maneira informal, fora dele. Mais uma vez, tudo indica que a noção de proposição não deve se identificar com a noção 18Vale notar que essa exigência não afetaria a sua consistência absoluta, a qual exige que pelo menos uma proposição não seja verdadeira. Por se poder derivar o juízo⊥ prop. e não se poder derivar o juízo⊥ é verdadeira, dado o significado da proposição ⊥, que diz não ser possível construir para ela um objeto de prova, a teoria intuicionista de tipos resguarda a propriedade de consistência absoluta (MARTIN-LÖF, 1996, p. 53). CAPÍTULO 4. CONJUNTOS E CATEGORIAS 93 de conjunto, mas com a de categoria. Chamamos a atenção para a seguinte afirmação de Nordström et al. (1990, p. 4) 19: É possível escrever uma especificação sem saber se há uma programa que a realize. Considere, por exemplo: (∃a ∈ N+)(∃b ∈ N+)(∃c ∈ N+)(∃n ∈ N+)(n > 2 & an +bn = cn) a qual é uma especificação de um programa que computa quatro números naturais tal que o último teorema de Fermat é falso 20. De acordo com as correspondências estabelecidas na seção 3.2, o que se chama aqui de especificação e programa equivaleria a proposição e prova, respectivamente. Tal passagem faz assim um apelo à possibilidade de se formar proposições que exprimam conjecturas no interior da teoria intuicionista de tipos. Dito de outro modo, seria possível que se derivasse, por meio das regras de formação, o juízo (∃a ∈ N+)(∃b ∈ N+)(∃c ∈ N+)(∃n ∈ N+)(n > 2 & an +bn = cn) prop., sem que para tal esteja pressuposto o conhecimento de como provar essa proposição. Para podermos expressar na teoria intuicionista de tipos um juízo hipotético da forma acima, precisamos introduzir formalmente a noção de categoria, a qual, como já dissemos, não exige a prescrição exaustiva de seus objetos. Martin-Löf (1984, p. 21 (11)) fala sobre essa noção apenas de maneira informal, sem apresentar as regras inferenciais que lhe dizem respeito, para tanto, referimo-nos à apresentação de Nordström et al. (1990, p. 137). 4.3.1 Tipos e categorias Até aqui, as regras de formação e introdução apresentadas nos davam condições de introduzir novos conjuntos e efetuar certas operações sobre eles, como produto cartesiano, união disjunta, etc.. O requisito básico para se formar um conjunto era o de prescrever como o seus elementos canônicos, bem como os seus elementos canônicos iguais, são formados, de modo que a relação de igualdade entre esses elementos fosse uma relação de equivalência. 19Esse livro consiste numa apresentação da teoria intuicionista de tipos que ressalta, sobretudo, as características que se relacionam com a teoria da computação. 20"It is possible to write down a specification without knowing if there is a program satisfying it. Consider for example: (∃a ∈ N+)(∃b ∈ N+)(∃c ∈ N+)(∃n ∈ N+)(n > 2 & an +bn = cn) which is a specification of a program which computes four natural numbers such that Fermat's last theorem is false". Vale observar que a demonstração de Andrew Wiles do último teorema de Fermat não havia ainda sido publicada, o que ocorreu em 1995. CAPÍTULO 4. CONJUNTOS E CATEGORIAS 94 Há uma outra maneira de se introduzir um conjunto, que é por meio da noção, mais primitiva, de tipo, assim, poderemos formar o tipo dos conjuntos, o tipo dos elementos de um conjunto, o tipo das proposições, etc.. De modo geral, "um tipo é uma coleção de objetos juntamente com uma relação de equivalência" 21 (NORDSTRÖM et al., 1990, p. 137). Nota-se que pedir apenas por uma relação de equivalência não exige uma prescrição precisa de como formar os objetos que habitam o tipo em questão, como se exigiria ao se introduzir um novo conjunto, que por meio de regras de introdução, seria demandada uma descrição exaustiva da construção dos seus elementos. Desse modo, no âmbito da distinção conjunto/categoria, um tipo se enquadra como uma categoria. De fato, daqui por diante chamaremos de tipo o que Martin-Löf (1984, p. 21 (11)) chama de categoria, que em suas palavras, é assim definida: Uma categoria é definida explicando-se o que um objeto da categoria é e quando dois desses objetos são iguais. Uma categoria não precisa ser um conjunto, desde que possamos compreender o que significa ser um objeto de uma dada categoria mesmo sem regras exaustivas para formar seus objetos (grifo do autor) 22. Apenas com as regras de formação para conjuntos, não podíamos fazer suposições envolvendo conjuntos arbitrários. Numa derivação só se podia assumir conjuntos que pudessem ser introduzidos diretamente, como o conjunto dos números naturais, por exemplo, ou que fossem conclusão de uma regra de formação. Assim, não tínhamos condições formais para expressar uma hipótese como "seja X um conjunto". Com a noção de tipo, porém, podemos, além de usála para apresentar uma teoria de conjuntos, expressar formalmente hipóteses da forma X con j. (NORDSTRÖM et al., 1990, p. 142). As quatro formas de juízo são relidas nas seguintes formas, com a noção de tipo: (1) A tipo A é um tipo; (2) A = B A e B são tipos iguais; (3) a : A a é um objeto do tipo A; (4) a = b : A a e b são objetos iguais do tipo A. Apresentemos então algumas regras que nos permitem lidar com esses juízos. O seguinte juízo pode ser introduzido diretamente, a partir de nenhuma premissa. Temos assim o que se chama de regra de formação de conjunto: Con j. tipo 21"a type is a collection of objects together with an equivalence relation". 22"A category is defined by explaining what an object of the category is and when two such objects are equal. A category need not be a set, since we can grasp what it means to be an object of a given category even without exhaustive rules for forming its objects". CAPÍTULO 4. CONJUNTOS E CATEGORIAS 95 Sendo A um conjunto, pode-se formar o tipo dos elementos de A: A : Con j. El(A) tipo A = B : Con j. El(A) = El(B) Se optarmos pelas seguintes definições, como fazem Nordström et al. (1990, p. 139), temos os nossos juízos habituais: A con j. ≡ A : Con j. a ∈ A ≡ a : El(A) Para a noção de tipo, temos a regra de assunção abaixo: Con j. tipo [X : Con j.] Podemos então derivar a hipótese de que um elemento arbitrário pertence a um conjunto X qualquer: Con j. tipo [X : Con j.] El(X) tipo [x : El(X)] De acordo com a definição acima, essa conclusão corresponde ao juízo hipotético x ∈ X . Assim, com a noção de tipo podemos fazer derivações hipotéticas cujo juízo concluído possa depender de um conjunto arbitrário, para o qual não temos ainda um método que instrua a construção dos seus elementos. Exemplo 4.3.2. Permutação do quantificador universal (NORDSTRÖM et al., 1990, p. 55). [w ∈ (Πx ∈ N)(Πy ∈ Bool) X(x,y)]1 N con j. [x ∈ N]2 h Ap(w,x) ∈ (Πy ∈ Bool) X(x,y) eΠ Bool con j. [y ∈ Bool]3 h Ap(Ap(w,x),y) ∈ X(x,y) eΠ λx.Ap(Ap(w,x),y) ∈ (Πx ∈ N) X(x,y) 2, iΠ λy.λx.Ap(Ap(w,x),y) ∈ (Πy ∈ Bool)(Πx ∈ N) X(x,y) 3, iΠ λw.λy.λx.Ap(Ap(w,x),y) ∈ (Πx ∈ N)(Πy ∈ Bool) X(x,y)→ (Πy ∈ Bool)(Πx ∈ N) X(x,y) 1, iΠ CAPÍTULO 4. CONJUNTOS E CATEGORIAS 96 A hipótese 1 deve ser obtida por meio da seguinte derivação: Con j. tipo [X(x,y) con j.] Bool con j. [y ∈ Bool] h (Πy ∈ Bool) X(x,y) con j. f Π N con j. [x ∈ N] h (Πx ∈ N)(Πy ∈ Bool) X(x,y) con j. f Π [w ∈ (Πx ∈ N)(Πy ∈ Bool) X(x,y)] h Desse modo, toda a derivação depende da assunção [X(x,y) con j.], ou seja, o conjunto (Πx ∈ N)(Πy ∈ Bool) X(x,y)→ (Πy ∈ Bool)(Πx ∈ N) X(x,y) não será vazio desde que possamos formar um conjunto X(x,y). 4.4 Hipótese e negação Diante do que já vimos, evidencia-se que a noção de proposições como conjuntos é diferente da noção de proposições como tipos, justamente por causa dos distintos pré-requisitos de formação estabelecidos para um tipo e para um conjunto. Fizemos notar, principalmente, que identificando uma proposição com o conjunto de suas provas não seria possível formar proposições que expressassem conjecturas, uma vez que para se formar um conjunto é preciso especificar como os seus elementos são construídos – consequentemente, não haveria uma proposição em relação à qual já não se soubesse como construir a sua prova. Em vista disso, há uma interessante passagem de Brouwer onde se suscita uma discussão sobre a implicação e a concepção de raciocínio hipotético a ela envolvida. Analisando-a podemos observar como a noção de hipótese pode ser afetada pela distinção conjunto/tipo. A passagem é a seguinte: Há um caso particular, no qual a cadeia de silogismos tem uma característica um pouco diferente, que parece mais próximo das figuras lógicas usuais e que de fato parece pressupor o juízo hipotético da lógica. Isso se dá quando uma estrutura dentro de uma estrutura é definida por alguma relação, sem se reconhecer imediatamente nisso os meios para construí-la. Aparentemente, nesse caso se assume que a estrutura requerida foi construída e se deriva dessa assunção uma cadeia de juízos hipotéticos. Mas isso não é mais do que aparente; o que realmente se faz nesse caso consiste no seguinte: começa-se por construir um sistema que satisfaz parte das relações requiridas e se tenta deduzir delas outras relações, de um modo que, no final, as relações deduzidas possam ser combinadas, num sistema de condições, com as relações que até o momento não foram usadas, tal que esse sistema de condições sirva de ponto de partida para a construção do sistema CAPÍTULO 4. CONJUNTOS E CATEGORIAS 97 requirido inicialmente. Somente por essa construção se demonstra que a condição pode ser realmente realizada (Brouwer apud (DALEN, 2004b, p. 4-5)) 23. Dalen (2004b, p. 6) interpreta essa passagem como uma elucidação do significado de uma implicação A→ B, que poderíamos descrever nos seguintes termos: primeiramente se apresenta uma proposição A; após uma "atividade de construção" (ATTEN, 2012, §2.2), obtém-se uma prova que cumpre com as suas especificações. Já então com essa prova em mãos, volta-se para a implicação, o que irá culminar na construção da prova de B e no corresponde intrincamento de estruturas respectivo a essas duas proposições. O que gostaríamos de salientar é que, de acordo com essa interpretação, não há espaço para construções hipotéticas, há somente transformações aplicadas sobre construções já realizadas, ou melhor dizendo, construções denotadas por juízos categóricos. Como Atten (2012, §2.2) esclarece, nessa interpretação uma implicação nada mais seria do que uma conjunção A∧B, exceto pelo fato de haver a informação adicional de que a construção da prova de B foi obtida a partir da prova de A, que seria o que chamamos de intrincamento de estruturas. Nesse contexto, Dalen (2004b, p. 4) faz a seguinte afirmação: Ele [Brouwer] criticou o costume aceito de se assumir uma estrutura para A (ou, em linguagem moderna, um modelo) e proceder "hipoteticamente". Ao invés de uma estrutura assumida, ele demandava uma estrutura construída 24. Evitando-se construções hipotéticas, que para Brouwer são de caráter lógico (ATTEN, 2012, §2.2), ele reafirmaria o seu posicionamento teórico (para o qual não temos aqui um espaço conveniente para entrarmos em detalhes) que diz respeito à prioridade do pensamento matemático sobre o pensamento lógico: De acordo com essa leitura, A→ B só pode ser asserida após uma construção para A ter sido encontrada. A ideia é clara, a saber: insistindo que seja fornecida uma construção que prove o antecedente, evita-se construções hipotéticas e o uso de lógica que elas requerem (ATTEN, 2012, §2.2, grifo nosso) 25. 23"There is a particular case, where the chain of syllogisms has a somewhat different character, that seems closer to the usual logical figures, and which indeed seems to presuppose the hypothetical judgment of logic. This is where a structure inside a structure is defined by some relation, while one does not recognize in it immediately the means to construct it. It seems that in that case one assumes that the required structure was constructed, and that one derives from this assumption a chain of hypothetical judgments. "But this is no more than apparent; what one really does in this case, consists of the following: one starts to construct a system that satisfies part of the required relations, and tries to deduce from these relations other ones in such a way that in the end the deduced relations can be combined with the ones that have so far not been used into a system of conditions, that may serve as a point of departure for the construction of the required system. Only by this construction it is shown that the condition can indeed be satisfied". 24"He [Brouwer] criticized the accepted custom to assume a structure for A (or, in modern language, a model), and to proceed "hypothetically". Instead of an assumed structure, he demanded a constructed structure". 25"On this reading A→ B can be asserted only after a construction for A has been found. The idea is clear: namely, to avoid hypothetical constructions, and the use of logic they require, by insisting that a construction be supplied that proves the antecedent". CAPÍTULO 4. CONJUNTOS E CATEGORIAS 98 Ora, se considerarmos a noção de proposições como conjuntos, vemos que na teoria intuicionista de tipos o significado da implicação (i.e., o "meaning explanation" dado a uma proposição da forma A ⊃ B) pode ser interpretado da mesma maneira que Dalen interpretou o significado da implicação concebida por Brouwer. Dado que a formação de uma proposição já pressuporia o conhecimento de como construir a sua prova, diante de uma hipótese [x ∈ A] já saberíamos como instanciar a variável x, ou seja, a derivação de uma proposição na forma de uma implicação seria o processo de transformação de uma prova de A (que temos em mãos) numa prova de B. Como uma manifestação a favor dessa posição, podemos citar a passagem abaixo, que se encontra numa carta, datada de 5 de março de 1976, de Martin-Löf a Dummett 26: Para explicar o significado de uma implicação A ⊃ B, nós temos que explicar qual é o propósito (função, papel) de uma prova canônica de A ⊃ B. E, particularizando a explicação dada acima [para o produto cartesiano de uma família de conjuntos (Πu ∈ A)B(u)], esse propósito é para ser aplicado a uma prova canônica da proposição denotada por A, assim produzindo uma prova canônica da proposição denotada por B. De modo algum é correto dizer que o significado de A⊃ B é determinado pela regra de introdução 27. A prova canônica da proposição A, mencionada nessa citação, não é uma prova assumida de A, mas uma prova já obtida, pois se o significado da implicação for dado por sua regra de eliminação (já que na citação se diz que o seu significado não é compreendido pela regra de introdução), i.e., λx.b ∈ A⊃ B a ∈ A Ap(λx.b,a) ∈ B isso quer dizer que já se logrou a construção da prova a. A despeito dos embates que essa interpretação do significado da implicação possa suscitar, gostaríamos de sugerir que, na teoria intuicionista de tipos, a implicação pode ser compreendida de duas maneiras, o que depende de considerarmos uma proposição como um conjunto ou como um tipo. Uma das interpretações consiste no que especificamos acima, pertinente ao âmbito das proposições como conjuntos e à privação de derivações hipotéticas. Já a outra interpretação permite o uso de proposições hipotéticas, ou seja, podem-se construir derivações que fazem uso de proposições para as quais ainda é uma questão pendente a existência de sua prova. 26Essa carta pode ser encontrada na página pessoal de Noam Zeilberger, no seguinte endereço: http://www.pps.univ-paris-diderot.fr/∼noam/archive/martin-lof--dummett.pdf . 27"To explain the meaning of an implication A ⊃ B, we must explain what is the purpose (function, role) of a canonical proof of A ⊃ B. And, specializing the explanation given above, this purpose is to be applied to a canonical proof of the proposition denoted by A, thereby yielding a canonical proof of the proposition denoted by B. In no way is it correct to say that the meaning of A⊃ B is determined by the introduction rule". CAPÍTULO 4. CONJUNTOS E CATEGORIAS 99 Se voltarmos para a derivação que expressa a permutação dos quantificadores universais, apresentada no exemplo 4.2, notamos que a derivação se procede por meio de uma construção hipotética a partir da hipótese que se tem uma prova w da proposição (∀x ∈ N)(∀y ∈ Bool) X(x,y). A implicação em que se conclui a derivação foi introduzida à revelia de se ter efetivamente construído a prova w, uma vez que para tal deveríamos especificar a formação dos elementos de um conjunto da forma X(x,y), que nesse exemplo não passa de um tipo. Em outras palavras, admitindo-se a noção de tipo, que não exige a prescrição exaustiva de seus elementos, podemos fazer construções hipotéticas a partir da assunção de proposições que não sabemos ainda se suas especificações são realizáveis. 4.4.1 O princípio de ex falso quodlibet A partir dessa elucidação do significado da implicação na teoria intuicionista de tipos, podemos levantar algumas observações sobre a negação, uma noção estreitamente vinculada à implicação, dado que, intuicionisticamente, interpreta-se a negação de uma proposição A como uma implicação que resulta numa contradição quando se assume a verdade de A, i.e., A⊃⊥. Como uma proposição é considerada verdadeira desde que possamos realizar a construção de sua prova, dizer que uma proposição é falsa significa ser impossível construir a sua prova. Nesse sentido, a demonstração da impossibilidade da construção de uma prova para uma proposição A é entendida como a derivação de uma contradição a partir da tentativa de construir uma prova de A. Apresentamos a seguir, na tentativa de esclarecer esses pontos, um exemplo (SUNDHOLM, 1994, p. 164) envolvendo negação: [z ∈ (A∧ ∼ A)]1 q(z) ∈ ∼ A e∧ q(z) ∈ A⊃ ⊥ de f . [z ∈ (A∧ ∼ A)]1 p(z) ∈ A e∧ Ap(q(z), p(z)) ∈ ⊥ e⊃ λz.Ap(q(z), p(z)) ∈ (A∧ ∼ A)⊃ ⊥ 1, i⊃ Começamos por assumir a proposição A ∧ ∼ A. Tratando-se de uma conjunção, a prova dessa proposição é constituída por um par ordenado, a partir do qual, por meio de uma função projeção, pode-se extrair separadamente tanto a prova p(z) de A quanto a prova q(z) de ∼ A. CAPÍTULO 4. CONJUNTOS E CATEGORIAS 100 Como a prova q(z) consiste num método que transforma qualquer prova de A no absurdo, a proposição A ∧ ∼ A implica um absurdo, basta aplicar o método que prova ∼ A ao objeto de prova de A, i.e., Ap(q(z), p(z)). Por fim, eliminando-se a hipótese introduzimos a implicação presente no juízo que conclui a derivação. Mas o que mais se importa notar nesse exemplo é que nunca existirá, por se tratar de uma contradição, uma prova para o antecedente da implicação (A ∧ ∼ A)⊃⊥, o que quer dizer que, no caso da negação, articula-se com uma noção de implicação em que a realização da construção da prova do antecedente não está pressuposta, mesmo no contexto da noção de proposições como conjuntos. Isso se explica por dois motivos: o primeiro é que a regra de formação do conjunto vazio não tem premissa, i.e., um conjunto vazio pode ser formado imediatamente; o segundo é que não há regra de introdução para o conjunto vazio. Assim podemos perfeitamente supor uma prova para a proposição contraditória que deu início à derivação acima: N con j. N0 con j. N con j. [x ∈ N]1 h N→ N0 con j. 1, f Π N∧(N→ N0) con j. f∧ [z ∈ (N∧(N→ N0))] h No que diz respeito à regra de eliminação do absurdo (MARTIN-LÖF, 1984, p. 67 (36)), também conhecida como ex falso quodlibet, é também preciso lidar com uma noção de implicação que não pressuponha a prova do antecedente. Dalen, por exemplo, ao comentar sobre a inserção dessa regra na lógica intuicionista de Heyting, nos diz que isso não seria possível se não houvesse uma concepção de implicação em que a hipótese do antecedente não envolvesse a realização efetiva de sua prova 28, ou seja, tal prova consistiria apenas numa promessa: No caso do Ex Falso, o peso do papel da implicação é colocado sobre a construção. Uma vez que o falsum ⊥ não tem prova, qualquer construção p estabelece ⊥→ A e, claro, também A→ (¬A→ B). Assim, a justificação de Heyting do Ex Falso é, apesar de hesitante, o argumento mais aceito hoje. Mas também é digno de nota que ela consiste no único caso em que a característica de 'promessa' de uma construção é explicitamente usada e em que nenhuma construção foi levada a cabo (DALEN, 2004b, p. 10-11, grifo nosso) 29. Como vimos, o juízo de formação⊥ prop. (ou N0 con j.) pode ser assumido imediatamente, sem o intermédio de nenhuma premissa, pois, de acordo com os critérios semânticos da teoria 28Dalen (2004b, p. 11) chama essa concepção de implicação de "visão moderna da implicação". 29"[T]he burden of the role of implication in the case of Ex Falso, is placed on the construction. Since falsum,⊥ has no proof, any construction p establishes⊥→ A, and of course also A→ (¬A→ B). Thus Heyting's justification of the Ex Falso principle is, albeit hesitant, the standard argument of today. But it is noteworthy that it is also the only case where the 'promise' character of a construction is explicitly used, and where no construction is carried out". CAPÍTULO 4. CONJUNTOS E CATEGORIAS 101 intuicionista de tipos, ele é evidente por si mesmo. Dado que o conhecimento de que algo é uma proposição se dá quando sabemos o que conta como a sua prova, a evidência do juízo ⊥ prop. consiste em nós termos conhecimento do que conta como uma prova de ⊥. Assim, de acordo com a elucidação semântica da proposição ⊥, ela consiste numa proposição que em condição alguma é verdadeira, ou seja, uma proposição para a qual não existe uma prova. Apesar de soar um pouco estranho, dizer que nada pode contar como uma prova de uma certa proposição é também dizer o que conta como a sua prova. Diríamos: "O que conta como uma prova da proposição ⊥?" "Nenhuma prova." Tal resposta, mesmo não nos fornecendo um critério para um possível objeto de prova (como no caso de uma proposição constituída por um dos conectivos lógicos até aqui analisados) não deixa de dizer o que conta como uma prova dessa proposição. Martin-Löf (1996, p. 51) faz a seguinte afirmação a respeito: [P]ara tornar isso [o juízo⊥ prop.] evidente, eu tenho que explicar o que conta como uma verificação de ⊥. A explicação é que não há nada que conta como uma verificação da proposição ⊥. Sob nenhuma condição ela é verdadeira 30. Assim, se uma regra de introdução promove a construção da prova da proposição que se infere, é inconcebível que haja uma regra de introdução para ⊥. Por essa razão não se deriva o juízo ⊥ é verdadeira, pois isso pressuporia uma regra de introdução que evidenciasse a existência de um objeto de prova para ⊥. A partir disso, podemos esclarecer a regra de eliminação de ⊥ (MARTIN-LÖF, 1996, p. 52): ⊥ é verdadeira C é verdadeira e ⊥ Essa inferência se justifica porque nos comprometemos a apresentar uma prova da proposição C assim que tivermos uma derivação do juízo⊥ é verdadeira. Contudo, como sabidamente esse juízo é de modo algum derivável, não há nada que possa abalar o compromisso que firmamos, por isso a inferência é válida. Martin-Löf (1996, p. 52) argumenta que essa inferência se assemelha ao que ocorre quando alguém diz "Eu comerei meu chapéu se você fizer isso e aquilo", 30"[T]o make it evident, I have to explain what counts as a verification of ⊥. The explanation is that there is nothing that counts as a verification of the proposition ⊥. Under no condition is it true". CAPÍTULO 4. CONJUNTOS E CATEGORIAS 102 sendo que a pessoa que o disse está certa de que o "isso e aquilo" que ela requisitou é impossível de ser realizado. Retornando à inderivabilidade do juízo que afirma o absurdo ser verdadeiro, ou que há uma prova para o absurdo, podemos ainda argumentar da seguinte maneira: uma proposição é verdadeira se, e somente se, o juízo que assere a sua verdade pode ser demonstrado, o que, por contraposição, nos dá: uma proposição é falsa se, e somente se, o juízo que assere a sua verdade não pode ser demonstrado 31. Tomando uma direção da bi-implicação, temos: se uma proposição é falsa, então o juízo que assere a sua verdade não pode ser demonstrado. Tendo em vista que ⊥ não possui prova, i.e., é falsa, segue-se que o juízo ⊥ é verdadeira não pode ser demonstrado. Assim compreendido o uso da proposição ⊥, diríamos que a teoria proposicional intuicionista que não admite derivações hipotéticas, como poderíamos interpretar a citação de Brouwer acima, teria problemas com a negação, já que o uso do ex falso quodlibet envolve a ideia de promessa de uma construção, ou seja, seria preciso assumir (i.e., fazer uma hipótese) a posse da prova de uma proposição que mais tarde se revelaria não poder ter sido provada. No entanto, com a noção de proposições como conjuntos, da teoria intuicionista de tipos, podemos, mesmo não admitindo derivações hipotéticas, manter o emprego do ex falso quodlibet. 4.5 Domínio e quantificação Observamos que a noção de conjunto se difere da de categoria por se exigir uma prescrição precisa da construção de seus elementos. Nesta seção gostaríamos de ressaltar que na teoria intuicionista de tipos o domínio sobre o qual uma proposição quantificada toma seus argumentos consiste num conjunto, sendo esta a condição que possibilita uma interpretação construtiva dos quantificadores. Na seção 3.4, apresentamos a seguinte regra de formação, que concerne a uma proposição universalmente quantificada: A con j. [x ∈ A] B(x) prop. (∀x ∈ A)B(x) prop. Argumentamos aqui que A não pode ser uma proposição (como nos permitiria a correspondência entre conjuntos e proposições), porque a interpretação construtiva do juízo (∀x∈A)B(x) prop. 31No sentido de que é impossível demonstrá-lo, não no sentido de que uma demonstração dele não pôde ainda ser dada. CAPÍTULO 4. CONJUNTOS E CATEGORIAS 103 exige que tenhamos um método que nos diga como construir os elementos pertencentes ao domínio que está sob a abrangência do quantificador. Tentaremos chegar a essa conclusão perpassando algumas noções de domínio que se contrastam à noção corroborada pela teoria intuicionista de tipos. Um conjunto se aproxima à noção lógica usual de domínio de um discurso, ou domínio de significatividade, na medida em que seus elementos servem de argumentos aos termos de uma proposição. Como Martin-Löf (1998a, p. 127) nos diz: [Um] objeto matemático é sempre dado juntamente com o seu tipo, isto é, ele não é apenas um objeto, ele é um objeto de um certo tipo. Isso pode ser considerado como uma formulação ao mesmo tempo mais simples e mais geral da doutrina de tipos, de 1903, de Russell, de acordo com a qual um tipo é o escopo de significatividade de uma função proposicional, pois, na teoria que eu estou prestes a descrever, toda função proposicional terá, de fato, um tipo como seu domínio (grifo do autor). 32 Nesse trecho, onde Martin-Löf diz tipo podemos ler conjunto, como a seguinte citação atesta: E quanto à palavra tipo, no sentido lógico dado a ela por Russel com a sua teoria ramificada (resp. simples) de tipos? Tipo é sinônimo de categoria ou de conjunto? Em alguns casos é sinônimo de um, aparentemente, e em outros, de outro. [...] Quando um tipo é definido como o escopo de significatividade de uma função proposicional, de modo que tipos são aquilo sobre o quê os quantificadores variam, então parece que um tipo é a mesma coisa que um conjunto (MARTIN-LÖF, 1984, p. 22 (12)) 33. Contudo, a teoria intuicionista de tipos não consiste num mero escalonamento ontológico, uma vez que um conjunto não se resume a uma demarcação de entidades subdivididas de acordo com interpretações proposicionais significativas. Um conjunto, entendido como domínio de significatividade, só existirá se ele puder prescrever a construção dos elementos que o habitam. Se observarmos, por exemplo, a teoria de modelos, a constituição semântica de uma linguagem formal ocorre pela eleição de um domínio sobre o qual (por meio da definição de uma interpretação) os termos da linguagem em questão adquirirá seus valores. Em geral, tais domínios simplesmente são apresentados como o conjunto de entidades pertinentes à teoria que se 32"[A] mathematical object is always given together with its type, thai is, it is not just an object, it is an object of a certain type. This may be regarded as a simpler and at the same time more general formulation of Russell's 1903 doctrine of types, according to which a typoe is the range of significance of a propositional function, because in the theory that I am about to describe every propositional function will indeed have a type as its domain". 33"What about the word type in the logical sense given to it by Russell with his ramified (resp. simple) theory of types? Is type synonymous with category or with set? In some cases with the one, it seems, and in other cases with the other. [...] When a type is defined as the range of significance of a propositional function, so that types are what the quantifiers range over, then it seems that a type is the same thing as a set". CAPÍTULO 4. CONJUNTOS E CATEGORIAS 104 pretende formalizar, de modo que, sendo a linguagem formal devidamente interpretada a partir dos elementos do domínio eleito, os axiomas da teoria serão verdadeiros. Nota-se, nos contextos análogos ao descrito acima, que os domínios levados em conta por uma interpretação não têm uma caracterização construtiva do seus elementos, i.e., não vem ao caso, como ocorreria na teoria de tipos, apresentar um método que construa esses elementos; simplesmente se apresenta um conjunto de axiomas, com base nos quais elegemos um domínio que os tornem verdadeiros. Noutras palavras, o domínio é mandatário da interpretação que satisfaz os axiomas da teoria formalizada. Uma vez validados os axiomas e teoremas da teoria em questão, não é de interesse investigar o estatuto ontológico (ou epistemológico) dos elementos desse domínio, aliás, a resposta que se daria ao inquérito de uma caracterização desses elementos se resumiria a dizer que eles se caracterizam por satisfazer um determinado conjunto de axiomas. Uma outra perspectiva a respeito da noção de domínio concerne a um ponto de vista endossado, sobretudo, por Frege e Russel, a qual se distingue por considerar um domínio único, e máximo, de todos os objetos. Frege não concordaria em estipular domínios específicos para diferentes contextos, de modo que a interpretação de uma teoria formal se restringisse a um conjunto de objetos delimitados de antemão. A seu ver, haveria um domínio único comportando todos os objetos, o qual seria a base semântica para qualquer interpretação dos termos de uma linguagem simbólica: "O domínio dos argumentos admissíveis deve [...] ser estendido para incluir qualquer objeto" 34 (FREGE, 1997, p. 213, §2). Essa conduta seria justificada pelo fato de ser possível construir sentenças apropriadas que por si mesmas são aptas a restringir os objetos significativamente assimiláveis pelos termos que nelas ocorrem, denunciando que a pré-eleição de domínios não passaria de uma análise lógica incompleta da linguagem. Se a sentença "Todos os homens são mortais", por exemplo, tivesse seu sentido traduzível na proposição quantificada ∀x(mortal(x)), seria preciso especificar o domínio ao qual a variável x recorreria para tomar os seus valores. Isso é necessário na medida em que o escopo de significatividade da propriedade de ser mortal é restrito a certos objetos, justamente aqueles que, quando instanciam aquela proposição, resultam numa proposição de valor de verdade determinado. Nesse caso, a falta de especificação de um domínio pertinente aos objetos envolvidos pelas propriedades consideradas na linguagem 34"The domain of admissible arguments must [...] be extended to include all objects whatever". CAPÍTULO 4. CONJUNTOS E CATEGORIAS 105 interpretada traz como consequência a produção de sentenças sem sentido. Por outro lado, se o sentido daquela sentença for vertido na forma ∀x(homem(x)⊃ mortal(x)), o antecedente da implicação, homem(x), funciona como um gerenciador do domínio, afirmando que se uma propriedade vale para certos objetos, outras propriedades deles se seguirão. Desse modo, independentemente do que a variável x toma como valor, o sentido da implicação como um todo não é afetado: pode-se sempre determinar o seu valor de verdade, o que atestaria, de acordo com Frege, a ilegitimidade de se estipular um domínio de objetos específico, coerente com as propriedades sob consideração. Tendo isso em vista, esse autor afirma: Todas as outras condições a serem impostas sobre o que pode ser substituído no lugar de uma letra germânica [no simbolismo de Frege, uma variável sob o escopo de um quantificador] devem ser incorporadas ao julgamento 35 (FREGE, 1967, p. 24). Numa outra passagem, em que Frege fala sobre a necessidade de se definir precisamente um conceito (tal que há sempre uma resposta determinada para o seu valor de verdade, independentemente do objeto que o instancia), ele reitera a mesma ideia: Se alguém deseja deixar fora de consideração todos os objetos que não são números, ele deve primeiro dizer o que ele entende por 'número', assim, uma extensão adicional para o termo é inadmissível. Tal restrição teria que ser incorporada na definição, a qual teria alguma forma como: 'Se a e b são números, então a+ b estão para [bedeutet]...' Nós teríamos uma definição condicional 36 (FREGE, 1997b, §65). Dentro dessa perspectiva, portanto, o domínio deve ser universal, não há um objeto que esteja fora dele. Contudo, se essa condição interfere no sentido de uma sentença, da forma ∀xP(x), por exemplo, de maneira que a atribuição de P a certos valores de x teria um valor de verdade indeterminado, essa deficiência deve ser remediada na própria sentença, não numa intromissão que estipularia um domínio particular de objetos. Russell (2008, §7) também compartilha dessa mesma ideia quando assevera que as variáveis de uma proposição da matemática pura devem ter "um campo absolutamente irrestrito", de 35"All other conditions to be imposed on what may be put in place of a German letter are to be incorporated into the judgment". 36"If anybody wants to exclude from consideration all objects that are not numbers, he must first say what he understands by 'number', and then further extension of the term is inadmissible. Such a restriction would have to be incorporated in the definition, which would thus take some such form as: 'If a and b are numbers, then a+ b stands for [bedeutet]...' We should have a conditional definition". CAPÍTULO 4. CONJUNTOS E CATEGORIAS 106 maneira que "qualquer entidade concebível possa substituir qualquer uma de nossas variáveis sem prejudicar a verdade de nossa proposição". Não importa do quê uma proposição trate, ela sempre será analisável em asserções válidas para um domínio único de objetos, sem que com isso seu sentido seja abalado. A referência textual a respeito dessa posição está na seguinte passagem dos Principles of Mathematics, onde fica evidente o apelo às formas proposicionais de relativização de domínio: É costume em matemática considerar nossas variáveis como restritas a certas classes: em Aritmética, por exemplo, elas são tidas como estando por números. Mas isso apenas quer dizer que se elas estão por números, elas satisfazem alguma fórmula, i.e., a hipótese de que são números implica a fórmula. Isso, sim, é o que realmente está sendo afirmado, e nessa proposição não é mais necessário que nossas variáveis sejam números: a implicação é igualmente verdadeira quando elas não os sejam 37 (RUSSELL, 2008, §7). Assim, descrevemos duas noções de domínio, uma em que os objetos de uma teoria formal são eleitos em vista da verdade de seus axiomas, e outra em que o domínio de objetos é único e universal, cabendo à linguagem as adequações que permitem expressar o sentido pretendido de suas sentenças, ainda que seus termos tenham uma interpretação irrestrita. Gostaríamos de observar, contudo, que essas noções de domínio se alicerçam sobre uma concepção ontológica realista, a qual pode ser notada no tratamento de proposições quantificadas sobre domínios infinitos. 4.5.1 Realismo ontológico Consideremos o sistema fregiano, que serve de exemplo paradigmático no que diz respeito à valoração verofuncional, em que as sentenças complexas (aqueles onde ocorrem os conectivos lógicos e a negação) representam funções de verdade das sentenças elementares que as constituem. Antes, um esclarecimento terminológico. A ontologia fregiana tem como base duas entidades mutuamente exclusivas: funções e objetos. Essas entidades possuem sua contraparte linguística, que são as expressões funcionais e os nomes, respectivamente. Dessa maneira, uma expressão funcional, que está no âmbito linguístico, denota uma função, que faz parte do âmbito ontológico; analogamente, um nome denota um objeto. A distinção entre o argumento e o valor de uma função é tal qual a que já estamos habituados. Isso nos leva à análise fregiana das 37"It is costumary in mathematics to regard our variables as restricted to certain classes: in Arithmetic, for instance, they are supposed to stand for numbers. But this only means that if they stand for numbers, they satisfy some formula, i.e. the hypothesis that they are numbers implies the formula. This, then, is what is really asserted, and in this proposition it is no longer necessary that our variables should be numbers: the implication holds equally when they are not so". CAPÍTULO 4. CONJUNTOS E CATEGORIAS 107 sentenças em função e argumento, em que a parte predicativa consiste numa expressão funcional que denota uma função, e o sujeito consiste num nome que denota um objeto (nos casos das predicações de primeira ordem, vale lembrar). Além disso, Frege utiliza a palavra "conceito" para se referir às funções que resultam em valores de verdade quando instanciadas por seus argumentos (FREGE, 1997, §3, p. 213), o que nos permite dizer que a referência da parte predicativa de uma sentença é um conceito, já que sentenças se referem a valores de verdade. Voltemos a atenção ao problema do realismo ontológico envolvido na quantificação. De acordo com Frege (1978, p. 54), o quantificador universal é um conceito de segunda ordem. Seu valor de verdade resulta da conjunção dos valores de verdade resultantes da instanciação de um conceito de primeira ordem por todos os objetos que existem. Por exemplo, a análise da proposição ∀x(homem(x)⊃ mortal(x)) tomaria o quantificador universal como um conceito de segunda ordem que consistiria em dizer que o conceito de primeira ordem homem(x) ⊃ mortal(x) é verdadeiro para todos os objetos que instanciem x. A variável quantificada percorre um domínio infinito, pois como vimos, esse domínio é universal. Isso quer dizer que a inspeção dos valores de verdade resultantes dessas instanciações está fora da alçada do conhecimento humano. Dummett (1973, p. 512) expressa isso com bastante clareza na seguinte passagem: O valor de verdade da sentença resultante é concebido por Frege como um produto infinito dos valores de verdade que resultam da aplicação do predicado de primeiro nível a cada um dos objetos no domínio da variável individual ligada pelo quantificador, o qual, dado que esse domínio é sempre tomado por ser aquilo que consiste em todos os objetos, absolutamente, equivale simplesmente a: aplicar o predicado a cada objeto que há. Se o resultado de aplicar o predicado a um ou mais objetos for falso, a quantificação universal é falsa; se o resultado de aplicá-lo for sempre verdadeiro, a quantificação universal é verdadeira. Nesse sentido, a afirmação universalmente quantificada terá sempre um valor de verdade determinado, apesar de que possamos não saber qual ele é (grifo nosso). 38 De modo geral, pensemos numa proposição P(x), tal que, para cada um dos objetos a, pode-se determinar se P(a) é verdadeira ou falsa. Desse modo, seria efetivamente determinável 38"The truth-value of the resulting sentence is thought of by Frege as an infinite product of the truth-values of the results of applying the first-level predicate to each of the objects in the domain of the individual variable bound by the quantifier, which, since this domain is always taken to be that consisting of all objects whatsoever, amounts simply to: applying the predicate to each object that there is. If the result of applying the predicate to any one or more objects is false, the universal quantification is false; if the result of applying it is always true, the universal quantification is true. In this way the universally quantified statement will always have a determinate truth-value, though we may not know what it is". CAPÍTULO 4. CONJUNTOS E CATEGORIAS 108 o valor de verdade da proposição universalmente quantificada ∀xP(x)? Não necessariamente. Se ela for falsa, o exame das proposições P(a1),P(a2), ...,P(ai), ... mais cedo ou mais tarde revelará o seu valor de verdade, mas, por outro lado, se ela for verdadeira, o exame nunca chegará a um fim. Isso ocorre porque para falsificar a sentença ∀xP(x) basta encontrar um único contraexemplo entre os objetos do domínio, ao contrário do que ocorre caso ela seja verdadeira, pois seria preciso examinar todos os objetos, ou seja, uma tarefa inexequível no caso de domínios infinitos, como é, na concepção fregiana, a noção de domínio universal. Há um outro ponto peculiar ao realismo ontológico fregiano. Como já observamos, nesse sistema um conceito consiste num caso particular de função, diz-se assim a extensão de um conceito ser formada por todos os objetos aos quais são atribuídos o valor de verdade o verdadeiro, ou, em outras palavras, um objeto a cai sob um conceito C(x) se a instância da variável "x" pelo argumento "a", i.e., "C(a)", denotar o verdadeiro. Diante disso, deve-se notar que com o aparato ontológico fregiano de domínio universal as funções necessariamente não podem pressupor a noção de domínio (i.e., domínios específicos, restritos aos argumentos e valores de uma função). Como um domínio consiste num determinado conjunto de objetos, dever-se-ia haver, para cada domínio, um conceito que o tivesse como extensão. Todavia, dado que um conceito é um caso particular de função, seria uma petição de princípio exigir que uma função fosse dada juntamente com os domínios constituídos por seus argumentos e valores, pois, afinal, para delimitarmos tais domínios, deveríamos apelar a um conceito, que, por sua vez, não passa de uma função. Ou seja, para fazermos uma apresentação usual de uma função, com seu domínio e contradomínio, como em f : A→ B, deveríamos definir as funções que tivessem os objetos pertencentes a A e B como suas respectivas extensões, de maneira que isso se seguiria sucessivamente, ao infinito. Assim, numa outra face do realismo fregiano, os objetos existem independentemente não apenas de um sujeito que os conheça, mas, também, de uma função que os construa – como exigem os intuicionistas, com a noção de método efetivo. Para Frege, a noção de objeto é simples a ponto de não poder ser propriamente definida. Sua tentativa de caracterizar essa noção se restringe a contrastá-la com a noção de função, ou CAPÍTULO 4. CONJUNTOS E CATEGORIAS 109 apenas a dizer que um objeto é aquilo que pode ser denotado por um nome: Quando admitimos, desse modo, objetos sem restrição como argumentos e como valores de função, surge a questão do que é que chamamos aqui de objeto. Considero impossível uma definição regular, já que temos aqui algo que, por sua simplicidade, não admite uma decomposição lógica. Só é possível indicar o que se quer dizer. Aqui só se pode dizer sucintamente: um objeto é tudo que não é uma função, de modo que uma expressão dele não contém lugar vazio (FREGE, 1978, p. 47). Na passagem a seguir, Frege toma como exemplo a proposição "Dois é um número primo", dividindo-a, linguisticamente, em duas partes constituintes, o sujeito "Dois" e o predicado "é um número primo". O sujeito é um nome próprio que denota um objeto, o número dois, que é um todo que não precisa de complementação, ao contrário da parte predicativa, que precisa ser complementada. Essa característica de uma entidade ser completa ou não Frege assimila pela denominação saturado/insaturado, respectivamente. Assim, ele nos diz: A essa diferença nos sinais corresponde, sem dúvida, uma diferença análoga no âmbito das referências: ao nome próprio corresponde o objeto; à parte predicativa, algo que eu chamo de conceito. Não se supõe que isso seja uma definição, pois a decomposição em uma parte saturada e uma parte insaturada deve ser considerada um fenômeno logicamente primitivo, devendo ser simplesmente aceita e não podendo ser reduzida a algo mais simples (FREGE, 1971, pp. 32-33) 39. Dito isso, poderíamos concluir que a noção de domínio único e a admissão irrestrita de argumentos de uma função condizem, e ao mesmo tempo conduzem, a um realismo ontológico. Por outro lado, uma das razões da teoria intuicionista de tipos não se enquadrar no âmbito realista se dá justamente por ela exigir que o domínio de significatividade de uma proposição seja construído – que nenhum domínio preexista a um método que instrua a sua construção. Para que uma proposição envolvendo quantificação universal, como, por exemplo, ∀xP(x), seja admitida, deve-se ter como premissa o conjunto que servirá de domínio a esse quantificador. Sendo esse domínio um conjunto, temos assim um método que nos instrui como formar os seus elementos, como nos diz o significado da forma de juízo A con j., vista na seção 3.1. Uma observação final que podemos fazer, nesta seção que se pautou por um contraste à teoria fregiana, diz respeito à semelhança entre as formas de juízo (∀x)(A(x)⊃ B(x)), (∃x)(A(x)∧B(x)), 39"To this difference in the signs there of course corresponds an analogous one in the realm of references: to the proper name there corresponds the object; to the predicative part, something I call a concept. This is not supposed to be a definition; for the decomposition into a saturated and an unsaturated part must be considered a logically primitive phenomenon which must simply be accepted and cannot be reduced to something simpler". CAPÍTULO 4. CONJUNTOS E CATEGORIAS 110 que possibilitariam, de acordo com Frege, gerenciar os elementos de um domínio universal, e as formas proposicionais quantificadas da teoria intuicionista de tipos (∀x ∈ A)B(x), (∃x ∈ A)B(x). Como vimos, na teoria intuicionista de tipos a quantificação universal e existencial são casos gerais da implicação e da conjunção, respectivamente, o que reflete, de certo modo, a noção fregiana de gerenciamento de domínio. A diferença é que, ao invés de se restringir a quantificação a uma parte do domínio (único e universal) que seria significativa aos predicados envolvidos, constrói-se (por critérios construtivos) os próprios elementos que comporão o domínio sob o alcance dos quantificadores.

Conclusão Nesta dissertação, expomos que as noções de conjunto e tipo (esta também denominada de categoria, por Martin-Löf), da teoria intuicionista de tipos, são distintas: se para formar um conjunto precisamos saber como formar os seus elementos, para formar um tipo basta sabermos o que seria um objeto arbitrário que o habita. Tendo isso em conta e considerando a correspondência Curry-Howard, procuramos argumentar que daí se originam duas noções proposicionais, uma que considera proposições como conjuntos, e outra que as considera como tipos, de modo que essas diferentes considerações implicam maneiras divergentes de se lidar com o que foi chamado de objeto de prova de uma proposição. Todavia, antes de chegarmos a esse ponto, perpassamos por três capítulos. No primeiro deles, apresentamos a concepção de demonstração matemática construtiva e como ela se envolve com a teoria da computação, observando que de uma demonstração enquadrada nos critérios construtivos se pode extrair um algorítimo que a representa. Esse ponto de envolvimento constitui um lugar interessante para compreendermos a teoria intuicionista de tipos, que tomada como uma formalização da matemática, possui um elegante sistema formal que permite expressar o aspecto computacional das demonstrações construtivas. O segundo capítulo abordou os elementos básicos que constituem a teoria intuicionista de tipos. Elucidamos o conceito de função e como ele está envolto com a noção de tipo, além de apresentarmos o cálculo lambda. Todas essas noções foram consideradas de maneira intuitiva, fora do tratamento formal recebido no capítulo subsequente. O capítulo três constituiu a exposição formal do sistema de Martin-Löf. Nele apresentamos suas regras de inferência e a elucidação do significado das suas diferentes formas de juízo. O último capítulo articulou com o tema central da dissertação, que é a concepção de proposição da teoria intuicionista de tipos. Tomando como ponto de partida a aporia filosófica que envolve a questão das proposições falsas, questionamos que a concepção de proposições como conjuntos não permite à teoria intuicionista de tipos, tal qual ela concebe suas regras e juízos de formação, expressar uma proposição para a qual já não se tenha uma prova (a não ser que essa proposição seja⊥). Isso se deve sobretudo ao fato de que a formação de um conjunto pressupõe 112 CONCLUSÃO 113 a prescrição de como formar os seus elementos. Assim, para desvincular o sentido proposicional dos critérios de construção da sua prova, é preciso recorrer à noção de tipo, por meio da qual, além de se poder exprimir proposições falsas sem colapsá-las extensionalmente com uma única proposição, podemos raciocinar por meio de conjecturas. Sobre esse último ponto, gastemos mais algumas palavras, que nos poderão sugerir algumas investigações futuras. A distinção entre conjuntos e tipos, e as consequentes conceituações das noções de proposições como conjuntos e proposições como tipos permitem à teoria intuicionista de tipos duas interpretações das constantes lógicas, as quais refletem, no interior do construtivismo, problemas concernentes ao raciocínio hipotético. Atten (2007, p. 3), ao fazer um apanhado histórico, no interior do construtivismo matemático, da noção de juízo hipotético e do princípio de ex falso quodlibet, apresenta a seguinte tabela: juízo hipotético Ex Falso Kolmogorov 1925 sim não Heyting 1930, 1956 sim sim Kolmogorov 1932 sim sim Johansson 1936 sim não Freudenthal 1937 não não Troelstra/van Dalen 1988 sim sim Se Martin-Löf figurasse nessa lista, sugeriríamos escrever a sua linha da seguinte maneira: juízo hipotético Ex Falso Martin-Löf sim/não sim Isso porque se interpretássemos uma proposição como um conjunto, os raciocínios hipotéticos assumiriam um outro caráter, uma vez que não poderíamos formar uma proposição para a qual já não soubéssemos como construir a sua prova. Por outro lado, entendendo uma proposição como um tipo, a formação de uma proposição não dependeria da caracterização exaustiva dos seus objetos de prova, permitindo-nos assim formar proposições para as quais a construção desses objetos careceria ainda de uma demonstração a ser apresentada. Em ambos os casos, o ex falso seria admitido, particularmente devido à maneira como o conjunto vazio (a proposição ⊥) é formado. Colocam-se assim duas situações: podemos rejeitar a ideia de proposições como conjuntos, por ela infringir uma caracterização proposicional básica, a saber, de que o sentido não se envolve com o estabelecimento da verdade, ou a assumimos como uma perspectiva interpretativa diferente das constantes lógicas. CONCLUSÃO 114 No segundo caso, Martin-Löf estaria acompanhado da concepção proposicional de Freudenthal, exceto pelo fato deste rejeitar o ex falso. A seguinte citação esclarece de forma precisa como a noção de proposições como conjuntos se concilia, no que toca à questão do raciocínio hipotético, à perspectiva de Freudenthal: Ele [Freudenthal] defendeu que a única interpretação que pode ser dada a A→ B é: 'Eu obtive, de fato, uma prova de A, e construindo sobre essa prova eu obtive, de fato, uma prova de B'. Assim entendido, o juízo hipotético é realmente um caso especial da conjunção. Isso claramente tornaria impossível asserir qualquer juízo hipotético com um antecedente para o qual não se pode obter uma prova, ou que apenas não foi provado, porque uma conjunção é asserível apenas se ambos os componentes que a formam o são. Em particular, na leitura de Freudenthal não se pode aceitar o ex f also. Freudenthal chegou a essa interpretação porque ele não considerava as proposições como entidades independentes. Ele admitiu apenas asserções, as quais ele considera como as últimas linhas de provas de fato dadas; ele defendeu que o significado de uma asserção só pode ser determinado por uma prova atual dela. Assim, não faz sentido exigir uma consideração do conteúdo de uma proposição à parte de sua prova. Contudo, uma tal consideração é precisamente o que um juízo hipotético requer; logo, a conclusão de Freudenthal (ATTEN, 2007, p. 4) 40. Resta-nos saber como a concepção proposicional defendida por Freudenthal se colocaria diante do problema do falso, argumentado na seção 4.1, já que, como está claro nesta citação, para ele significado e estabelecimento da verdade são noções que se confundem. Por fim, seria interessante considerarmos também a filosofia de Brouwer, pois, como visto nas seções passadas, ela é suscetível a interpretações envolvendo problemas semelhantes aos tratados aqui com relação a raciocínios hipotéticos. 40"He held that the only interpretation that can be given to A→ B is: 'I have actually obtained a proof of A and building on that proof I have then actually obtained a proof of B'. Thus understood, the hypothetical judgement is really a special case of conjunction. This of course would make it impossible to assert any hypothetical judgement with an unprovable or even merely unproved antecedent, because a conjunction is assertable only if both conjuncts are. In particular, on Freudenthal's reading one cannot accept ExFalso. Freudenthal arrived at this interpretation because he rejected propositions as independent entities. He accepted only assertions, which he thought of as last lines of actually given proofs; he held that the meaning of an assertion is only determined by an actual proof of it. Then it obviously makes no sense to ask for a consideration of the content of a proposition in abstraction from a proof of it. However, such a consideration is precisely what a hypothetical judgement requires; hence Freudenthal's conclusion". Referências Bibliográficas ANGIONI, L. Introdução à Teoria da Predicação em Aristóteles. Campinas, SP: Editora Unicamp, 2006. ATTEN, M. van. The hypothetical judgement in the history of intuitionistic logic. 2007. (Manuscrito). . The development of intuitionistic logic. In: ZALTA, E. N. (Ed.). The Stanford Encyclopedia of Philosophy. Winter 2012. [S.l.: s.n.], 2012. BEESON, M. Foundations of constructive mathematics: metamathematical studies. Berlin, Heidelberg: Springer-Verlag, 1985. BISHOP, E. Foundations of constructive analysis. New York: McGraw-Hill, 1967. BRIDGES, D. Constructive mathematics. In: ZALTA, E. N. (Ed.). The Stanford Encyclopedia of Philosophy. Fall 2012. [S.l.: s.n.], 2012. BRIDGES, D.; RICHMAN, F. Varieties of Constructive Mathematics. Cambridge: Cambridge University Press, 1987. CROSILLA, L. Introduzione alla teoria del tipi di Martin-löf. p. 1–33, 2003. (Manuscrito). CURRY, H.; FEYS, R. Combinatory Logic. Amsterdam: North-Holland Publishing Company, 1958. DALEN, D. van. Kolmogorov and Brouwer on constructive implication and the Ex Falso rule. Russian Math Surveys, v. 59, n. 2, p. 247–257, 2004b. DIJKSTRA, E. A discipline of programming. New Jersey: Prentice-Hall, 1976. DUMMETT, M. Frege: Philosophy of Language. New York: Harvard University Press, 1973. . Elements of Intuitionism. New York: Oxford University Press on Demand, 2000. 115 REFERÊNCIAS BIBLIOGRÁFICAS 116 DYBJER, P. et al. Epistemology versus Ontology: Essays on the Philosophy and Foundations of Mathematics in Honour of Per Martin-Löf. Dordrecht, Heidelberg, New York, London: Springer London, Limited, 2012. ENDERTON, H. Elements of Set Theory. New York: Academic Press, 1977. FREGE, G. Begriffsschrift, a formula language, modeled upon that of arithmetic, for pure thought. In: HEIJENOORT, J. V. (Ed.). From Frege to Gödel: A Source Book in Mathematical Logic, 1879-1931. Cambridge: Harvard University Press, 1967. p. 1–82. . On the Foundations of Geometry and Formal Theories of Arithmetic. New Haven and London: Yale University Press, 1971. . Função e conceito. In: ALCOFORADO, P. (Ed.). Lógica e filosofia da linguagem. São Paulo: EDUSP, 1978. cap. 1, p. 33–57. . Grundgesetze der arithmetik, volume I. In: BEANEY, M. (Ed.). The Frege Reader. Malden, MA: Blackwell Publishers Ltd, 1997. cap. 8, p. 194–223. . Grundgesetze der arithmetik, volume II. In: BEANEY, M. (Ed.). The Frege Reader. Malden, MA: Blackwell Publishers Ltd, 1997b. cap. 14, p. 258–289. . O pensamento, uma investigação lógica. In: ALCOFORADO, P. (Ed.). Investigações lógicas. Porto Alegre: EDIPUCRS, 2002. cap. 1, p. 9–39. . A negação, uma investigação lógica. In: ALCOFORADO, P. (Ed.). Investigações lógicas. Porto Alegre: EDIPUCRS, 2002b. cap. 1, p. 41–63. HEYTING, A. Intuitionism: an introduction. 3. ed. [S.l.]: North-Holland, 1971. . On intuitionistic logic. In: MANCOSU, P. (Ed.). From Brouwer To Hilbert: The Debate on the Foundations of Mathematics in the 1920s. New York: Oxford University Press, 1998. p. 306–310. HINDLEY, J.; SELDIN, J. Lambda-Calculus and Combinators: An Introduction. Cambridge: Cambridge University Press, 2008. HOARE, C. A. R. An axiomatic basis for computer programming. Communications of the ACM, v. 12, n. 10, p. 576–580, 1969. HOWARD, W. A. The formulae-as-types notion of construction. In: SELDIN, J. P.; HINDLEY, J. R. (Ed.). To H. B. Curry: essays on combinatory logic, lambda calculus and formalism. London, New York: Academic Press, 1980. p. 480–490. REFERÊNCIAS BIBLIOGRÁFICAS 117 KLEENE, S. C. On the interpretation of intuitionistic number theory. The Journal of Symbolic Logic, v. 10, n. 4, p. 109–124, 1945. KOLMOGOROV, A. On the interpretation of intuitionistic logic. In: MANCOSU, P. (Ed.). From Brouwer To Hilbert: The Debate on the Foundations of Mathematics in the 1920s. New York: Oxford University Press, 1998. p. 328–334. KREISEL, G. Foundations of intuitionistic logic. In: NAGEL E.; SUPPES, P.; TARSKI, A. (Ed.). Logic, methodology, and philosophy of science : proceedings of the 1960 International Congress. Stanford: Stanford University Press, 1962. p. 198–210. MARTIN-LÖF, P. Intuitionistic type theory (1980). Napoli: Bibliopolis, 1984. . Constructive mathematics and computer programming (1979). Philosophical Transactions of the Royal Society of London, v. 312, n. 1522, p. 501–518, 1984b. . On the meaning of the logical constants and the justification of the logical laws (1983). Nordic Journal of Philosophical Logic, v. 1, n. 1, p. 11–60, 1996. . An intuitionistic theory of types (1972). In: SAMBIN, G.; SMITH, J. (Ed.). Twenty Five Years of Constructive Type Theory. Oxford, New York: Clarendon Press, 1998a. cap. 8, p. 127–172. NORDSTRÖM, B.; PETERSSON, K.; SMITH, J. Programming in Martin-Löf's type theory: an introduction. [S.l.]: Clarendon Press, 1990. PLATÃO. Sofista. São Paulo: Abril S. A. Cultural e Industrial, 1972. (Coleção Os Pensadores). RANTA, A. Type-Theoretical Grammar. New York: Oxford University Press, USA, 1995. RUSSELL, B. The Principles of Mathematics. United States: Merchant Books, 2008. SALVESEN, A. Polymorphism and Monomorphism in Martin-Löf's Type Theory. [S.l.], 1989. SILVA, J. J. da. Filosofias da matemática. São Paulo: UNESP, 2007. SUNDHOLM, B. Vestiges of realism. In: MCGUINNESS B.; OLIVERI, G. (Ed.). The Philosophy of Michael Dummett. [S.l.]: Kluwer, 1994. p. 137–165. THOMPSON, S. Type theory and functional programming. [S.l.: s.n.], 1999. TROELSTRA, A. S. From constructivism to computer science. Theoretical Computer Science, v. 211, p. 233–252, 1999. REFERÊNCIAS BIBLIOGRÁFICAS 118 TROELSTRA, A. S.; DALEN, D. V. Constructivism in Mathematics: An Introduction. Netherlands: North-Holland, 1988. VALENTINI, S. Another introduction to Martin-löf's intuitionistic type theory. p. 1–20, 1996. (Manuscrito).