Innanzitutto, un commento. La tua domanda dipende da quanto geometricamente intendi significare la parola "metrica". È ragionevolmente comune usare l'ultrametrica in semantica e analisi statica, ma l'ultrametrica tende ad avere un'interpretazione combinatoria piuttosto che geometrica. (Questa è una variante dell'osservazione che la teoria dei domini ha il sapore di un uso combinatorio piuttosto che geometrico della topologia.)
Detto questo, ti darò un esempio di come questo si presenta nelle prove del programma. Innanzitutto, ricorda che in una prova del programma, vogliamo dimostrare che una formula che descrive un programma è valida. In generale, questa formula non deve necessariamente essere interpretata con i booleani, ma può essere disegnata dagli elementi di un reticolo di valori di verità. Quindi una vera formula è solo una che è uguale alla parte superiore del reticolo.
Inoltre, quando si specificano programmi molto autoreferenziali (ad esempio, programmi che fanno ampio uso di codici di auto-modifica) le questioni possono diventare molto difficili. In genere desideriamo fornire una specifica ricorsiva del programma, ma potrebbe non esserci una struttura induttiva ovvia su cui appendere la definizione. Per risolvere questo problema, è spesso utile dotare il reticolo del valore di verità con una struttura metrica aggiuntiva. Quindi, se puoi dimostrare che il predicato il cui punto fisso desiderato è strettamente contrattuale, puoi fare appello al teorema del punto fisso di Banach per concludere che il predicato ricorsivo che desideri è ben definito.
Il caso con cui ho più familiarità si chiama "indicizzazione dei passi". In questa impostazione, prendiamo il nostro reticolo di valori di verità come sottoinsiemi chiusi verso il basso di , i cui elementi possiamo liberamente interpretare come "le lunghezze delle sequenze di valutazione su cui la proprietà tiene". Le riunioni e le unioni sono intersezioni e unioni, come al solito, e poiché il reticolo è completo possiamo definire anche le implicazioni di Heyting. Il reticolo può anche essere dotato di un ultrametrico lasciando che la distanza tra due elementi reticolari sia , dove è l'elemento più piccolo in un insieme ma non nell'altro.Ω2 - n nN2−nn
Quindi, la mappa della contrazione di Banach ci dice che un predicato contrattuale ha un punto fisso unico. Intuitivamente, ciò dice che se possiamo definire un predicato che detiene per n + 1 passaggi usando una versione che detiene per n passaggi, allora in realtà abbiamo una definizione inequivocabile di un predicato. Se poi mostriamo che il predicato è uguale a ⊤ = N , allora sappiamo che il predicato vale sempre per il programma.p:Ω→Ωn+1n⊤=N