Sztuczna inteligencja/SI Moduł 2/Składnia języka logiki: Różnice pomiędzy wersjami
Początkowa zawartość |
Nie podano opisu zmian |
||
Linia 16: | Linia 16: | ||
będą dalej stosowane. | będą dalej stosowane. | ||
* ''Symbole stałych:'' oznaczane za pomocą liter <math>a,b,c\dots</math>. | * '''Symbole stałych:''' oznaczane za pomocą liter <math>a,b,c\dots</math>. | ||
* ''Symbole zmiennych:'' oznaczane za pomocą liter <math>x,y,z\dots</math>. | * '''Symbole zmiennych:''' oznaczane za pomocą liter <math>x,y,z\dots</math>. | ||
* ''Symbole funkcyjne:'' oznaczane za pomocą liter <math>f,g,h\dots</math>. | * '''Symbole funkcyjne:''' oznaczane za pomocą liter <math>f,g,h\dots</math>.każdy symbol funkcyjny ma ustaloną liczbę argumentów. | ||
* '''Symbole predykatowe:''' oznaczane za pomocą liter <math>P,Q,R,\dots</math>; każdysymbol predykatowy ma ustaloną liczbę argumentów. | |||
* ''Symbole predykatowe:'' oznaczane za pomocą liter <math>P,Q,R,\dots</math>; | * '''Operatory logiczne:''' <math>\neg</math> (negacja), <math>\land</math> (koniunkcja),<math>\lor</math> (alternatywa), <math>\rightarrow</math> (implikacja), <math>\leftrightarrow</math>(równoważność). | ||
* '''Kwantyfikatory:''' kwantyfikator ogólny <math>\forall</math>, kwantyfikatorszczegółowy <math>\exists</math>. | |||
* ''Operatory logiczne:'' <math>\neg</math> (negacja), <math>\land</math> (koniunkcja), | * '''Nawiasy:''' <math>(</math>, <math>)</math>, w razie potrzeby także inne. | ||
<math>\lor</math> (alternatywa), <math> | |||
* ''Kwantyfikatory:'' kwantyfikator ogólny <math>\forall</math>, | |||
* ''Nawiasy:'' <math>(</math>, <math>)</math>, w razie potrzeby także inne. | |||
Będziemy czasem skrótowo mówić o symbolach stałych jako o stałych, o | Będziemy czasem skrótowo mówić o symbolach stałych jako o stałych, o | ||
symbolach zmiennych jako o zmiennych, o symbolach funkcyjnych jako o | symbolach zmiennych jako o zmiennych, o symbolach funkcyjnych jako o | ||
funkcjach, o symbolach predykatowych jako o predykatach, trzeba jednak | funkcjach, o symbolach predykatowych jako o predykatach, trzeba jednak | ||
pamiętać, że | pamiętać, że - jak długo nie określimy ich znaczenia - są to | ||
wyłącznie symbole, czyli pewne napisy, z których konstruowane są | wyłącznie symbole, czyli pewne napisy, z których konstruowane są | ||
bardziej złożone napisy (formuły) według opisanych dalej reguł. | bardziej złożone napisy (formuły) według opisanych dalej reguł. | ||
Linia 62: | Linia 57: | ||
* Jeśli <math>\alpha</math> jest formułą, to <math>\neg\alpha</math> jest formułą. | * Jeśli <math>\alpha</math> jest formułą, to <math>\neg\alpha</math> jest formułą. | ||
* Jeśli <math>\alpha</math> i <math>\beta</math> są formułami, to: | * Jeśli <math>\alpha</math> i <math>\beta</math> są formułami, to: | ||
** <math>\alpha\land\beta</math> jest formułą, | |||
** <math>\alpha\lor\beta</math> jest formułą, | |||
** <math>\alpha\rightarrow\beta</math> jest formułą, | |||
** <math>\alpha\leftrightarrow\beta</math> jest formułą. | |||
* Jeśli <math>\alpha</math> jest formułą i <math>x</math> jest symbolem zmiennej, to | * Jeśli <math>\alpha</math> jest formułą i <math>x</math> jest symbolem zmiennej, to | ||
** <math>(\forall x)\alpha</math> jest formułą, | |||
** <math>(\exists x)\alpha</math> jest formułą. | |||
Wersja z 14:24, 27 cze 2006
Składnia języka logiki
Obecnie przystąpimy do zdefiniowania składni języka logiki predykatów, w którym będą zapisywane formuły przetwarzane w procesie wnioskowania, Składnia określa reguły budowania poprawnych formuł, czyli takich, które mogą być przetwarzane przez system wnioskujący. Definiując składnię nie będziemy się zajmować znaczeniem poszczególnych symboli i konstrukcji języka, choć oczywiście znaczenie części z nich będzie dla nas oczywiste ze względu na powszechne doświadczenie z używaniem notacji logicznej np. do zapisu twierdzeń matematycznych.
Alfabet
Alfabet, czyli zbiór symboli języka logiki predykatów, obejmuje poniższe kategorie symboli. Dla każdej z nich podano oznaczenia, jakie będą dalej stosowane.
- Symbole stałych: oznaczane za pomocą liter .
- Symbole zmiennych: oznaczane za pomocą liter .
- Symbole funkcyjne: oznaczane za pomocą liter .każdy symbol funkcyjny ma ustaloną liczbę argumentów.
- Symbole predykatowe: oznaczane za pomocą liter ; każdysymbol predykatowy ma ustaloną liczbę argumentów.
- Operatory logiczne: (negacja), (koniunkcja), (alternatywa), (implikacja), (równoważność).
- Kwantyfikatory: kwantyfikator ogólny , kwantyfikatorszczegółowy .
- Nawiasy: , , w razie potrzeby także inne.
Będziemy czasem skrótowo mówić o symbolach stałych jako o stałych, o symbolach zmiennych jako o zmiennych, o symbolach funkcyjnych jako o funkcjach, o symbolach predykatowych jako o predykatach, trzeba jednak pamiętać, że - jak długo nie określimy ich znaczenia - są to wyłącznie symbole, czyli pewne napisy, z których konstruowane są bardziej złożone napisy (formuły) według opisanych dalej reguł.
Termy
Jak zobaczymy, formuły konstruowane są z symboli predykatowych stosowanych do argumentów. Poprawnej postaci argumenty dla symboli predykatowych nazywane są termami. Każda stała i zmienna jest termem. Ponadto, jeśli jest dowolnym -argumentowym symbolem funkcyjnym, a są dowolnymi termami, to także jest termem. Jak widać, stosując dowolny symbol funkcyjny do argumentów będących termami uzyskujemy term.
Formuły atomowe
Jeśli oznacza dowolny -argumentowy symbol predykatowy, a są dowolnymi termami, to jest formułą atomową. Formułą atomową jest więc dowolne zastosowanie symbolu predykatowego do argumentów będących termami.
Formuły złożone
Formuły złożone są konstruowane z formuł atomowych przez zastosowanie operatorów logicznych, kwantyfikatorów i nawiasów, zgodnie z określonymi poniżej zasadami.
- Jeśli jest formułą, to jest formułą.
- Jeśli jest formułą, to jest formułą.
- Jeśli i są formułami, to:
- jest formułą,
- jest formułą,
- jest formułą,
- jest formułą.
- Jeśli jest formułą i jest symbolem zmiennej, to
- jest formułą,
- jest formułą.