Référence pour l'indéfinissabilité du module de continuité fonctionnelle en PCF?

10

Quelqu'un peut-il m'indiquer la référence pour la non-définissabilité du module de continuité fonctionnelle en PCF? \ newcommand {\ bool} {\ mathsf {bool}}

Andrej Bauer a écrit un très bon article de blog explorant certains des problèmes plus en détail, mais je résumerai juste un peu de son article pour donner un peu de contexte à cette question. L'espace Baire est l'ensemble des séquences de nombres naturels, ou de manière équivalente l'ensemble des fonctions à partir de produits naturels à bécarres . Pour cette question, nous limiterons notre attention uniquement aux flux qui sont calculables.NNBNN

Maintenant, une fonction f:Bbool est continue si pour chaque xsB , la valeur de f(xs) ne dépend que d'un nombre fini des éléments de xs , et elle est continuellement calculable si nous pouvons réellement calculer une valeur supérieure lié au nombre d'éléments de xs nécessaires. Dans certains modèles de calcul, il est en fait possible d'écrire un programme modulus:(Bbool)BN qui prend une fonction calculable sur l'espace Baire et un élément de l'espace Baire, et redonne la limite supérieure du nombre d'éléments du flux.

Une astuce pour l'implémenter consiste à utiliser le stockage local pour enregistrer l'index maximum dans le flux vu:

let modulus f xs =
  let r = ref 0 in
  let ys = fun i -> (r := max i !r; xs i) in 
    f ys;
    !r

Bien sûr, l' ysargument n'est plus un programme purement fonctionnel. Mon intérêt pour ce programme vient du fait qu'il n'utilise que du magasin local, et est donc d'une extension pure. Je travaille (entre autres) sur la programmation impérative d'ordre supérieur et je conçois des théories de type qui pourraient classer cela comme une fonction pure.

Il y a aussi des exemples plus pratiques, impliquant des choses comme la mémorisation et la mise en commun des connexions, mais je trouve que c'est un très bel exemple.

Neel Krishnaswami
la source

Réponses:

4

La preuve est cachée quelque part dans Troelstra et van Dalen, Constructivisme en mathématiques, volume 2, je suppose. Plus probablement, il peut être trouvé dans les enquêtes de Troelstra , si vous pouvez mettre la main dessus.

Ça va comme ça. Supposons que nous puissions définir le module de continuité dans -calculus typé avec des opérateurs de points fixes. Ensuite, nous pourrions l'interpréter dans un modèle de réalisation théorique du domaine, par exemple dans où est le modèle graphique de Scott. Dans ce modèle, le principe de choix est valide. Mais on sait que avec l'extensionnalité des fonctions (qui tient dans tout modèle de réalisabilité) est incompatible avec l'existence d'un module de continuité. Si j'ai un instant, je remplirai les détails plus tard.P E R ( P ω ) P ω A C 2 , 0 A C 2 , 0λPER(Pω)PωAC2,0AC2,0

Voir aussi M. Escardo, T. Streicher: Dans le domaine de la réalisabilité, toutes les fonctions ne sont pas continues , publié dans Mathematical Logic Quarterly, volume 48, numéro 1, pages 41-44, 2002 .

Andrej Bauer
la source
Je l'ai cherché. C'est dans Troelstra et van Dalen "Constructivisme en mathématiques, volume 2", section 6.10, page 500. Je pense que je vais mettre cela sur mon blog parce qu'il est terriblement difficile à trouver.
Andrej Bauer
Merci! Qu'est-ce que l' ? AC2,0
Neel Krishnaswami
( x X y Y . R ( x , y ) ) f Y Xx X . R ( x , f ( x ) ) A C 2 , 0 A C ( N N N , N )AC(X,Y) est , puis est . (xXyY.R(x,y))fYXxX.R(x,f(x))AC2,0UNEC(NNN,N)
Andrej Bauer
Ok, voici la moitié de la preuve: math.andrej.com/2011/07/27/…
Andrej Bauer