Tout d'abord, un commentaire. Votre question dépend en quelque sorte de la façon dont vous avez l'intention géométrique de signifier le mot "métrique". Il est assez courant d'utiliser l'ultramétrie en sémantique et en analyse statique, mais l'ultramétrie a tendance à avoir une interprétation combinatoire plutôt que géométrique. (Il s'agit d'une variante de l'observation selon laquelle la théorie des domaines a la saveur d'une utilisation combinatoire plutôt que géométrique de la topologie.)
Cela dit, je vais vous donner un exemple de la façon dont cela apparaît dans les épreuves de programme. Rappelons tout d'abord que dans une preuve de programme, nous voulons montrer qu'une formule décrivant un programme est vraie. En général, cette formule ne doit pas nécessairement être interprétée avec les booléens, mais peut être tirée des éléments de certains réseaux de valeurs de vérité. Alors une vraie formule est juste une qui est égale au sommet du réseau.
En outre, lors de la spécification de programmes très autoréférentiels (par exemple, des programmes qui utilisent largement le code auto-modifiable), les questions peuvent devenir très difficiles. Nous voulons généralement donner une spécification récursive du programme, mais il pourrait ne pas y avoir de structure inductive évidente sur laquelle accrocher la définition. Pour résoudre ce problème, il est souvent utile d'équiper le réseau de valeurs de vérité d'une structure métrique supplémentaire. Ensuite, si vous pouvez montrer que le prédicat dont vous voulez le point fixe est strictement contractuel, vous pouvez faire appel au théorème du point fixe de Banach pour conclure que le prédicat récursif que vous voulez est bien défini.
Le cas que je connais le mieux est appelé "indexation par étapes". Dans ce cadre, nous considérons notre réseau de valeurs de vérité comme des sous-ensembles fermés vers le bas de N , dont nous pouvons interpréter librement les éléments comme "les longueurs des séquences d'évaluation sur lesquelles la propriété se trouve". Les rencontres et les jointures sont des intersections et des unions, comme d'habitude, et puisque le réseau est complet, nous pouvons également définir l'implication Heyting. Le réseau peut également être équipé d'un système ultramétrique en laissant la distance entre deux éléments du réseau être 2 - n , où n est le plus petit élément dans un ensemble mais pas l'autre.ΩN2- nn
Ensuite, la carte de contraction de Banach thoerem nous dit qu'un prédicat contractif a un point fixe unique. Intuitivement, cela dit que si nous pouvons définir un prédicat qui tient pour n + 1 étapes en utilisant une version qui tient pour n étapes, alors nous avons en fait une définition non ambiguë d'un prédicat. Si nous montrons alors que le prédicat est égal à ⊤ = N , alors nous savons que le prédicat est toujours valable pour le programme.p : Ω → Ωn + 1n⊤ = N
Neel Krishnaswami
la source
Comme alternative aux CPO les plus couramment utilisés, Arnold et Nivat ont exploré les espaces métriques (complets) comme domaines de la sémantique dénotationnelle [1]. Dans sa thèse, Bonsangue [2] a exploré les dualités entre une telle sémantique dénotationnelle et une sémantique axiomatique. Je le mentionne ici car il donne une image globale très complète.
[1]: A Arnold, M Nivat: Interprétations métriques des arbres infinis et sémantique des programmes récursifs non déterministes. Théor. Comput. Sci. 11: 181-205 (1980).
[2]: MM Bonsangue Topological Duality in Semantics volume 8 de ENTCS, Elsevier 1998.
la source
En voici une (par coïncidence, en haut de ma file d'attente de lecture):
Swarat Chaudhuri, Sumit Gulwani et Roberto Lublinerman. Analyse de continuité des programmes. POPL 2010.
Les auteurs donnent une sémantique dénotationnelle pour un langage impératif avec des boucles simples, interprétant les expressions comme des fonctions à partir de valeurs dans un espace métrique de produit sous-jacent. Il s'agit de déterminer quels programmes représentent des fonctions continues, même en présence de "si" et de boucles. Ils permettent même des questions de continuité restreintes à certaines entrées et sorties. (Ceci est important pour analyser l'algorithme de Dijkstra, qui est continu dans sa longueur de chemin, mais pas dans le chemin réel.)
Je n'ai encore rien vu qui nécessite un espace métrique - il semble que cela aurait pu être fait jusqu'à présent en utilisant la topologie générale - mais je ne suis qu'à la page 3. :)
la source
Toutes mes excuses pour avoir ajouté une autre réponse, mais celle-ci n'a aucun rapport avec la mienne ci-dessus.
Un espace métrique que j'utilise régulièrement pour irriter (ou éduquer?) Les étudiants de la concurrence est celui des traces infinies. La topologie qu'elle induit est précisément celle qu'Alpern et Schneider [1] ont utilisée pour caractériser les propriétés de sécurité et de vivacité comme étant à limite fermée et dense, respectivement.
Rétrospectivement, je me rends compte que cette réponse manque également de l'ingrédient essentiel d'une structure en treillis ou poset. Une telle structure en treillis est cependant présente lors du déplacement d'un niveau vers ce que Clarkson et Schneider appellent des hyperpropriétés [2]. Au moment d'écrire ces lignes, je ne sais pas comment lever la métrique.
[1] B Alpern et FB Schneider. Définition de la vivacité. IPL, 21 (4): 181–185, 1985.
[2] MR Clarkson et FB Schneider. Hyperproperties. CSF, p51-65, IEEE, 2008.
la source