Les calculs lambda typés peuvent-ils exprimer * tous * les algorithmes en dessous d'une complexité donnée?


21

Je sais que la complexité de la plupart des variétés de calculs lambda typés sans la primitive combinateur Y est bornée, c'est-à-dire que seules les fonctions de complexité bornée peuvent être exprimées, la borne devenant plus grande à mesure que l'expressivité du système de types croît. Je rappelle que, par exemple, le calcul des constructions peut exprimer tout au plus une complexité doublement exponentielle.

Ma question concerne si les calculs lambda typés peuvent exprimer tous les algorithmes en dessous d'une certaine limite de complexité, ou seulement certains? Par exemple, existe-t-il des algorithmes à temps exponentiel qui ne peuvent être exprimés par aucun formalisme dans le Lambda Cube? Quelle est la "forme" de l'espace de complexité qui est complètement recouvert par différents sommets du Cube?


Je pense que la réponse est oui: nous pouvons exprimer la machine universelle de Turing à temps limité.
Kaveh

3
Êtes-vous sûr de la limite supérieure doublement exponentielle? Si je me souviens bien, le CoC est le "coin" le plus expressif du Lambda Cube, ce qui signifie qu'il comprend le système F (c'est-à-dire le -calcul polymorphe ), qui va bien au-delà du doublement exponentiel ... Quoi qu'il en soit, la réponse est définitivement oui , voir par exemple ma réponse ici . Je peux poster une réponse plus détaillée si vous le souhaitez. λ
Damiano Mazza

1
Désolé, j'ai mal lu votre question, vous n'êtes pas poser des questions sur certains dactylographiée -calculi mais spécifiquement sur le typé λ -calculi du Cube Lambda. Je crains qu'il n'y ait pas de complexité intéressante là, ils sont expressifs beaucoup trop, même si je sais que la réponse précise que pour le système F et le système F ω . λλω
Damiano Mazza

4
La fonction Ackermann peut être exprimée dans le calcul des constructions, il ne peut donc pas être exact que celle-ci soit simplement doublement exponentielle.
Andrej Bauer

Je pense que j'ai lu à ce sujet dans le livre Coq'Art mais je me trompe très probablement. Merci!
jkff

Réponses:


19

Je donnerai une réponse partielle, j'espère que d'autres rempliront les blancs.

