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

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Jarabas (dyskusja | edycje)
Nowa zawartość
m Zastępowanie tekstu – „<math> ” na „<math>”
 
(Nie pokazano 3 pośrednich wersji utworzonych przez tego samego użytkownika)
Linia 22: Linia 22:
Będziemy ilustrować definicję semantyki języka logiki posługując się
Będziemy ilustrować definicję semantyki języka logiki posługując się
prostym przykładem świata klocków, zilustrowanym na rysunku. Dziedzina
prostym przykładem świata klocków, zilustrowanym na rysunku. Dziedzina
jest w tym przypadku zbiorem pięciu klocków <math>\{A,B,C,D,E\} \,</math>.
jest w tym przypadku zbiorem pięciu klocków <math>\{A,B,C,D,E\}</math>,.


\begin{figure}[h]
\begin{figure}[h]
Linia 30: Linia 30:
=== Interpretacja symboli ===
=== Interpretacja symboli ===


Mając ustaloną pewną dziedzinę <math>X \,</math>, symbole alfabetu języka predykatów
Mając ustaloną pewną dziedzinę <math>X</math>,, symbole alfabetu języka predykatów
interpretujemy następująco.
interpretujemy następująco.




* '''Symbole stałych:'''  symbol stałej <math>a \,</math> oznacza pewien obiekt z dziedziny <math>I(a)\in X \,</math>.
* '''Symbole stałych:'''  symbol stałej <math>a</math>, oznacza pewien obiekt z dziedziny <math>I(a)\in X</math>,.
* '''Symbole funkcyjne:'''  <math>m \,</math>-argumentowy symbol funkcyjny <math>f \,</math> oznacza <math>m \,</math>-argumentowa funkcje <math>I(f): X^m\mapsto X \,</math>.
* '''Symbole funkcyjne:'''  <math>m</math>,-argumentowy symbol funkcyjny <math>f</math>, oznacza <math>m</math>,-argumentowa funkcje <math>I(f): X^m\mapsto X</math>,.
* '''Symbole predykatowe:'''  <math>m \,</math>-argumentowy symbol predykatowy <math>P \,</math> oznacza <math>m \,</math>-argumentowa relacje <math>I(P)\subset X^m \,</math> (równoważnie, możemy przyjąć, że <math>P \,</math> oznacza funkcje <math>I(P): X^m\mapsto\{0,1\} \,</math>).
* '''Symbole predykatowe:'''  <math>m</math>,-argumentowy symbol predykatowy <math>P</math>, oznacza <math>m</math>,-argumentowa relacje <math>I(P)\subset X^m</math>, (równoważnie, możemy przyjąć, że <math>P</math>, oznacza funkcje <math>I(P): X^m\mapsto\{0,1\}</math>,).


Przypomnijmy sobie, że relacją <math>m \,</math> argumentową określoną na zbiorze
Przypomnijmy sobie, że relacją <math>m</math>, argumentową określoną na zbiorze
<math>X \,</math> jest dowolny podzbior iloczynu kartezjanskiego <math>X^m \,</math>. Dla krotki
<math>X</math>, jest dowolny podzbior iloczynu kartezjanskiego <math>X^m</math>,. Dla krotki
złożonej z <math>m \,</math> elementow zbioru <math>X \,</math>, która należy do relacji, mówimy
złożonej z <math>m</math>, elementow zbioru <math>X</math>,, która należy do relacji, mówimy
także, że relacja jest spełniona.
także, że relacja jest spełniona.


Linia 50: Linia 50:
formuły za pomocą ''wartościowania''. Wartościowanie jest dowolnym
formuły za pomocą ''wartościowania''. Wartościowanie jest dowolnym
odwzorowaniem symboli zmiennych na elementy dziedziny - dla symbolu
odwzorowaniem symboli zmiennych na elementy dziedziny - dla symbolu
zmiennej <math>x \,</math> wartosciowanie <math>v \,</math> określa wartosc <math>v(x)\in X \,</math>.   
zmiennej <math>x</math>, wartosciowanie <math>v</math>, określa wartosc <math>v(x)\in X</math>,.   


'''Przykład: świat klocków.'''  
'''Przykład: świat klocków.'''  
Rozważmy język logiki predykatów, którego alfabet zawiera symbole
Rozważmy język logiki predykatów, którego alfabet zawiera symbole
stałych <math>\{a,b,c,d,e\} \,</math>. Możemy przyjąć interpretację, w której
stałych <math>\{a,b,c,d,e\}</math>,. Możemy przyjąć interpretację, w której
każdemu symbolowi stałej odpowiada inny klocek z dziedziny, np.:
każdemu symbolowi stałej odpowiada inny klocek z dziedziny, np.:


