Logika wielu sortowań
Logika z wieloma sortowaniami może formalnie odzwierciedlać naszą intencję, by nie traktować wszechświata jako jednorodnego zbioru obiektów, ale podzielić go w sposób podobny do typów w programowaniu typu . Zarówno funkcjonalne, jak i asertywne „ części mowy ” w języku logiki odzwierciedlają ten typowy podział wszechświata, nawet na poziomie składni: podstawianie i przekazywanie argumentów może odbywać się tylko odpowiednio, z poszanowaniem „rodzajów”.
Istnieją różne sposoby sformalizowania wspomnianej powyżej intencji; logika wielosortowana to dowolny pakiet informacji, który ją spełnia. W większości przypadków podaje się:
- zestaw rodzajów, S
- odpowiednie uogólnienie pojęcia podpisu , aby móc obsłużyć dodatkowe informacje towarzyszące sortowaniu.
Dziedzina dyskursu dowolnej struktury tej sygnatury jest następnie dzielona na rozłączne podzbiory, po jednym dla każdego rodzaju.
Przykład
Podczas rozumowania na temat organizmów biologicznych warto rozróżnić dwa rodzaje: i . gdy funkcja ma sens, podobna funkcja zazwyczaj nie. wielosortowania , ale aby odrzucić terminy takie jak jako składniowo źle sformułowane.
Algebraizacja
Algebraizacja logiki z wieloma sortowaniami została wyjaśniona w artykule Caleiro i Gonçalvesa, który uogólnia abstrakcyjną logikę algebraiczną na przypadek z wieloma sortowaniami, ale może być również użyty jako materiał wprowadzający.
Logika uporządkowana według kolejności
Podczas gdy logika posortowana według wielu wymaga, aby dwa odrębne rodzaje miały rozłączne zbiory wszechświatów, logika posortowana według kolejności pozwala na zadeklarowanie jako podsortu innego rodzaju pisząc składnię W powyższym przykładzie z biologii pożądane jest zadeklarowanie
- ,
- ,
- ,
- ,
- ,
- ,
i tak dalej; por. zdjęcie.
Wszędzie tam, gdzie wymagany jest jakiś termin można podać termin dowolnego podrodzaju zasada podstawienia Liskowa . Na przykład, zakładając deklarację funkcji i stałą deklarację , termin jest całkowicie poprawne i ma sortowanie . W celu dostarczenia informacji, że matką psa jest z kolei pies, kolejna deklaracja może zostać wydane; nazywa się to przeciążaniem funkcji , podobnie jak przeciążanie w językach programowania .
Logikę uporządkowaną można przetłumaczyć na logikę nieposortowaną, dla dla każdej deklaracji podsortowania . Podejście odwrotne powiodło się w zautomatyzowanym dowodzeniu twierdzeń: w 1985 roku Christoph Walther mógł rozwiązać ówczesny problem wzorcowy, tłumacząc go na logikę posortowaną rzędem, a tym samym sprowadzając go do rzędu wielkości, ponieważ wiele predykatów jednoargumentowych zamieniło się w sortowania.
Aby włączyć logikę posortowaną według kolejności do automatycznego dowodzenia twierdzeń opartego na klauzulach, niezbędny jest odpowiedni algorytm unifikacyjny posortowany według kolejności , który dla dowolnych dwóch zadeklarowanych sortowań wymaga } ich przecięcie ma zostać zadeklarowane: jeśli i są zmiennymi typu i odpowiednio równanie ma rozwiązanie , gdzie .
Smolka uogólnił logikę sortowaną według kolejności, aby umożliwić polimorfizm parametryczny . W jego ramach deklaracje podsortowania są propagowane do wyrażeń typu złożonego. można zadeklarować parametryczną parametrem, jak w szablonie C++ ), od deklaracja podsortowania relacji oznacza że każda lista liczb całkowitych jest również listą liczb zmiennoprzecinkowych.
Schmidt-Schauß uogólnił logikę sortowania według kolejności, aby umożliwić deklaracje terminów. Jako przykład, zakładając deklaracje podsortowania ⊆ , deklaracja terminu, taka jak pozwala zadeklarować właściwość dodawania liczb całkowitych, której nie można wyrazić zwykłym przeciążeniem.
Zobacz też
Wczesne artykuły na temat logiki wielosortowanej obejmują:
- Wang, Hao (1952). „Logika wielu sortowanych teorii”. Dziennik logiki symbolicznej . 17 (2): 105–116. doi : 10.2307/2266241 . JSTOR 2266241 . , zebrane w autorskiej książce Computation, Logic, Philosophy. Zbiór esejów , Pekin: Science Press; Dordrecht: Kluwer Academic, 1990.
- Gilmore, PC (1958). „Dodatek do„ Logiki wielu posortowanych teorii ” ” (PDF) . Compositio Mathematica . 13 : 277–281.
- A. Oberschelp (1962). "Untersuchungen zur mehrsortigen Quantorenlogik" . Mathematische Annalen . 145 (4): 297–333. doi : 10.1007/bf01396685 . S2CID 123363080 . Zarchiwizowane od oryginału w dniu 2015-02-20 . Źródło 2013-09-11 .
- F. Jeffrey Pelletier (1972). „Kwantyfikacja sortowania i kwantyfikacja ograniczona” (PDF) . Studia filozoficzne . 23 (6): 400–404. doi : 10.1007/bf00355532 . S2CID 170303654 .
Linki zewnętrzne
- „Logika wielu sortowań”, pierwszy rozdział w notatkach do wykładów na temat procedur decyzyjnych autorstwa Calogero G. Zarby