Qu'entend-on par théorie des catégories qui ne sait pas encore comment gérer les fonctions d'ordre supérieur?


22

En lisant la réponse d' Uday Reddy à Quelle est la relation entre les foncteurs en SML et la théorie des catégories? États Uday

La théorie des catégories ne sait pas encore comment gérer les fonctions d'ordre supérieur. Un jour, ce sera le cas.

Comme je pensais que la théorie des catégories pouvait servir de base aux mathématiques, il devrait être possible de dériver toutes les mathématiques et les fonctions d'ordre supérieur.

Alors, que signifie la théorie des catégories qui ne sait pas encore comment gérer les fonctions d'ordre supérieur? Est-il valable de considérer la théorie des catégories comme fondement des mathématiques?


2
Cette discussion serait parfaite pour cstheory.stackexchange.com .
Martin Berger

Réponses:


15

Le problème des fonctions d'ordre supérieur est assez simple à énoncer.

  • Un constructeur de type comme n'est pas un foncteur. Ça aurait dû l'être. T(X)=[XX]

  • Une fonction polymorphe comme n'est pas une transformation naturelle. Ça aurait dû l'être.twiceX:T(X)T(X)=λf.ff

Si vous lisez le papier de la théorie de la catégorie d' origine de Eilenberg et MacLane , (PDF) les intuitions qu'ils présentent couvrent les cas. Mais leur théorie ne le fait pas. Leur était un grand papier pour 1945! Mais aujourd'hui, nous en avons besoin de plus.

La réaction des théoriciens des catégories à ces questions est un peu perplexe. Ils agissent comme si les opérations d'ordre supérieur formaient une idée informatique; ils sont sans conséquence pour les mathématiques. Si tel est le cas, alors une fondation en mathématiques ne serait pas assez bonne pour une fondation en informatique.

Mais je n'y crois pas sérieusement. Je pense que les fonctions d'ordre supérieur seraient également très importantes pour les mathématiques. Mais ils n'ont pas été sérieusement explorés. J'espère qu'un jour elles seront explorées et que les limites de la théorie des catégories se réaliseront.


2
Il est étonnant qu'ils ne considèrent pas les fonctions d'ordre supérieur intéressantes, compte tenu de la profondeur qu'elles parcourent lors de l'exploration de l'algèbre de dimension supérieure, de la théorie des catégories n et autres. Comparativement, les fonctions d'ordre supérieur semblent si terre-à-terre. Surtout, si cette terre implique des programmes Haskell.
Dave Clarke

5
nAAAA

4
T(X)AB

1
+1 C'est vraiment intéressant. Connaissez-vous une référence qui traite de ces questions plus en détail?
Kaveh

3
λππ

9

[Cette deuxième réponse présente un aperçu de ce à quoi pourrait ressembler une «théorie des catégories 2.0», qui traite correctement les fonctions d'ordre supérieur.]

Nous savons depuis longtemps comment traiter les fonctions d'ordre supérieur en raisonnant à leur sujet.

  • Lorsqu'une structure algébrique a des opérations d'ordre supérieur, les homomorphismes ne fonctionnent pas. Nous devons plutôt utiliser des relations logiques . En d'autres termes, nous devons passer de " fonctions préservant la structure" à " relations préservant la structure".

  • Pour parler de transformations "uniformes" ou "données simultanément" sur des types d'ordre supérieur, la naturalité ne fonctionne pas. Nous devons plutôt utiliser la paramétricité relationnelle . En d'autres termes, nous devons passer de "familles préservant tous les morphismes " à "familles préservant toutes les relations logiques ".

Une brève introduction à ces problèmes se trouve dans la section de Peter O'Hearn sur la "Paramétrie relationnelle" dans les domaines et la sémantique dénotationnelle: histoire, réalisations et problèmes ouverts (CiteSeerX) .

Je pourrais également ajouter que le raisonnement sur l' état est l'endroit où les fonctions d'ordre supérieur apparaissent en évidence. Les théoriciens des automates ont été les premiers à reconnaître que les homomorphismes ne fonctionnent pas correctement, dans un article historique intitulé Les produits des automates et le problème de la couverture . Ils ont utilisé des termes comme «homomorphismes faibles» et «relations de couverture» pour désigner des relations logiques. En temps voulu, des termes comme «simulation» et «bisimulation» ont été utilisés pour les désigner. L'article d'enquête de Davide Sangiorgi: Sur les origines de la bisimulation et de la coinduction couvre toute cette histoire ancienne et plus encore.

La nécessité d'un raisonnement relationnel se retrouve à plusieurs reprises dans le raisonnement sur l'état, en particulier la programmation impérative . Très peu de gens remarquent que l'humble "point-virgule" est une opération d'ordre supérieur. Donc, vous ne pouvez pas vous lancer dans la réflexion sur les programmes impératifs sans savoir comment gérer les fonctions d'ordre supérieur. Nous continuons d'ignorer les problèmes de programmation étatique et impérative dans la croyance erronée que les mathématiques ont toutes les réponses. Donc, si les mathématiciens ne comprennent pas l'état, ça ne doit pas être bon! Rien ne pouvait être plus loin de la vérité. L'État est au cœur de l'informatique. Nous ferons progresser la science en général en montrant aux gens comment gérer l'État!


@GuyCoder, je pense que c'est une bonne idée. Soit dit en passant, je pense que telle ou telle question serait également d'actualité pour l' informatique théorique au cas où vous préféreriez la publier ici.
Kaveh

Après avoir discuté avec Uday, une nouvelle question ne sera pas spécifiquement posée pour cette deuxième réponse. :)
Guy Coder

L'État est relativiste.
Shelby Moore III
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.