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