Dans les -calculi typés, on peut donner un type aux représentations habituelles des données ( N a t pour les entiers d'église (unaires), S t r pour les chaînes binaires, B o o lλNatStrBool pour booléens) et je me demande quelle est la complexité des fonctions / problèmes représentables / décidables par des termes dactylographiés. Je ne connais une réponse précise que dans certains cas, et dans le cas simplement tapé, cela dépend de la convention utilisée lors de la définition de "représentable / décidable". Quoi qu'il en soit, je ne connais aucun cas où il existe une limite supérieure doublement exponentielle.

Tout d'abord, un bref récapitulatif sur le Lambda Cube. Ses 8 calculs sont obtenus en activant ou désactivant les 3 types de dépendances suivants au-dessus du -calculus (STLC) simplement typé :λ

  • polymorphisme : les termes peuvent dépendre des types;
  • types dépendants : les types peuvent dépendre de termes;
  • ordre supérieur : les types peuvent dépendre des types.

(La dépendance des termes aux termes est toujours là).

Ajout des rendements polymorphisme système F. Ici, vous pouvez taper les nombres entiers avec l' Église , et de même pour les chaînes binaires et les booléens. Girard a prouvé que les termes du système F de type N a tN a t représentent exactement les fonctions numériques dont la totalité est prouvable dans l'arithmétique Peano du second ordre. C'est à peu près les mathématiques de tous les jours (mais sans aucune forme de choix), donc la classe est énorme, la fonction Ackermann est une sorte de microbe minuscule, sans parler de la fonction 2Nat:=X.(XX)XXNatNat . Je ne connais aucune fonction numérique "naturelle" qui ne peut pas être représentée dans le système F. Les exemples sont généralement construits par diagonalisation ou par codage de la cohérence du PA de second ordre, ou d'autres astuces auto-référentielles (comme décider de l'égalitéβdans le système F lui-même). Bien sûr, dans le système F, vous pouvez convertir entre des entiers unairesNatet leur représentation binaireStr, puis tester par exemple si le premier bit est 1, donc la classe des problèmes décidables (en termes de typeStrBool) est tout aussi énorme.22nβNatStrStrBool

Les 3 autres calculs du Lambda Cube qui incluent le polymorphisme sont donc au moins aussi expressifs que le système F. Ceux-ci incluent le système F ω (polymorphisme + ordre supérieur), qui peut exprimer exactement les fonctions prouvées totales dans l'ordre supérieur PA, et le calcul de Constructions (CoC), qui est le calcul le plus expressif du Cube (toutes les dépendances sont activées). Je ne connais pas la caractérisation de l'expressivité du CoC en termes de théories arithmétiques ou de théories des ensembles, mais cela doit être assez effrayant :-)ω

Je suis beaucoup plus ignorant des calculs obtenus en activant simplement les types dépendants (essentiellement la théorie des types de Martin-Löf sans égalité et nombres naturels), les types d'ordre supérieur ou les deux. Dans ces calculs, les types sont puissants mais les termes ne peuvent pas accéder à ce pouvoir, donc je ne sais pas ce que vous obtenez. Sur le plan informatique, je ne pense pas que vous obteniez beaucoup plus d'expressivité qu'avec les types simples, mais je peux me tromper.

Il nous reste donc le STLC. Pour autant que je sache, c'est le seul calcul du Cube avec des limites supérieures de complexité intéressantes (c'est-à-dire pas monstrueusement grandes). Il y a une question sans réponse à ce sujet sur TCS.SE, et en fait la situation est un peu subtile.

XNat:=(XX)XXNatNatXNat[A]NatANat[A]Nat[A]Nat

MNat[A]BoolAMnM

222n,
StrMM

CSTStr[A]BoolACSTCSTLINTIMELINTIMECST


CST

CST=REG{0,1}

(Ceci est le théorème 3.4 dans leur article).

CSTLINTIMEλCST

(Soit dit en passant , j'ai partagé ma surprise dans cette réponse à une question de MO sur les "théorèmes inconnus").


3
J'ai fini de lire la réponse pour voir ce nom encore une fois. Je pense que vous m'avez déjà appris plus que mes propres professeurs. Internet est une belle chose. Merci.
MaiaVictor

@Damiano Mazza. J'ai aimé votre réponse, mais la notion d '"uniformité" n'est pas si banale, n'est-ce pas?
Andrea Asperti

λλ

12

Une réponse à une question que Damiano a posée dans son excellente réponse:

Je suis beaucoup plus ignorant des calculs obtenus en activant simplement les types dépendants (essentiellement la théorie des types de Martin-Löf sans égalité et nombres naturels), les types d'ordre supérieur ou les deux. Dans ces calculs, les types sont puissants mais les termes ne peuvent pas accéder à ce pouvoir, donc je ne sais pas ce que vous obtenez.

ω

λPλPω

Je ne sais pas quelle est la force du calcul imprédicatif des constructions, si vous ajoutez des types inductifs et de grandes éliminations.


Merci @Neel! Je suppose que nous avons maintenant l'image complète.
Damiano Mazza

7

Je vais essayer de compléter l'excellente réponse de Damiano.

λF HA2

TLTL

L

  • FHA2

  • TPAF

λPTIME

En général, il s'agit d'une large piste de recherche, je vais donc me référer à l'une de mes réponses précédentes .


3
Cf. Stephen Cook et Alasdair Urquhart " Interprétations fonctionnelles de l'arithmétique constructivement réalisable ", 1993, pour une variante théorique de la complexité.
Kaveh
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.