Logika algorytmiczna

Z testwiki
Przejdź do nawigacji Przejdź do wyszukiwania

Logika algorytmiczna – rachunek logiczny, ale także rachunek programów. Każdy program możemy rozpatrywać jako modalność. Jeśli K jest programem, a α jest formułą, to wyrażenie postaci Kα jest formułą algorytmiczną. W ten sposób mamy do czynienia ze splotem dwu algebr: algebry Boole’a i algebry programów. Znaczenie formuły Kα jest wyznaczone gdy znamy znaczenie (tj. semantykę) programu K i znaczenie formuły α. Przypomnijmy, że znaczeniem formuły (pierwszego rzędu) jest funkcja ze zbioru wartościowań zmiennych w zbiór {true, false} wartości logicznych. Znaczeniem programu jest funkcja (częściowa) ze zbioru wartościowań w ten sam zbiór. Teraz znaczenie formuły Kα możemy opisać w następujący sposób: dla danego wartościowania zmiennych v należy najpierw wyznaczyć wynik v obliczenia programu K i z kolei obliczyć wartość formuły α dla wartościowania v. W przypadku gdy obliczenie programu K dla wartościowania v nie daje wyniku, przyjmujemy, że wartością formuły Kα jest false.

W języku logiki algorytmicznej można wyrażać semantyczne własności programów. Aksjomaty i reguły wnioskowania AL pozwalają na dowodzenie prawdziwych (semantycznie) formuł algorytmicznych. Oznacza to, że uzyskujemy możliwość dowodzenia faktów postaci: ten program P jest poprawny względem warunku początkowego α i warunku końcowego β. Formuła taka ma postać implikacji (αPβ).

Zastosowania AL

Język określa się, podając jego alfabet i zbiór wyrażeń poprawnie zbudowanych WFF. W zbiorze wyrażeń poprawnie zbudowanych wyróżniamy trzy podzbiory: zbiór termów (albo zbiór wyrażeń nazwowych), zbiór formuł (zbiór wyrażeń logicznych) i zbiór programów (algorytmów).

Język logiki algorytmicznej jest konwolucją języka logiki pierwszego rzędu i języka programów.

Bibliografia