Najpierw komentarz. Twoje pytanie zależy od tego, jak geometrycznie zamierzasz oznaczać słowo „metryczny”. Użycie ultrametrii w semantyce i analizie statycznej jest dość powszechne, ale ultrametryki mają raczej interpretację kombinatoryczną, a nie geometryczną. (Jest to wariant obserwacji, że teoria domen ma raczej kombinatoryczne niż geometryczne zastosowanie topologii).
Powiedziawszy to, dam ci przykład, jak to się dzieje w proofach programowych. Najpierw przypomnijmy sobie, że w proofie programowym chcemy pokazać, że obowiązuje formuła opisująca program. Ogólnie rzecz biorąc, ta formuła niekoniecznie musi być interpretowana za pomocą boolean, ale można ją wyciągnąć z elementów pewnej sieci wartości prawdy. Zatem prawdziwa formuła to tylko taka, która jest równa górze siatki.
Co więcej, przy określaniu programów samoreferencyjnych (na przykład programów, które szeroko wykorzystują kod samodopasowujący się) sprawy mogą być bardzo trudne. Zazwyczaj chcemy podać rekurencyjną specyfikację programu, ale może nie istnieć oczywista struktura indukcyjna, na której można zawiesić definicję. Aby rozwiązać ten problem, często pomocne jest wyposażenie sieci wartości prawdy w dodatkową strukturę metryczną. Następnie, jeśli możesz wykazać, że predykat, którego żądany punkt stały jest ściśle zwężający, możesz odwołać się do twierdzenia Banacha o punkcie stałym, aby stwierdzić, że żądany rekurencyjny predykat jest dobrze zdefiniowany.
Przypadek, który znam najbardziej, nazywa się „indeksowaniem kroków”. W tym ustawieniu bierzemy naszą siatkę wartości prawdy do zamkniętych w dół podzbiorów N , których elementy możemy luźno interpretować jako „długości sekwencji oceny, w których zachowuje się właściwość”. Spotkania i złączenia są jak zwykle skrzyżowaniami i związkami, a ponieważ sieć jest kompletna, możemy również zdefiniować implikację Heytinga. Kratę można również wyposażyć w ultrametryczny, pozwalając, aby odległość między dwoma elementami kratowymi wynosiła 2 - n , gdzie n jest najmniejszym elementem w jednym zestawie, ale nie drugim.ΩN2−nn
Następnie mapa skurczów Banacha mówi nam, że predykat skurczowy ma unikalny punkt stały. Intuicyjnie oznacza to, że jeśli możemy zdefiniować predykat, który obowiązuje dla n + 1 kroków, używając wersji, która zawiera dla n kroków, to w rzeczywistości mamy jednoznaczną definicję predykatu. Jeśli następnie pokażemy, że predykat jest równy ⊤ = N , to wiemy, że predykat zawsze zawiera program.p:Ω→Ωn+1n⊤=N
Jako alternatywa dla najczęściej używanych CPO, Arnold i Nivat badali (kompletne) przestrzenie metryczne jako dziedziny semantyki denotacyjnej [1]. W swojej pracy Bonsangue [2] badał dualności między semantyką denotacyjną i semantyką aksomatyczną. Wspominam o tym tutaj, ponieważ daje to bardzo kompleksowy ogólny obraz.
[1]: A Arnold, M. Nivat: Metryczne interpretacje nieskończonych drzew i semantyka nie deterministycznych programów rekurencyjnych. Teoria Comput. Sci. 11: 181-205 (1980).
[2]: MM Bonsangue Topological Duality in Semantics tom 8 ENTCS, Elsevier 1998.
źródło
Oto jeden (przypadkowo z góry mojej kolejki do czytania):
Swarat Chaudhuri, Sumit Gulwani i Roberto Lublinerman. Analiza ciągłości programów. POPL 2010.
Autorzy podają semantykę denotacyjną dla języka imperatywnego z prostymi pętlami, interpretując wyrażenia jako funkcje na podstawie wartości w podstawowej przestrzeni metrycznej produktu. Chodzi o to, aby określić, które programy reprezentują funkcje ciągłe, nawet w obecności „if” i pętli. Pozwalają nawet na pytania dotyczące ciągłości ograniczone do niektórych danych wejściowych i wyjściowych. (Jest to ważne przy analizie algorytmu Dijkstry, który ma ciągłą długość ścieżki, ale nie rzeczywistą ścieżkę.)
Nie widziałem jeszcze niczego, co wymagałoby przestrzeni metrycznej - wydaje się, że do tej pory można było to zrobić przy użyciu ogólnej topologii - ale jestem tylko na stronie 3. :)
źródło
Przepraszamy za dodanie kolejnej odpowiedzi, ale ta nie ma związku z moją drugą powyżej.
Przestrzenią metryczną, której rutynowo używam, by drażnić (a może edukować?) Studentów współbieżności, są nieskończone ślady. Indukowana przez niego topologia jest dokładnie tym, którego Alpern i Schneider [1] wykorzystali do scharakteryzowania właściwości bezpieczeństwa i żywotności odpowiednio jako zamknięte i gęste.
Patrząc wstecz, zdaję sobie sprawę, że w tej odpowiedzi również brakuje istotnego składnika struktury sieci lub struktury poety. Taka struktura sieci jest jednak obecna, gdy przechodzimy o jeden poziom wyżej, jak Clarkson i Schneider nazywają hiperproperty [2]. W chwili pisania tego tekstu nie jestem jednak pewien, jak podnieść metrykę.
[1] B Alpern i FB Schneider. Definiowanie żywotności. IPL, 21 (4): 181–185, 1985.
[2] MR Clarkson i FB Schneider. Hyperproperties. CSF, s. 51–65, IEEE, 2008.
źródło