Processing math: 66%

Systemy funkcjonalnie pełne

Systemy funkcjonalnie pełne


Każda formuła odpowiada pewnej funkcji przekształcającej wartościowania zmiennych w niej występujących w element zbioru B. Na przykład formuła p(qr) wyznacza funkcję fp(qr) opisaną poniższą tabelą

p q r fparrow(qarrowr)
 0   0   0  1
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 0
1 1 1 1

Mówimy, wtedy że formuła ϕ definuje funkcję fϕ.

Definicja 5.1

Skończony zbiór funkcji boolowskich Γ nazywamy funkcjonalnie pełnym, jeśli każdą funkcję boolowską da się zdefiniować przy pomocy formuły zbudowanej wyłącznie ze spójników odpowiadających funkcjom ze zbioru Γ.

Twierdzenie 5.2

Zbiór {,,¬} jest funkcjonalnie pełny.

Dowód

Dla dowolnej funkcji boolowskiej skonstruujemy formułę która ją definiuje. Niech k oraz f:BkarrowB. W definiowanej formule będziemy używać zmiennych p1,,pk, a każdy element (w1,,wk)Bk będzie odpowiadał wartościowaniu vw takiemu, że v(pi)=wi.

Niech F będzie zbiorem tych argumentów, dla których funkcja f przyjmuje wartość 1. Dla dowolnego elementu xiF skonstruujemy formułę ϕi w taki sposób, aby była spełniona tylko dla wartościowania odpowiadającego elementowi xi. Niech xi=(w1,,wk), wtedy formułę ϕi definiujemy jako li1li2lik gdzie

lij{pj,gdy wj=1;¬pj,gdy wj=0.

Łatwo sprawdzić, że formuła ϕi jest spełniona tylko dla wartościowania odpowiadającego elementowi xi.

Postępując w ten sposób dla każdego elementu zbioru F otrzymamy formuły ϕ1,ϕm. Biorąc
ϕ1ϕm

otrzymamy formułę która definiuje funkcję f, oznaczmy ją przez Φ. Jeśli dla wartościowania v formuła Φ jest spełniona to znaczy, że któraś z formuł ϕi jest spełniona. Oznacza to że wartościowanie v odpowiada pewnemu elementowi xi zbioru F, wobec tego funkcja f(xi)=1 co jest zgodne z tym, że spełniona jest Φ. W drugą stronę załóżmy że dla pewnego elementu aBk mamy f(a)=1. Wobec tego aF. Wtedy a odpowiada pewnej formule ϕi, która jest spełniona dla wartościowania odpowiadającego a. Wobec tego również cała formuła Φ jest spełniona dla tego wartościowania (bo jeden z elementów alternatywy jest spełniony). Wynika stąd, że formuła Φ definiuje funkcję f. Na koniec zauważmy jeszcze że jedynymi spójnikami występującymi w formule Φ¬,,.

Twierdzenie 5.3

Zbiory {,¬}, {,¬} są funkcjonalnie pełne.

Dowód

Aby pokazać, że {,¬} jest funkcjonalnie pełny wystarczy pokazać, że przy pomocy spójników {,¬} da się zdefiniować . Wtedy funkcjonalną pełność otrzymamy z twierdzenia 5.2. W ćwiczeniu 4.2 pokazaliśmy, że

¬(xy)=¬x¬y.
Wobec tego
xy=¬(¬x¬y)

a więc zdefiniowaliśmy przy pomocy ¬,.

Analogicznie aby pokazać funkcjonalną pełność zbioru {,¬} zdefiniujemy przy pomocy spójników ,¬. Z <ćwiczenia 4.2 mamy
¬(xy)=¬x¬y
a więc
xy=¬(¬x¬y).

Ćwiczenie 5.1

Udowodnij, że zbiór {,¬} jest funkcjonalnie pełny.

Twierdzenie 5.4

Zbiór {NOR} jest funkcjonalnie pełny.

Dowód
Pokażemy, że przy pomocy NOR można zdefiniować ¬ oraz . Wtedy z twierdzenia twierdzenia 5.3 otrzymamy tezę twierdzenia.

Łatwo sprawdzić, że
pNORp¬.
Wiemy, że
pNORq¬(pq).
Wobec tego mamy również
¬(pNORq)pq.
Możemy teraz wyrazić negację za pomocą NOR, otrzymamy wtedy
(pNORq)NOR(pNORq)pq.

Ćwiczenie 5.2

Udowodnij, że zbiór {NAND} jest funkcjonalnie pełny.

Ćwiczenie 5.3

Zdefiniuj alternatywę przy pomocy samej implikacji.

Ćwiczenie 5.4

Jakie funkcje binarne da się zdefiniować przy pomocy samej implikacji?

Ćwiczenie 5.5

Udowodnij, że poniższe zbiory nie są funkcjonalnie pełne

  1. {}
  2. {}
  3. {}
  4. {XOR}

Ćwiczenie 5.6

Czy funkcje binarne, zdefiniowane za pomocą formuł zawierającyh jedynie przemienne spójniki, muszą być przemienne?


Ćwiczenie 5.7

(z wykładu prof. P.M.Idziaka) Niech Fn oznacza ilość boolowskich funkcji n argumetnowych, a Pn ilość boolowskich funkcji n argumentowych, takich że przy pomocy każdej z nich da się zdefiniować dowolną funkcję boolowską (czyli jeśli jest takim spójnikiem to zbiór {} jest funkcjonalnie pełny). Udowdnij istenienie poniższej granicy i wyznacz jej wartość
lim