Les langages indécidables existent-ils dans une logique constructiviste?


24

La logique constructiviste est un système qui supprime la loi du milieu exclu, ainsi que la double négation, en tant qu'axiomes. C'est décrit sur Wikipedia ici et ici . En particulier, le système ne permet pas de preuve par contradiction.

Je me demande, quelqu'un sait-il comment cela affecte les résultats concernant les machines de Turing et les langages formels? Je remarque que presque toutes les preuves qu'un langage est indécidable reposent sur des preuves par contradiction. L'argument de la diagonalisation et le concept de réduction fonctionnent de cette façon. Peut-il jamais y avoir une preuve "constructive" de l'existence d'un langage indécidable, et si oui, à quoi ressemblerait-il?

EDIT: Pour être clair, ma compréhension de la preuve par contradiction dans la logique constructiviste était fausse, et les réponses ont clarifié cela.


5
La logique intuitionniste n'interdit pas les preuves qui vont "Supposons , dérivent une contradiction, donc ". Vous pouvez le faire par définition de , comme . Ce que vous ne pouvez pas faire, c'est "Supposez , dérivez une contradiction, donc ". ¬ ϕ ¬ ϕ ϕ ¬ ϕ ϕϕ¬ϕ¬ϕϕ¬ϕϕ
Miles Rout

2
Votre modification de la question sur "mais autorise toujours la preuve de déclarations négatives par contradiction" donne l'impression que je répète ce que le demandeur savait déjà :(
gelisam

3
Au lieu de modifier cette question déjà répondue afin qu'elle pose une question un peu plus difficile, pourquoi ne pas créer (et répondre) une question distincte?
gelisam

1
@gelisam Ouais, en tant que demandeur, je ne supporte certainement pas l'édition. Je reviendrai.
jmite

Réponses:


18

Oui. Vous n'avez pas besoin du milieu exclu pour dériver une contradiction. En particulier, la diagonalisation fonctionne toujours.

Voici un argument de diagonalisation typique de Conor McBride. Cette diagonalisation particulière concerne l'incomplétude, pas l'indécidabilité, mais l'idée est la même. Le point important à noter est que la contradiction qu'il dérive n'est pas de la forme "P et non P", mais de la forme "x = x + 1".

Bien sûr, maintenant vous vous demandez peut-être si la logique constructive admet "x = x + 1" comme une contradiction. Cela fait. La propriété principale d'une contradiction est que tout découle d'une contradiction, et en utilisant "x = x + 1", je peux en effet prouver de manière constructive "x = y" pour deux nombres naturels quelconques.

Une chose qui pourrait être différente dans une preuve constructive est la manière dont "indécidable" est défini. Dans la logique classique, chaque langue doit être décidable ou indécidable; donc "indécidable" signifie simplement "non décidable". Dans la logique constructive, cependant, «non» n'est pas une opération logique primitive, nous ne pouvons donc pas exprimer l'indécidabilité de cette façon. Au lieu de cela, nous disons qu'une langue est indécidable si supposer qu'elle est décidable mène à une contradiction.

En fait, même si "non" n'est pas une primitive dans la logique constructive, nous définissons généralement "pas P" comme du sucre syntaxique pour "P peut être utilisé pour construire une contradiction", donc une preuve par contradiction est en fait le seul moyen de prouver de manière constructive un énoncé de la forme «pas P» tel que «le langage L est indécidable».


À mon avis, votre réponse ne fait pas clairement la distinction entre la loi du milieu exclu ( ) et le principe de non-contradiction ( ). Ce dernier s'inscrit dans une logique constructive / intuitionniste. ¬ ( P ¬ P )P¬P¬(P¬P)
Miles Rout

9

Lorsque nous parlons de la prouvabilité des énoncés classiques de manière constructive, il importe souvent de savoir comment nous les formulons. Les formulations classiquement équivalentes n'ont pas besoin d'être équivalentes de manière constructive. Il importe également ce que vous entendez exactement par une preuve constructive, il existe différentes écoles de constructivisme.

Par exemple, une déclaration indiquant qu'il existe une fonction totale non calculable ne serait pas vraie dans ces saveurs de mathématiques constructives qui supposent la thèse de Church-Turing (c'est-à-dire que chaque fonction est calculable) comme un axiome.

D'un autre côté, si vous faites attention, vous pouvez le formuler de telle sorte qu'il soit prouvable: pour toute énumération calculable de fonctions calculables totales, il existe une fonction calculable totale qui ne figure pas dans l'énumération.

Vous pouvez trouver cet article d'Andrej Bauer intéressant.

ps: Nous pouvons également regarder la diagonalisation du point de vue de la théorie des catégories. Voir


4

Je pense que la preuve de cardinalité tient toujours, démontrant l'existence de langages qui ne sont pas des langages calculables (donc définitivement indécidables).

La preuve immédiate est assez simple, elle observe simplement que les machines de Turing sont encodées dans un alphabet fini (pourrait aussi bien être binaire), donc il y en a beaucoup, et l'ensemble de toutes les langues sur un alphabet fixe (pourrait aussi bien être binaire à nouveau ) est l'ensemble de tous les sous-ensembles de l'ensemble de chaînes sur cet alphabet - c'est-à-dire l'ensemble de puissance d'un ensemble dénombrable, et doit être indénombrable. Par conséquent, il y a moins de machines de Turing qu'il n'y a de langues, donc quelque chose n'est pas calculable.

Cela me semble assez constructif (bien qu'il soit impossible de poursuivre physiquement, cela vous donne un moyen de pointer vers un ensemble de langues et de savoir que l'une n'est pas calculable).

On pourrait alors se demander s'il est possible de montrer que les ensembles dénombrables et non dénombrables ont une cardinalité différente, en particulier, évitent la diagonalisation. Je pense que c'est encore possible. L' argument originel de Cantor semble également convenablement constructif.

Bien sûr, cela doit vraiment être vérifié par quelqu'un qui en sait beaucoup plus sur la logique constructiviste.


3

Je pense que je suis d'accord avec d'autres pour dire que l'argument de la diagonalisation est constructif, bien que d'après ce que je peux dire, il y a un certain désaccord à ce sujet dans certains cercles.

Je veux dire, supposons que nous examinons l'ensemble de toutes les langues décidables. Je peux construire un langage indécidable en utilisant la diagonalisation. Il convient de noter que je ne considère pas du tout le "constructivisme" et le "finitisme", même si, historiquement, je pense qu'il s'agissait d'arcs connexes.

Premièrement, je pense que tout le monde - même les constructivistes - convient que l'ensemble des langages décidables est dénombrable. Étant donné que l'ensemble des machines de Turing est dénombrable (nous pouvons encoder toutes les MT valides en utilisant des chaînes finies), cet accord suit assez facilement.

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

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

nL1,L2,...,Ln

Donc, techniquement, nous avons construit un langage qui n'est "pas décidable"; La question de savoir si un constructiviste soutiendrait que "non décidable" ne devrait pas être confondu avec "indécidable" est une question intéressante, mais à laquelle je suis mal outillé pour répondre.

Pour clarifier, ce que je pense que cela démontre est le suivant: nous pouvons prouver de manière constructive qu'il existe des langages non décidés par les machines de Turing. Comment vous choisissez d'interpréter cela dans un cadre particulier est une question plus difficile.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.