Sztuczna inteligencja/SI Moduł 2/Składnia języka logiki: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Jarabas (dyskusja | edycje)
Początkowa zawartość
 
Jarabas (dyskusja | edycje)
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.
  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>; każdy
* '''Operatory logiczne:'''  <math>\neg</math> (negacja), <math>\land</math> (koniunkcja),<math>\lor</math> (alternatywa), <math>\rightarrow</math> (implikacja), <math>\leftrightarrow</math>(równoważność).
  symbol predykatowy ma ustaloną liczbę argumentów.
* '''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>\\rightarrow</math> (implikacja), <math>\leftrightarrow</math>
  (równoważność).
* ''Kwantyfikatory:''  kwantyfikator ogólny <math>\forall</math>, kwantyfikator
  szczegółowy <math>\exists</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 --- jak długo nie określimy ich znaczenia --- są to
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:
  \begin{itemize}
** <math>\alpha\land\beta</math> jest formułą,
  \item <math>\alpha\land\beta</math> jest formułą,
** <math>\alpha\lor\beta</math> jest formułą,
  \item <math>\alpha\lor\beta</math> jest formułą,
** <math>\alpha\rightarrow\beta</math> jest formułą,
  \item <math>\alpha\rightarrow\beta</math> jest formułą,
** <math>\alpha\leftrightarrow\beta</math> jest formułą.
  \item <math>\alpha\leftrightarrow\beta</math> jest formułą.
 
  \end{itemize}
* 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
  \begin{itemize}
** <math>(\forall x)\alpha</math> jest formułą,
  \item <math>(\forall x)\alpha</math> jest formułą,
** <math>(\exists x)\alpha</math> jest formułą.
  \item <math>(\exists x)\alpha</math> jest formułą.
  \end{itemize}

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 a,b,c.
  • Symbole zmiennych: oznaczane za pomocą liter x,y,z.
  • Symbole funkcyjne: oznaczane za pomocą liter f,g,h.każdy symbol funkcyjny ma ustaloną liczbę argumentów.
  • Symbole predykatowe: oznaczane za pomocą liter P,Q,R,; 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 f jest dowolnym m-argumentowym symbolem funkcyjnym, a t1,t2,,tm są dowolnymi termami, to także f(t1,t2,,tm) jest termem. Jak widać, stosując dowolny symbol funkcyjny do argumentów będących termami uzyskujemy term.

Formuły atomowe

Jeśli P oznacza dowolny m-argumentowy symbol predykatowy, a t1,t2,,tm są dowolnymi termami, to P(t1,t2,,tm) 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 x jest symbolem zmiennej, to
    • (x)α jest formułą,
    • (x)α jest formułą.