<!-- begin{align}  TODO: kolumny-->
<!-- begin{align}  TODO: kolumny-->
:{| width="400"
:{| width="400"
|<!-- equation 1 --><math>I(a) =  A \,</math> || ''(1)''  
|<!-- equation 1 --><math>I(a) =  A</math>, || ''(1)''  
|-
|-
|<!-- equation 2 --><math>I(b) =  B \,</math> || ''(2)''  
|<!-- equation 2 --><math>I(b) =  B</math>, || ''(2)''  
|-
|-
|<!-- equation 3 --><math>I(c) =  C \,</math> || ''(3)''  
|<!-- equation 3 --><math>I(c) =  C</math>, || ''(3)''  
|-
|-
|<!-- equation 4 --><math>I(d) =  D \,</math> || ''(4)''  
|<!-- equation 4 --><math>I(d) =  D</math>, || ''(4)''  
|-
|-
|<!-- equation 5 --><math>I(e) =  E \,</math> || ''(5)''  
|<!-- equation 5 --><math>I(e) =  E</math>, || ''(5)''  
|-
|-


Linia 74: Linia 74:


Przyjmiemy także, że a alfabecie znajdują się dwa symbole zmiennych
Przyjmiemy także, że a alfabecie znajdują się dwa symbole zmiennych
<math>x \,</math> i <math>y \,</math>, dla których określono wartościowanie następująco:
<math>x</math>, i <math>y</math>,, dla których określono wartościowanie następująco:


<!-- begin{align}  TODO: kolumny-->
<!-- begin{align}  TODO: kolumny-->
:{| width="400"
:{| width="400"
|<!-- equation 6 --><math>v(x) =  C \,</math> || ''(6)''  
|<!-- equation 6 --><math>v(x) =  C</math>, || ''(6)''  
|-
|-
|<!-- equation 7 --><math>v(y) =  B \,</math> || ''(7)''  
|<!-- equation 7 --><math>v(y) =  B</math>, || ''(7)''  
|-
|-


Linia 87: Linia 87:


Załóżmy dalej, że alfabet zawiera dwa jednoargumentowe symbole
Załóżmy dalej, że alfabet zawiera dwa jednoargumentowe symbole
funkcyjne <math>f \,</math> i <math>g \,</math>. Nasza interpretacja będzie im przypisywać
funkcyjne <math>f</math>, i <math>g</math>,. Nasza interpretacja będzie im przypisywać
odpowiednio dwuargumentowe funkcje określone na dziedzinie:
odpowiednio dwuargumentowe funkcje określone na dziedzinie:


<!-- begin{align}  TODO: kolumny-->
<!-- begin{align}  TODO: kolumny-->
:{| width="400"
:{| width="400"
|<!-- equation 8 --><math>I(f) =  \textit{gora} \,</math> || ''(8)''  
|<!-- equation 8 --><math>I(f) =  \textit{gora}</math>, || ''(8)''  
|-
|-
|<!-- equation 9 --><math>I(g) =  \textit{dol} \,</math> || ''(9)''  
|<!-- equation 9 --><math>I(g) =  \textit{dol}</math>, || ''(9)''  
|-
|-


Linia 104: Linia 104:
<!-- begin{align}  TODO: kolumny-->
<!-- begin{align}  TODO: kolumny-->
:{| width="400"
:{| width="400"
|<!-- equation 10 --><math>\textit{gora}(A) =  \;  B  \;  \textit{dol}(A)=  \;  A \,</math> || ''(10)''  
|<!-- equation 10 --><math>\textit{gora}(A) =  \;  B  \;  \textit{dol}(A)=  \;  A</math>, || ''(10)''  
|-
|-
|<!-- equation 11 --><math>\textit{gora}(B) =  \;  C  \;  \textit{dol}(B)=  \;  A \,</math> || ''(11)''  
|<!-- equation 11 --><math>\textit{gora}(B) =  \;  C  \;  \textit{dol}(B)=  \;  A</math>, || ''(11)''  
|-
|-
|<!-- equation 12 --><math>\textit{gora}(C) =  \;  C  \;  \textit{dol}(C)=  \;  B \,</math> || ''(12)''  
|<!-- equation 12 --><math>\textit{gora}(C) =  \;  C  \;  \textit{dol}(C)=  \;  B</math>, || ''(12)''  
|-
|-
|<!-- equation 13 --><math>\textit{gora}(D) =  \;  E  \;  \textit{dol}(D)=  \;  D \,</math> || ''(13)''  
|<!-- equation 13 --><math>\textit{gora}(D) =  \;  E  \;  \textit{dol}(D)=  \;  D</math>, || ''(13)''  
|-
|-
|<!-- equation 14 --><math>\textit{gora}(E) =  \;  E  \;  \textit{dol}(E)=  \;  D \,</math> || ''(14)''  
|<!-- equation 14 --><math>\textit{gora}(E) =  \;  E  \;  \textit{dol}(E)=  \;  D</math>, || ''(14)''  
|-
|-


Linia 118: Linia 118:
<!-- end{align} -->
<!-- end{align} -->


(jak widać, funkcja <math>\textit{gora} \,</math> przypisuje każdemu klockowi jego
(jak widać, funkcja <math>\textit{gora}</math>, przypisuje każdemu klockowi jego
sąsiada z góry, o ile istnieje, albo jego samego; podobnie funkcja
sąsiada z góry, o ile istnieje, albo jego samego; podobnie funkcja
<math>\textit{dol} \,</math> przypisuje każdemu klockowi jego sąsiada z dołu, o ile
<math>\textit{dol}</math>, przypisuje każdemu klockowi jego sąsiada z dołu, o ile
istnieje, albo jego samego). Założymy także, że alfabet naszego języka
istnieje, albo jego samego). Założymy także, że alfabet naszego języka
logiki zawiera dwuargumentowe symbole predykatowe <math>P \,</math>, <math>Q \,</math> i <math>R \,</math>,
logiki zawiera dwuargumentowe symbole predykatowe <math>P</math>,, <math>Q</math>, i <math>R</math>,,
których interpretację ustalimy następująco:
których interpretację ustalimy następująco:


<!-- begin{align}  TODO: kolumny-->
<!-- begin{align}  TODO: kolumny-->
:{| width="400"
:{| width="400"
|<!-- equation 15 --><math>I(P) =  \textit{na} \,</math> || ''(15)''  
|<!-- equation 15 --><math>I(P) =  \textit{na}</math>, || ''(15)''  
|-
|-
|<!-- equation 16 --><math>I(Q) =  \textit{nad} \,</math> || ''(16)''  
|<!-- equation 16 --><math>I(Q) =  \textit{nad}</math>, || ''(16)''  
|-
|-
|<!-- equation 17 --><math>I(R) =  \textit{rowne} \,</math> || ''(17)''  
|<!-- equation 17 --><math>I(R) =  \textit{rowne}</math>, || ''(17)''  
|-
|-


Linia 139: Linia 139:
przy czym:
przy czym:


* <math>\textit{na} \,</math> jest relacją dwuargumentową, do której należą wszystkie pary klocków takie, że pierwszy leży na drugim: <math>\langle B,A\rangle \,</math>, <math>\langle C, B\rangle \,</math>, <math>\langle E,D\rangle \,</math>,
* <math>\textit{na}</math>, jest relacją dwuargumentową, do której należą wszystkie pary klocków takie, że pierwszy leży na drugim: <math>\langle B,A\rangle</math>,, <math>\langle C, B\rangle</math>,, <math>\langle E,D\rangle</math>,,
* <math>\textit{nad} \,</math> jest relacją dwuargumentową, do której należą wszystkie pary klocków takie, że pierwszy leży nad drugim (tj. na nim lub wyżej): <math>\langle B,A\rangle \,</math>, <math>\langle C, A\rangle \,</math>, <math>\langle C,B\rangle \,</math>, <math>\langle E,D\rangle \,</math>,
* <math>\textit{nad}</math>, jest relacją dwuargumentową, do której należą wszystkie pary klocków takie, że pierwszy leży nad drugim (tj. na nim lub wyżej): <math>\langle B,A\rangle</math>,, <math>\langle C, A\rangle</math>,, <math>\langle C,B\rangle</math>,, <math>\langle E,D\rangle</math>,,
* <math>\textit{rowne} \,</math> jest relacją dwuargumentową, do której należą wszystkie pary złożone z dwóch wystąpień tych samych klocków: <math>\langle A,A\rangle \,</math>, <math>\langle B,B\rangle \,</math>, <math>\langle C,C\rangle \,</math>, <math>\langle D,D\rangle \,</math>, <math>\langle E,E\rangle \,</math>.
* <math>\textit{rowne}</math>, jest relacją dwuargumentową, do której należą wszystkie pary złożone z dwóch wystąpień tych samych klocków: <math>\langle A,A\rangle</math>,, <math>\langle B,B\rangle</math>,, <math>\langle C,C\rangle</math>,, <math>\langle D,D\rangle</math>,, <math>\langle E,E\rangle</math>,.


=== Interpretacja termów ===
=== Interpretacja termów ===


Interpretacja wraz z wartościowaniem pozwala ustalić znaczenie
Interpretacja wraz z wartościowaniem pozwala ustalić znaczenie
dowolnego termu. Dla interpretacji <math>I \,</math> i wartosciowania <math>v \,</math> oznaczmy
dowolnego termu. Dla interpretacji <math>I</math>, i wartosciowania <math>v</math>, oznaczmy
dla wygody przez <math>I_v \,</math> ich połączenie, rozumiane następująco:
dla wygody przez <math>I_v</math>, ich połączenie, rozumiane następująco:


* '''dla symboli stałych:'''  <math>I_v(a)=I(a) \,</math>,
* '''dla symboli stałych:'''  <math>I_v(a)=I(a)</math>,,
* '''dla symboli zmiennych:'''  <math>I_v(x)=v(x) \,</math>.
* '''dla symboli zmiennych:'''  <math>I_v(x)=v(x)</math>,.


Termy złożone interpretowane są przez zastosowanie intepretacji do
Termy złożone interpretowane są przez zastosowanie intepretacji do
wchodzących w ich skład symboli stałych i symboli funkcyjnych oraz
wchodzących w ich skład symboli stałych i symboli funkcyjnych oraz
zastosowanie wartościowania do wchodzących w ich skład zmiennych. Przy
zastosowanie wartościowania do wchodzących w ich skład zmiennych. Przy
ustalonej dziedzinie, interpretacji <math>I \,</math> i wartosciowaniu <math>v \,</math>, może być
ustalonej dziedzinie, interpretacji <math>I</math>, i wartosciowaniu <math>v</math>,, może być
wyznaczone znaczenie każdego termu postaci <math>f(t_1,t_2,\dots,t_m) \,</math> w
wyznaczone znaczenie każdego termu postaci <math>f(t_1,t_2,\dots,t_m)</math>, w
następujący sposób:
następujący sposób:


<!-- equation 18 -->
<!-- equation 18 -->
:<math>
:<math>
I_v(f(t_1,t_2,\dots,t_m)) = I(f)(I_v(t_1),I_v(t_2),\dots,I_v(t_m)).
I_v(f(t_1,t_2,\dots,t_m)) = I(f)(I_v(t_1),I_v(t_2),\dots,I_v(t_m))</math>, ''(18)''
\,</math> ''(18)''




'''Przykład: ślad klocków.'''  
'''Przykład: ślad klocków.'''  
Weźmy pod uwagę term <math>f(b) \,</math>. Poniewaz <math>I(b)=B \,</math>, <math>I(f)=\textit{gora} \,</math>
Weźmy pod uwagę term <math>f(b)</math>,. Poniewaz <math>I(b)=B</math>,, <math>I(f)=\textit{gora}</math>,
oraz <math>\textit{gora}(B)=C \,</math>, wiec oczywiscie <math>I(f(b))=C \,</math>. Podobnie łatwo
oraz <math>\textit{gora}(B)=C</math>,, wiec oczywiscie <math>I(f(b))=C</math>,. Podobnie łatwo
można sprawdzić interpretację następujących termów:
można sprawdzić interpretację następujących termów:


<!-- begin{align}  TODO: kolumny-->
<!-- begin{align}  TODO: kolumny-->
:{| width="400"
:{| width="400"
|<!-- equation 19 --><math>I_v(f(x)) =  C \,</math> || ''(19)''  
|<!-- equation 19 --><math>I_v(f(x)) =  C</math>, || ''(19)''  
|-
|-
|<!-- equation 20 --><math>I_v(g(y)) =  A \,</math> || ''(20)''  
|<!-- equation 20 --><math>I_v(g(y)) =  A</math>, || ''(20)''  
|-
|-


Linia 185: Linia 184:
Formuły atomowe intepretowane są podobnie jak termy złożone: przez
Formuły atomowe intepretowane są podobnie jak termy złożone: przez
zastosowanie intepretacji i wartościowania do każdego występującego w
zastosowanie intepretacji i wartościowania do każdego występującego w
nich symbolu. Dla formuły postaci <math>P(t_1,t_2,\dots,t_m) \,</math> otrzymujemy w
nich symbolu. Dla formuły postaci <math>P(t_1,t_2,\dots,t_m)</math>, otrzymujemy w
ten sposób relację <math>I(P) \,</math> oraz krotke <math>m \,</math> obiektów z dziedziny
ten sposób relację <math>I(P)</math>, oraz krotke <math>m</math>, obiektów z dziedziny
<math>\langle I_v(t_1),I_v(t_2),\dots,I_v(t_m)\rangle\in X^m \,</math>. Znaczeniem
<math>\langle I_v(t_1),I_v(t_2),\dots,I_v(t_m)\rangle\in X^m</math>,. Znaczeniem
formuły będzie jej wartość logiczna określona na podstawie tego, czy
formuły będzie jej wartość logiczna określona na podstawie tego, czy
krotka obiektów należy do relacji:
krotka obiektów należy do relacji:
Linia 196: Linia 195:
\begin{cases}
\begin{cases}
1 &
1 &
\textit{jesli <math>\langle I_v(t_1),I_v(t_2),\dots,I_v(t_m)\rangle\in I(P) \,</math>}
\textit{jesli <math>\langle I_v(t_1),I_v(t_2),\dots,I_v(t_m)\rangle\in I(P)</math>,}
0 &
0 &
\textit{jesli <math>\langle I_v(t_1),I_v(t_2),\dots,I_v(t_m)\rangle\not\in I(P) \,</math>.}
\textit{jesli <math>\langle I_v(t_1),I_v(t_2),\dots,I_v(t_m)\rangle\not\in I(P)</math>,.}
\end{cases}
\end{cases}
\,</math> ''(21)''
</math>, ''(21)''




Linia 209: Linia 208:
wszystkich przypadków operatorów logicznych byłoby żmudne i mało
wszystkich przypadków operatorów logicznych byłoby żmudne i mało
pouczające, więc ograniczymy się do przykładu dla operatora implikacji
pouczające, więc ograniczymy się do przykładu dla operatora implikacji
<math>\rightarrow \,</math>:
<math>\rightarrow</math>,:


\begin{center}
\begin{center}
Linia 215: Linia 214:
<!-- \begin{tabular}{c|c||c} -->
<!-- \begin{tabular}{c|c||c} -->
:{| width="400" border="1"
:{| width="400" border="1"
|<math>I_v(\alpha) \,</math>  ||  <math>I_v(\beta) \,</math>  ||  <math>I_v(\alpha\rightarrow\beta) \,</math>
|<math>I_v(\alpha)</math>, ||  <math>I_v(\beta)</math>, ||  <math>I_v(\alpha\rightarrow\beta)</math>,
|-
|-
|<math>0 \,</math>  ||  <math>0 \,</math>  ||  <math>1 \,</math>
|<math>0</math>, ||  <math>0</math>, ||  <math>1</math>,
|-
|-
|<math>0 \,</math>  ||  <math>1 \,</math>  ||  <math>1 \,</math>
|<math>0</math>, ||  <math>1</math>, ||  <math>1</math>,
|-
|-
|<math>1 \,</math>  ||  <math>0 \,</math>  ||  <math>0 \,</math>
|<math>1</math>, ||  <math>0</math>, ||  <math>0</math>,
|-
|-
|<math>1 \,</math>  ||  <math>1 \,</math>  ||  <math>1 \,</math>
|<math>1</math>, ||  <math>1</math>, ||  <math>1</math>,
|-
|-


Linia 236: Linia 235:
Na uważniejsze potraktowanie zasługuje kwestia znaczenia formuł
Na uważniejsze potraktowanie zasługuje kwestia znaczenia formuł
zbudowanych z wykorzystaniem kwantyfikatorów. Przyjmując dziedzinę
zbudowanych z wykorzystaniem kwantyfikatorów. Przyjmując dziedzinę
<math>X \,</math>, interpretacje <math>I \,</math> i wartosciowanie <math>v \,</math>, rozważmy interpretację
<math>X</math>,, interpretacje <math>I</math>, i wartosciowanie <math>v</math>,, rozważmy interpretację
formuły postaci <math>(\forall x)\alpha \,</math>. Aby uniknąć wikłania się w
formuły postaci <math>(\forall x)\alpha</math>,. Aby uniknąć wikłania się w
dyskusje o zasięgu kwantyfikatorów założymy, że w formule <math>\alpha \,</math> nie
dyskusje o zasięgu kwantyfikatorów założymy, że w formule <math>\alpha</math>, nie
występuje żaden inny kwantyfikator dla zmiennej <math>x \,</math> (czyli że
występuje żaden inny kwantyfikator dla zmiennej <math>x</math>, (czyli że
wszystkie wystąpienia zmiennej <math>x \,</math> w formule <math>\alpha \,</math> są
wszystkie wystąpienia zmiennej <math>x</math>, w formule <math>\alpha</math>,
''wolne''). Wartość logiczną formuły <math>(\forall x)\alpha \,</math> przy
''wolne''). Wartość logiczną formuły <math>(\forall x)\alpha</math>, przy
interpretacji <math>I \,</math> i wartosciowaniu <math>v \,</math> ustalamy w następujący sposób:
interpretacji <math>I</math>, i wartosciowaniu <math>v</math>, ustalamy w następujący sposób:


# <math>I_v((\forall x)\alpha)=1 \,</math> wtedy i tylko wtedy gdy dla wszystkich wartościowań <math>v_x \,</math> rozniacych sie od <math>v \,</math> co najwyżej wartością przypisywaną zmiennej <math>x \,</math> (a wiec takze dla <math>v_x \,</math> identycznego z <math>v \,</math>) uzyskujemy <math>I_{v_x}(\alpha)=1 \,</math>,
# <math>I_v((\forall x)\alpha)=1</math>, wtedy i tylko wtedy gdy dla wszystkich wartościowań <math>v_x</math>, rozniacych sie od <math>v</math>, co najwyżej wartością przypisywaną zmiennej <math>x</math>, (a wiec takze dla <math>v_x</math>, identycznego z <math>v</math>,) uzyskujemy <math>I_{v_x}(\alpha)=1</math>,,
# <math>I_v((\forall x)\alpha)=0 \,</math> w przeciwnym przypadku.
# <math>I_v((\forall x)\alpha)=0</math>, w przeciwnym przypadku.
Analogicznie dla formuły <math>(\exists x)\alpha \,</math>:
Analogicznie dla formuły <math>(\exists x)\alpha</math>,:


# <math>I_v((\exists x)\alpha)=1 \,</math> wtedy i tylko wtedy gdy istnieje wartościowanie <math>v_x \,</math> rozniace sie od <math>v \,</math> co najwyżej wartością przypisywaną zmiennej <math>x \,</math> (moze to byc w szczegolnosci <math>v_x \,</math> identyczne z <math>v \,</math>) uzyskujemy <math>I_{v_x}(\alpha)=1 \,</math>,
# <math>I_v((\exists x)\alpha)=1</math>, wtedy i tylko wtedy gdy istnieje wartościowanie <math>v_x</math>, rozniace sie od <math>v</math>, co najwyżej wartością przypisywaną zmiennej <math>x</math>, (moze to byc w szczegolnosci <math>v_x</math>, identyczne z <math>v</math>,) uzyskujemy <math>I_{v_x}(\alpha)=1</math>,,
# <math>I_v((\exists x)\alpha)=0 \,</math> w przeciwnym przypadku.
# <math>I_v((\exists x)\alpha)=0</math>, w przeciwnym przypadku.


Istotą przytoczonych definicji znaczenia formuł z kwantyfikatorem jest
Istotą przytoczonych definicji znaczenia formuł z kwantyfikatorem jest
wyłączenie zmiennej objętej kwantyfikatorem z wartościowania. Dla
wyłączenie zmiennej objętej kwantyfikatorem z wartościowania. Dla
określenia wartości logicznej takiej formuły jest obojętne, jaką
określenia wartości logicznej takiej formuły jest obojętne, jaką
wartość <math>v(x) \,</math> wartosciowanie <math>v \,</math> przypisuje zmiennej <math>x \,</math> objętej
wartość <math>v(x)</math>, wartosciowanie <math>v</math>, przypisuje zmiennej <math>x</math>, objętej
kwantyfikatorem. Ważne jest tylko, aby przy niezmienionych wartościach
kwantyfikatorem. Ważne jest tylko, aby przy niezmienionych wartościach
przypisywanych wszystkim pozostałym zmiennym można było stwierdzić, że
przypisywanych wszystkim pozostałym zmiennym można było stwierdzić, że
<math>I_v(\alpha)=1 \,</math> dla wszystkich mozliwych wartosci zmiennej <math>x \,</math> (w
<math>I_v(\alpha)=1</math>, dla wszystkich mozliwych wartosci zmiennej <math>x</math>, (w
przypadku kwantyfikatora ogólnego) albo dla przynajmniej jednej
przypadku kwantyfikatora ogólnego) albo dla przynajmniej jednej
wartości zmiennej <math>x \,</math> (w przypadku kwantyfikatora szczegółowego) z
wartości zmiennej <math>x</math>, (w przypadku kwantyfikatora szczegółowego) z
dziedziny <math>X \,</math>.
dziedziny <math>X</math>,.


'''Przykład: świat klocków.'''  
'''Przykład: świat klocków.'''  
Weźmy pod uwagę formułę <math>P(x,y)\rightarrow Q(x,y) \,</math>. Przy ustalonej w
Weźmy pod uwagę formułę <math>P(x,y)\rightarrow Q(x,y)</math>,. Przy ustalonej w
poprzednich przykładach intepretacji i wartościowaniu dostajemy:
poprzednich przykładach intepretacji i wartościowaniu dostajemy:


<!-- begin{align}  TODO: kolumny-->
<!-- begin{align}  TODO: kolumny-->
:{| width="400"
:{| width="400"
|<!-- equation 22 --><math>I_v(P(x,y)) =  1 \,</math> || ''(22)''  
|<!-- equation 22 --><math>I_v(P(x,y)) =  1</math>, || ''(22)''  
|-
|-
|<!-- equation 23 --><math>I_v(Q(x,y)) =  1 \,</math> || ''(23)''  
|<!-- equation 23 --><math>I_v(Q(x,y)) =  1</math>, || ''(23)''  
|-
|-


Linia 276: Linia 275:
<!-- end{align} -->
<!-- end{align} -->


a więc <math>I_v(P(x,y)\rightarrow Q(x,y))=1 \,</math>. Nietrudno się przekonać, że
a więc <math>I_v(P(x,y)\rightarrow Q(x,y))=1</math>,. Nietrudno się przekonać, że
także dla formuły <math>(\forall x)(\forall y)(P(x,y)\rightarrow Q(x,y)) \,</math>
także dla formuły <math>(\forall x)(\forall y)(P(x,y)\rightarrow Q(x,y))</math>,
uzyskamy wartość logiczną <math>1 \,</math>, sprawdzajac, ze <math>I_v(P(x,y)\rightarrow Q(x,y)) \,</math> niezaleznie od wartosci przypisanych zmiennym <math>x \,</math> i <math>y \,</math>.
uzyskamy wartość logiczną <math>1</math>,, sprawdzajac, ze <math>I_v(P(x,y)\rightarrow Q(x,y))</math>, niezaleznie od wartosci przypisanych zmiennym <math>x</math>, i <math>y</math>,.


Mając określoną składnię i semantykę języka logiki, możemy zapisywać w
Mając określoną składnię i semantykę języka logiki, możemy zapisywać w
Linia 287: Linia 286:
:<math>
:<math>
(\forall x)(\forall y) P(x,y)\rightarrow R(x,f(y))
(\forall x)(\forall y) P(x,y)\rightarrow R(x,f(y))
\,</math> ''(24)''
</math>, ''(24)''




Linia 294: Linia 293:
:<math>
:<math>
(\forall x)(\forall y)\neg(P(x,y)\land P(y,x))
(\forall x)(\forall y)\neg(P(x,y)\land P(y,x))
\,</math> ''(25)''
</math>, ''(25)''




Linia 301: Linia 300:
:<math>
:<math>
(\forall x) R(x,f(x)) \rightarrow (\exists y) R(x,g(y))
(\forall x) R(x,f(x)) \rightarrow (\exists y) R(x,g(y))
\,</math> ''(26)''
</math>, ''(26)''




Linia 308: Linia 307:


Formułę, która dla ustalonej interpretacji i wartościowania ma wartość
Formułę, która dla ustalonej interpretacji i wartościowania ma wartość
logiczną <math>1 \,</math>, nazywa się formułą ''spełnioną'' przy tej
logiczną <math>1</math>,, nazywa się formułą ''spełnioną'' przy tej
interpretacji i wartościowaniu. Formuła, dla której istnieje
interpretacji i wartościowaniu. Formuła, dla której istnieje
intepretacja i wartościowanie, przy których jest ona spełniona,
intepretacja i wartościowanie, przy których jest ona spełniona,
Linia 316: Linia 315:


Dla formuły, która nie jest prawdziwa, istnieje interpretacja i
Dla formuły, która nie jest prawdziwa, istnieje interpretacja i
wartościowanie, przy których jej wartość logiczna wynosi <math>0 \,</math>. Taką
wartościowanie, przy których jej wartość logiczna wynosi <math>0</math>,. Taką
formułę nazywa się formułą ''falsyfikowalną''. Z kolei formuła,
formułę nazywa się formułą ''falsyfikowalną''. Z kolei formuła,
która nie jest spełnialna, ma wartość logiczną <math>0 \,</math> przy dowolnej
która nie jest spełnialna, ma wartość logiczną <math>0</math>, przy dowolnej
interpretacji i wartościowaniu. O takiej formule mówi się, że jest
interpretacji i wartościowaniu. O takiej formule mówi się, że jest
''fałszywa''.
''fałszywa''.
Linia 337: Linia 336:
<!-- begin{align}  TODO: kolumny-->
<!-- begin{align}  TODO: kolumny-->
:{| width="400"
:{| width="400"
|<!-- equation 27 --><math> \neg P(y,x) \,</math> || ''(27)''  
|<!-- equation 27 --><math> \neg P(y,x)</math>, || ''(27)''  
|-
|-
|<!-- equation 28 --><math> \neg P(b,a)\lor Q(e,d) \,</math> || ''(28)''  
|<!-- equation 28 --><math> \neg P(b,a)\lor Q(e,d)</math>, || ''(28)''  
|-
|-
|<!-- equation 29 --><math> P(f(x),b) \,</math> || ''(29)''  
|<!-- equation 29 --><math> P(f(x),b)</math>, || ''(29)''  
|-
|-
|<!-- equation 30 --><math> Q(f(x),y) \,</math> || ''(30)''  
|<!-- equation 30 --><math> Q(f(x),y)</math>, || ''(30)''  
|-
|-
|<!-- equation 31 --><math> P(x,y)\land Q(x,a) \,</math> || ''(31)''  
|<!-- equation 31 --><math> P(x,y)\land Q(x,a)</math>, || ''(31)''  
|-
|-
|<!-- equation 32 --><math> P(x,y) \rightarrow P(e,d) \,</math> || ''(32)''  
|<!-- equation 32 --><math> P(x,y) \rightarrow P(e,d)</math>, || ''(32)''  
|-
|-
|<!-- equation 33 --><math> P(x,y)\rightarrow Q(x,y) \,</math> || ''(33)''  
|<!-- equation 33 --><math> P(x,y)\rightarrow Q(x,y)</math>, || ''(33)''  
|-
|-
|<!-- equation 34 --><math> (\forall x) (P(f(x),x)\lor R(f(x),x) \,</math> || ''(34)''  
|<!-- equation 34 --><math> (\forall x) (P(f(x),x)\lor R(f(x),x)</math>, || ''(34)''  
|-
|-
|<!-- equation 35 --><math> (\forall x)(\forall y) (P(x,y)\rightarrow Q(x,y) \,</math> || ''(35)''  
|<!-- equation 35 --><math> (\forall x)(\forall y) (P(x,y)\rightarrow Q(x,y)</math>, || ''(35)''  
|-
|-
|<!-- equation 36 --><math> (\forall x)(\forall y) (P(x,y)\rightarrow \neg R(x,a)) \,</math> || ''(36)''  
|<!-- equation 36 --><math> (\forall x)(\forall y) (P(x,y)\rightarrow \neg R(x,a))</math>, || ''(36)''  
|-
|-
|<!-- equation 37 --><math> (\forall x) R(g(x),x)\rightarrow (\exists y) P(y,x) \,</math> || ''(37)''  
|<!-- equation 37 --><math> (\forall x) R(g(x),x)\rightarrow (\exists y) P(y,x)</math>, || ''(37)''  
|-
|-


Linia 367: Linia 366:
<!-- begin{align}  TODO: kolumny-->
<!-- begin{align}  TODO: kolumny-->
:{| width="400"
:{| width="400"
|<!-- equation 38 --><math>P(x,y)\rightarrow (P(x,y)\rightarrow Q(x,y)) \,</math> || ''(38)''  
|<!-- equation 38 --><math>P(x,y)\rightarrow (P(x,y)\rightarrow Q(x,y))</math>, || ''(38)''  
|-
|-
|<!-- equation 39 --><math>P(a,e)\lor\neg P(a,e) \,</math> || ''(39)''  
|<!-- equation 39 --><math>P(a,e)\lor\neg P(a,e)</math>, || ''(39)''  
|-
|-


Linia 383: Linia 382:
Opisuje to relacja konsekwencji semantycznej, którą definiuje się
Opisuje to relacja konsekwencji semantycznej, którą definiuje się
bezpośrednio odwołując się do prawdziwości. Będziemy mówić, że formuła
bezpośrednio odwołując się do prawdziwości. Będziemy mówić, że formuła
<math>\beta \,</math> jest konsekwencją semantyczną zbioru formuł
<math>\beta</math>, jest konsekwencją semantyczną zbioru formuł
<math>\Gamma=\{\alpha_1,\alpha_2,\dots,\alpha_n\} \,</math>, jeśli formuła
<math>\Gamma=\{\alpha_1,\alpha_2,\dots,\alpha_n\}</math>,, jeśli formuła
<math>\alpha_1\land\alpha_2\land\dots\land\alpha_n\rightarrow\beta \,</math> jest
<math>\alpha_1\land\alpha_2\land\dots\land\alpha_n\rightarrow\beta</math>, jest
prawdziwa. Będziemy wówczas pisać <math>\Gamma\models\beta \,</math>.
prawdziwa. Będziemy wówczas pisać <math>\Gamma\models\beta</math>,.

Aktualna wersja na dzień 22:13, 11 wrz 2023

Semantyka języka logiki

Semantyka języka logiki określa sposób, w jaki formułom zapisanym zgodnie z podanymi wyżej regułami składni, można przypisać znaczenie, które z kolei pozwala określić ich wartość logiczną. Aby stało się to możliwe, musi oczywiście zostać określone znaczenie wszystkich symboli wchodzących w skład alfabetu języka logiki, a następnie zasady, zgodnie z którymi określa się znaczenie formuł na podstawie znaczenia symboli w nich występujących. Nie będziemy tu prezentować semantyki języka logiki w sposób w pełni formalny i systematyczny, poprzestając tylko na zwięzłym nieformalnym szkicu.

Dziedzina

Aby interpretować formuły języka predykatów musimy (w ogólnym przypadku) przyjąć pewną ustaloną dziedzinę, do której te formuły się odnoszą. Dziedzina jest zbiorem obiektów (np. przedmiotów, ludzi, sytuacji, zdarzeń itp.), na temat właściwości których lub relacji między którymi wiedzę zamierzamy zapisywać w języku logiki.

Przykład: świat klocków. Będziemy ilustrować definicję semantyki języka logiki posługując się prostym przykładem świata klocków, zilustrowanym na rysunku. Dziedzina jest w tym przypadku zbiorem pięciu klocków {A,B,C,D,E},.

\begin{figure}[h] \includegraphics[width=6cm]{rysunki/klocki.eps} \end{figure}

Interpretacja symboli

Mając ustaloną pewną dziedzinę X,, symbole alfabetu języka predykatów interpretujemy następująco.


  • Symbole stałych: symbol stałej a, oznacza pewien obiekt z dziedziny I(a)X,.
  • Symbole funkcyjne: m,-argumentowy symbol funkcyjny f, oznacza m,-argumentowa funkcje I(f):XmX,.
  • Symbole predykatowe: m,-argumentowy symbol predykatowy P, oznacza m,-argumentowa relacje I(P)Xm, (równoważnie, możemy przyjąć, że P, oznacza funkcje I(P):Xm{0,1},).

Przypomnijmy sobie, że relacją m, argumentową określoną na zbiorze X, jest dowolny podzbior iloczynu kartezjanskiego Xm,. Dla krotki złożonej z m, elementow zbioru X,, która należy do relacji, mówimy także, że relacja jest spełniona.

Operatory logiczne, kwantyfikatory i nawiasy służą do budowania formuł złożonych z formuł atomowych i nie mają samodzielnej interpretacji. Z kolei symbole zmiennych wyłączone są z intepretacji - mając ustaloną interpretację, byłyby identyczne z symbolami stałych. Dopuszcza się jednak przypisywanie zmiennym znaczenia przy intepretowaniu konkretnej formuły za pomocą wartościowania. Wartościowanie jest dowolnym odwzorowaniem symboli zmiennych na elementy dziedziny - dla symbolu zmiennej x, wartosciowanie v, określa wartosc v(x)X,.

Przykład: świat klocków. Rozważmy język logiki predykatów, którego alfabet zawiera symbole stałych {a,b,c,d,e},. Możemy przyjąć interpretację, w której każdemu symbolowi stałej odpowiada inny klocek z dziedziny, np.:

I(a)=A, (1)
I(b)=B, (2)
I(c)=C, (3)
I(d)=D, (4)
I(e)=E, (5)

Przyjmiemy także, że a alfabecie znajdują się dwa symbole zmiennych x, i y,, dla których określono wartościowanie następująco:

v(x)=C, (6)
v(y)=B, (7)

Załóżmy dalej, że alfabet zawiera dwa jednoargumentowe symbole funkcyjne f, i g,. Nasza interpretacja będzie im przypisywać odpowiednio dwuargumentowe funkcje określone na dziedzinie:

I(f)=gora, (8)
I(g)=dol, (9)

Funkcje te określimy następująco:

gora(A)=Bdol(A)=A, (10)
gora(B)=Cdol(B)=A, (11)
gora(C)=Cdol(C)=B, (12)
gora(D)=Edol(D)=D, (13)
gora(E)=Edol(E)=D, (14)

(jak widać, funkcja gora, przypisuje każdemu klockowi jego sąsiada z góry, o ile istnieje, albo jego samego; podobnie funkcja dol, przypisuje każdemu klockowi jego sąsiada z dołu, o ile istnieje, albo jego samego). Założymy także, że alfabet naszego języka logiki zawiera dwuargumentowe symbole predykatowe P,, Q, i R,, których interpretację ustalimy następująco:

I(P)=na, (15)
I(Q)=nad, (16)
I(R)=rowne, (17)

przy czym:

  • na, jest relacją dwuargumentową, do której należą wszystkie pary klocków takie, że pierwszy leży na drugim: B,A,, C,B,, E,D,,
  • nad, jest relacją dwuargumentową, do której należą wszystkie pary klocków takie, że pierwszy leży nad drugim (tj. na nim lub wyżej): B,A,, C,A,, C,B,, E,D,,
  • rowne, jest relacją dwuargumentową, do której należą wszystkie pary złożone z dwóch wystąpień tych samych klocków: A,A,, B,B,, C,C,, D,D,, E,E,.

Interpretacja termów

Interpretacja wraz z wartościowaniem pozwala ustalić znaczenie dowolnego termu. Dla interpretacji I, i wartosciowania v, oznaczmy dla wygody przez Iv, ich połączenie, rozumiane następująco:

  • dla symboli stałych: Iv(a)=I(a),,
  • dla symboli zmiennych: Iv(x)=v(x),.

Termy złożone interpretowane są przez zastosowanie intepretacji do wchodzących w ich skład symboli stałych i symboli funkcyjnych oraz zastosowanie wartościowania do wchodzących w ich skład zmiennych. Przy ustalonej dziedzinie, interpretacji I, i wartosciowaniu v,, może być wyznaczone znaczenie każdego termu postaci f(t1,t2,,tm), w następujący sposób:

Iv(f(t1,t2,,tm))=I(f)(Iv(t1),Iv(t2),,Iv(tm)), (18)


Przykład: ślad klocków. Weźmy pod uwagę term f(b),. Poniewaz I(b)=B,, I(f)=gora, oraz gora(B)=C,, wiec oczywiscie I(f(b))=C,. Podobnie łatwo można sprawdzić interpretację następujących termów:

Iv(f(x))=C, (19)
Iv(g(y))=A, (20)


Interpretacja formuł

Formuły atomowe intepretowane są podobnie jak termy złożone: przez zastosowanie intepretacji i wartościowania do każdego występującego w nich symbolu. Dla formuły postaci P(t1,t2,,tm), otrzymujemy w ten sposób relację I(P), oraz krotke m, obiektów z dziedziny Iv(t1),Iv(t2),,Iv(tm)Xm,. Znaczeniem formuły będzie jej wartość logiczna określona na podstawie tego, czy krotka obiektów należy do relacji:

Parser nie mógł rozpoznać (nieznana funkcja „\begin{cases}”): {\displaystyle I_v(P(t_1,t_2,\dots,t_m)) = \begin{cases} 1 & \textit{jesli <math>\langle I_v(t_1),I_v(t_2),\dots,I_v(t_m)\rangle\in I(P)} ,}

0 & \textit{jesli Iv(t1),Iv(t2),,Iv(tm)∉I(P),.} \end{cases} </math>, (21)


Intepretacja formuł złożonych polega na przypisaniu wartości logicznej formułom uzyskanym przez zastosowanie operatorów logicznych, kwantyfikatorów i nawiasów, na podstawie wartości logicznej wchodzących w ich skład formuł atomowych. Skrupulatne definiowanie wszystkich przypadków operatorów logicznych byłoby żmudne i mało pouczające, więc ograniczymy się do przykładu dla operatora implikacji ,:

\begin{center}

Iv(α), Iv(β), Iv(αβ),
0, 0, 1,
0, 1, 1,
1, 0, 0,
1, 1, 1,

\end{center}

Jak widać, definicja "znaczenia implikacji" sprowadza się do podania tzw. tabeli prawdy.

Na uważniejsze potraktowanie zasługuje kwestia znaczenia formuł zbudowanych z wykorzystaniem kwantyfikatorów. Przyjmując dziedzinę X,, interpretacje I, i wartosciowanie v,, rozważmy interpretację formuły postaci (x)α,. Aby uniknąć wikłania się w dyskusje o zasięgu kwantyfikatorów założymy, że w formule α, nie występuje żaden inny kwantyfikator dla zmiennej x, (czyli że wszystkie wystąpienia zmiennej x, w formule α, są wolne). Wartość logiczną formuły (x)α, przy interpretacji I, i wartosciowaniu v, ustalamy w następujący sposób:

  1. Iv((x)α)=1, wtedy i tylko wtedy gdy dla wszystkich wartościowań vx, rozniacych sie od v, co najwyżej wartością przypisywaną zmiennej x, (a wiec takze dla vx, identycznego z v,) uzyskujemy Ivx(α)=1,,
  2. Iv((x)α)=0, w przeciwnym przypadku.

Analogicznie dla formuły (x)α,:

  1. Iv((x)α)=1, wtedy i tylko wtedy gdy istnieje wartościowanie vx, rozniace sie od v, co najwyżej wartością przypisywaną zmiennej x, (moze to byc w szczegolnosci vx, identyczne z v,) uzyskujemy Ivx(α)=1,,
  2. Iv((x)α)=0, w przeciwnym przypadku.

Istotą przytoczonych definicji znaczenia formuł z kwantyfikatorem jest wyłączenie zmiennej objętej kwantyfikatorem z wartościowania. Dla określenia wartości logicznej takiej formuły jest obojętne, jaką wartość v(x), wartosciowanie v, przypisuje zmiennej x, objętej kwantyfikatorem. Ważne jest tylko, aby przy niezmienionych wartościach przypisywanych wszystkim pozostałym zmiennym można było stwierdzić, że Iv(α)=1, dla wszystkich mozliwych wartosci zmiennej x, (w przypadku kwantyfikatora ogólnego) albo dla przynajmniej jednej wartości zmiennej x, (w przypadku kwantyfikatora szczegółowego) z dziedziny X,.

Przykład: świat klocków. Weźmy pod uwagę formułę P(x,y)Q(x,y),. Przy ustalonej w poprzednich przykładach intepretacji i wartościowaniu dostajemy:

Iv(P(x,y))=1, (22)
Iv(Q(x,y))=1, (23)

a więc Iv(P(x,y)Q(x,y))=1,. Nietrudno się przekonać, że także dla formuły (x)(y)(P(x,y)Q(x,y)), uzyskamy wartość logiczną 1,, sprawdzajac, ze Iv(P(x,y)Q(x,y)), niezaleznie od wartosci przypisanych zmiennym x, i y,.

Mając określoną składnię i semantykę języka logiki, możemy zapisywać w nim stwierdzenia na temat dziedziny wyrażone w języku naturalnym:

  • Jeśli jakiś klocek leży na innym klocku, to jest jego górnym sąsiadem:
(x)(y)P(x,y)R(x,f(y)), (24)


  • Dla dowolnych dwóch klocków nie jest możliwe, żeby pierwszy z nich leżał nad drugim i jednocześnie drugi nad pierwszym.
(x)(y)¬(P(x,y)P(y,x)), (25)


  • Każdy klocek, który nie ma górnego sąsiada, jest dolnym sąsiadem jakiegoś innego klocka.
(x)R(x,f(x))(y)R(x,g(y)), (26)


Spełnialność i prawdziwość

Formułę, która dla ustalonej interpretacji i wartościowania ma wartość logiczną 1,, nazywa się formułą spełnioną przy tej interpretacji i wartościowaniu. Formuła, dla której istnieje intepretacja i wartościowanie, przy których jest ona spełniona, nazywana jest formułą spełnialną. Z kolei formuła spełniona przy dowolnej intepretacji i wartościowaniu jest formułą prawdziwą.

Dla formuły, która nie jest prawdziwa, istnieje interpretacja i wartościowanie, przy których jej wartość logiczna wynosi 0,. Taką formułę nazywa się formułą falsyfikowalną. Z kolei formuła, która nie jest spełnialna, ma wartość logiczną 0, przy dowolnej interpretacji i wartościowaniu. O takiej formule mówi się, że jest fałszywa.

Weryfikacja spełnienie formuły przy konkretnej intepretacji i wartościowaniu jest trywialna. Dalej będziemy się interesować tylko znacznie bardziej złożonym zagadnieniem rozstrzygania o prawdziwości bądź fałszywości formuł. Z wyjątkiem trywialnie małych dziedzin, nie można takiej weryfikacji przeprowadzić bezpośrednio opierając się na powyższych definicjach. Z tego wynika potrzeba stosowania wnioskowania.


Przykład: świat klocków. Łatwo sprawdzić, że następujące formuły są spełnione przy intepretacji i wartościowaniu określonych w poprzednich przykładach:

¬P(y,x), (27)
¬P(b,a)Q(e,d), (28)
P(f(x),b), (29)
Q(f(x),y), (30)
P(x,y)Q(x,a), (31)
P(x,y)P(e,d), (32)
P(x,y)Q(x,y), (33)
(x)(P(f(x),x)R(f(x),x), (34)
(x)(y)(P(x,y)Q(x,y), (35)
(x)(y)(P(x,y)¬R(x,a)), (36)
(x)R(g(x),x)(y)P(y,x), (37)

Następujące formuły są także prawdziwe:

P(x,y)(P(x,y)Q(x,y)), (38)
P(a,e)¬P(a,e), (39)


Konsekwencja semantyczna

W praktycznych zadaniach wnioskowania najczęściej rozważanym pytaniem jest w gruncie rzeczy nie tyle pytanie o prawdziwość pojedynczych formuł, co raczej o "wynikanie" pewnych formuł z innych formuł. Opisuje to relacja konsekwencji semantycznej, którą definiuje się bezpośrednio odwołując się do prawdziwości. Będziemy mówić, że formuła β, jest konsekwencją semantyczną zbioru formuł Γ={α1,α2,,αn},, jeśli formuła α1α2αnβ, jest prawdziwa. Będziemy wówczas pisać Γβ,.