Term
Term (formuła nazwowa) – wyrażenie składające się ze zmiennych oraz symboli funkcyjnych o dowolnej argumentowości (w tym o argumentowości 0, czyli stałych) z pewnego ustalonego zbioru.
W wielu dziedzinach matematyki używa się określenia term na oznaczenie napisów (wyrażeń) formalnych, które mogą być traktowane jako nazwy na obiekty matematyczne. W większości przypadków znaczenie to można przedstawić jako termy w pewnym języku pierwszego rzędu, opisane poniżej.
Termy w logice matematycznej
[edytuj | edytuj kod]Termy języków pierwszego rzędu
[edytuj | edytuj kod]Niech będzie alfabetem języka pierwszego rzędu Tak więc jest zbiorem stałych, symboli funkcyjnych i symboli relacyjnych (predykatów). Każdy z tych symboli ma jednoznacznie określony charakter (tzn. wiadomo czy jest to stała, czy symbol funkcyjny czy też predykat) i każdy z symboli funkcyjnych i predykatów ma określoną arność (która jest dodatnią liczbą całkowitą). Język ma też ustaloną nieskończoną listę zmiennych (zwykle )[1].
Termy języka to elementy najmniejszego zbioru takiego, że:
- wszystkie stałe i zmienne należą do
- jeśli i jest -arnym symbolem funkcyjnym, to
Przykłady
[edytuj | edytuj kod]- Język teorii grup to gdzie jest binarnym symbolem funkcyjnym. Przykładami termów tego języka są:
- oraz a także
- Język ciał uporządkowanych to gdzie są binarnymi symbolami funkcyjnymi a jest binarnym symbolem relacyjnym. Przykładowe termy tego języka to
Języki wyższych rzędów
[edytuj | edytuj kod]W analogiczny sposób wprowadza się termy w językach wyższych rzędów, a także w bardziej skomplikowanych logikach.
Termy boole’owskie
[edytuj | edytuj kod]W teorii forsingu rozważa się termy boole’owskie wprowadzane następująco. Niech będzie zupełną algebrą Boole’a. Przez indukcję po wszystkich liczbach porządkowych definiujemy zbiory złożone z termów boole’owskich rangi :
- – gdy jest liczbą graniczną
- jest zbiorem wszystkich funkcji których dziedzina jest podzbiorem a wartości należą do algebry
Kładziemy też
Termy boole’owskie są nazwami na obiekty w rozszerzeniach generycznych modeli teorii mnogości w tym sensie, że każdy element rozszerzenia jest interpretacją pewnego termu przez filtr generyczny.
Termy w informatyce
[edytuj | edytuj kod]W sztucznej inteligencji term służy do reprezentowania bytów w programowaniu w logice (na przykład w języku Prolog).
W Prologu można wyróżnić kilka rodzajów termów:
- Liczby
Wszystkie wersje Prologu pozwalają na używanie liczb całkowitych (integer), np. 625, +12, -23. Większość wersji Prologu pozwala również na liczby zmiennoprzecinkowe, np. 6.43, -.245.
- Atomy
Atomy są stałą, która nie ma numerycznej wartości. Istnieją trzy warianty, w których można zapisać atom: a) sekwencja jednej lub wielu liter, numeru i podkreślnika zaczynająca się od małej litery, np. agata, dzisiaj_jest_sobota, a32_BCD b) sekwencja znaków zamkniętych w pojedynczy cudzysłów, może zawierać spacje, np. 'Dzisiaj jest sobota', '32abc', 'dzisiaj-jest-sobota' c) sekwencja jednego lub wielu znaków specjalnych: + - * / > < = & # @ :
- Zmienne
W zapytaniu zmienna jest używana do określenia termu, np. zmienna X może oznaczać atom - pies, liczbę - 23, term złożony czy listę. Nazwa zmiennej jest oznaczona przez dowolną sekwencję jednej lub więcej liter, cyfr, podkreślenia, zaczynając od wielkiej litery lub podkreślnika, np. X, Autor, Osoba_A, _123A. Zmienna składająca się z pojedynczego podkreślnika jest nazywana zmienną anonimową.
- Termy złożone
Termy te mają fundamentalne znaczenie przy pisaniu programów Prolog. Term złożony zaczyna się od atomu, znanego tutaj jako funktor. Po funktorze następuje sekwencja argumentów, które są ujęte w nawiasy. functor(term_1, term_2, ... ,term_n), n>=1 Liczbę argumentów w termie złożonym nazywa się arnością.
- Listy
Listy często traktuje się jako specjalny typ termu złożonego albo osobny typ w zależności od uczonego. Listy zawierają argumenty zamknięte w nawiasy kwadratowe, oddzielone przecinkami, np. [pies, kot, y, [p,q,R], miasto(poznan)]. Lista bez elementów jest pustą listą, którą zapisuje się w ten sposób [][2].
Często spotykaną interpretacją termu jest drzewo etykietowane.
Przypisy
[edytuj | edytuj kod]- ↑ W. Rautenberg (2010) A Concise Introduction to Mathematical Logic
- ↑ Bramer M. (2013) Logic Programming with Prolog