Linguagens indecidíveis existem na lógica construtivista?

24

A lógica construtivista é um sistema que remove a lei do meio excluído, bem como a dupla negação, como axiomas. É descrito na Wikipedia aqui e aqui . Em particular, o sistema não permite provas por contradição.

Eu estou querendo saber, alguém está familiarizado com como isso afeta os resultados em relação às máquinas de Turing e às linguagens formais? Percebo que quase todas as provas de que uma língua é indecidível dependem de provas por contradição. Tanto o argumento da diagonalização quanto o conceito de redução funcionam dessa maneira. Pode haver alguma prova "construtiva" da existência de uma linguagem indecidível? Em caso afirmativo, como seria?

EDIT: Para ser claro, meu entendimento da prova por contradição na lógica construtivista estava errado, e as respostas esclareceram isso.

jmite
fonte
5
Lógica intuicionista faz não provas Desautorizar que vão "Suponha que , derivar uma contradição, portanto, ¬ φ ". Você pode fazer isso por definição de ¬ ϕ , como ϕ . O que você não pode fazer é "Suponha ¬ φ , derivar uma contradição, portanto, φ ." ϕ¬ϕ¬ϕϕ¬ϕϕ
Miles Rout
2
Sua edição da pergunta sobre "mas ainda permite a prova de afirmações negativas por contradição" faz com que minha resposta pareça que estou apenas repetindo o que o autor da pergunta já sabia :(
gelisam 29/09/16
3
Em vez de modificar esta pergunta já respondida, de modo a fazer uma pergunta um pouco mais difícil, que tal criar (e responder) uma pergunta separada?
Gelisam 29/09/16
1
@gelisam Sim, como o autor da pergunta, eu definitivamente não apoio a edição. Eu vou reverter isso.
Jmite 29/09/16

Respostas:

18

Sim. Você não precisa do meio excluído para derivar uma contradição. Em particular, a diagonalização ainda funciona.

Aqui está um argumento típico de diagonalização de Conor McBride. Essa diagonalização específica é sobre incompletude, não indecidibilidade, mas a idéia é a mesma. O ponto importante a ser observado é que a contradição que ele deriva não é da forma "P e não P", mas da forma "x = x + 1".

Claro, agora você deve estar se perguntando se a lógica construtiva admite "x = x + 1" como uma contradição. Faz. A principal propriedade de uma contradição é que qualquer coisa segue uma contradição e, usando "x = x + 1", posso realmente provar construtivamente "x = y" para quaisquer dois números naturais.

Uma coisa que pode ser diferente em uma prova construtiva é a maneira pela qual "indecidível" é definido. Na lógica clássica, toda linguagem deve ser decidível ou indecidível; então "indecidível" significa simplesmente "não decidível". Na lógica construtiva, no entanto, "not" não é uma operação lógica primitiva, portanto não podemos expressar indecidibilidade dessa maneira. Em vez disso, dizemos que uma linguagem é indecidível se assumir que é decidível leva a uma contradição.

De fato, mesmo que "não" não seja primitivo na lógica construtiva, normalmente definimos "não P" como açúcar sintático para "P pode ser usado para construir uma contradição"; portanto, uma prova por contradição é realmente a única maneira de provar construtivamente uma declaração da forma "não P", como "a linguagem L é indecidível".

gelisam
fonte
P¬P¬(P¬P)
9

Ao falar sobre a provabilidade das afirmações clássicas construtivamente, muitas vezes importa como as formulamos. Formulações classicamente equivalentes não precisam ser equivalentes construtivamente. Também importa o que você quer dizer exatamente com uma prova construtiva, existem várias escolas de construtivismo.

Por exemplo, uma afirmação afirmando que existe uma função total incontestável não seria verdadeira naqueles sabores da matemática construtiva que pressupõem a Tese de Church-Turing (ou seja, toda função é computável) como um axioma.

Por outro lado, se você for cuidadoso, poderá formulá-lo de maneira que seja possível: para qualquer enumeração computável do total de funções computáveis, há uma função computável total que não está na enumeração.

Você pode encontrar este post de Andrej Bauer interessante.

ps: Também podemos observar a diagonalização da perspectiva teórica da categoria. Vejo

Kaveh
fonte
4

Eu acho que a prova cardinalidade ainda se mantém, demonstrando a existência de línguas que não são línguas computáveis (assim definitivamente indecidível).

A prova imediata é bem simples: ela simplesmente observa que as Máquinas de Turing são codificadas em algum alfabeto finito (pode ser também binário), então existem muitas e o conjunto de todos os idiomas em um alfabeto fixo (também pode ser binário novamente ) é o conjunto de todos os subconjuntos do conjunto de cadeias de caracteres sobre esse alfabeto - ou seja, o conjunto de potência de um conjunto contável e deve ser incontável. Portanto, há menos máquinas de Turing do que idiomas, portanto, algo não é computável.

Isso me parece bastante construtivo (embora seja impossível prosseguir fisicamente, ele fornece uma maneira de apontar para um conjunto de idiomas e saber que um não é computável).

Poderíamos então perguntar se é possível mostrar que conjuntos contáveis ​​e incontáveis ​​têm cardinalidade diferente, em particular, evitam a diagonalização. Eu acho que isso ainda é possível. O argumento original de Cantor também parece ser adequadamente construtivo.

Certamente, isso realmente precisa ser verificado por alguém que sabe muito mais sobre lógica construtivista.

Luke Mathieson
fonte
3

Penso que concordo com os outros que o argumento da diagonalização é construtivo, embora pelo que posso dizer haja alguma discordância sobre isso em alguns círculos.

Quero dizer, suponha que estamos analisando o conjunto de todos os idiomas decidíveis. Eu posso construir uma linguagem indecidível usando diagonalização. Vale a pena notar que eu não considero "construtivismo" e "finitismo" a mesma coisa, embora historicamente eu pense que esses eram arcos relacionados.

Primeiro, acho que todo mundo - mesmo construtivistas - concorda que o conjunto de linguagens decidíveis é contável. Como o conjunto de máquinas de Turing é contável (podemos codificar todas as TMs válidas usando cadeias finitas), esse contrato segue com bastante facilidade.

L1,L2,...,Lk,...

  1. 0i
  2. 0iLi0i
  3. 0iLi0i

nL1,L2,...,Ln

Então, tecnicamente, construímos uma linguagem que "não é decidível"; se um construtivista argumentaria que "não decidível" não deve ser confundido com "indecidível" é uma questão interessante, mas que estou mal preparada para responder.

Para esclarecer, o que acho que isso demonstra é o seguinte: podemos provar construtivamente que existem linguagens não decididas pelas máquinas de Turing. Como você escolhe interpretar isso dentro de uma estrutura específica é uma questão mais difícil.

Patrick87
fonte