|
ŚFiNiA ŚFiNiA - Światopoglądowe, Filozoficzne, Naukowe i Artystyczne forum - bez cenzury, regulamin promuje racjonalną i rzeczową dyskusję i ułatwia ucinanie demagogii. Forum założone przez Wuja Zbója.
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
rafal3006
Opiekun Forum Kubusia
Dołączył: 30 Kwi 2006
Posty: 35368
Przeczytał: 20 tematów
Skąd: z innego Wszechświata Płeć: Mężczyzna
|
Wysłany: Nie 11:22, 22 Wrz 2013 Temat postu: Algebra Kubusia Beta 4.0 z dna 2013-09-22 |
|
|
… wszystko co chcecie, żeby ludzie wam czynili, wy też im podobnie czyńcie …
Ewangelia Mateusza 7:12
Algebra Kubusia
Autorzy: Kubuś i Przyjaciele
Kim jest Kubuś?
Kubuś to wirtualny Internetowy Miś, teleportowany do ziemskiego Internetu przez zaprzyjaźnioną cywilizację z innego Wszechświata.
Algebra Kubusia to końcowy efekt siedmioletniej dyskusji na forach sfinia.fora.pl, [link widoczny dla zalogowanych], [link widoczny dla zalogowanych] i [link widoczny dla zalogowanych]. Dziękuję wszystkim, którzy dyskutując z Kubusiem przyczynili się do jej powstania. Szczególne podziękowania dla: Rafała3006(medium), Wuja Zbója, Voratha, Macjana, Quebaba, Windziarza, Fizyka, Sogorsa, Fiklita, Yorgina i Pana Baryckiego.
Wstęp.
Aksjomat to założenie które przyjmuje się bez dowodu.
W świecie techniki inżynierowie przyjmują za aksjomat zero-jedynkowe definicje operatorów logicznych plus banalny rachunek zero-jedynkowy z którego wynikają wszelkie prawa logiczne.
Takie podejście jest poprawne jeśli interesuje nas fizyczne zbudowanie komputera (hardware), jednak sprzęt bez oprogramowania (software) to tylko bezużyteczna kupa złomu. Software (naturalna logika człowieka) to zupełnie co innego niż hardware, mimo że w obu przypadkach fundamentem jest ta sama, symboliczna algebra Boole’a (algebra Kubusia).
Jest oczywistym, że jeśli istnieje matematyka pod którą podlega człowiek, to musi być ona absolutnie banalna, na poziomie 5-cio latka. Ta maksyma przyświecała Kubusiowi od samego początku walki o rozszyfrowanie matematycznych podstaw naturalnej logiki człowieka.
Czym różni się symboliczna algebra Boole’a (algebra Kubusia) od logiki matematycznej znanej Ziemianom?
Zdecydowanie nowe są matematyczne fundamenty.
Analogia do matematyki klasycznej jest tu 100%.
Matematyka klasyczna:
W zapisie:
x+1
mamy matematykę „płaską” bez współrzędnych kartezjańskich.
Prawa matematyki klasycznej zachodzą bez współrzędnych kartezjańskich:
(a+b)^2 = a^2 +2ab + b^2
Dopiero w tym zapisie:
Y=x+1
możemy narysować wykres funkcji Y=x+1 w układzie współrzędnych kartezjańskich
Symboliczna algebra Boole’a (algebra Kubusia):
W algebrze Boole’a zapis:
p+~q
to matematyka „płaska” bo nie ma tu współrzędnej Y.
Prawa logiczne zachodzą bez współrzędnej Y.
Prawo De Morgana:
p+q = ~(~p*~q)
Pojęcie funkcji logicznej Y jest w logice podstawowe, bez tego nie da się opisać matematycznie naturalnej logiki człowieka.
Dopiero w tym zapisie:
Y = p+~q
gdzie:
Y - funkcja logiczna
p, ~q - zmienne binarne
możemy narysować wykres funkcji logicznej Y=p+~q.
Oczywiście funkcję logiczną Y=p+~q rysujemy w osi czasu, układ kartezjański się do tego kompletnie nie nadaje.
Co nowego jest w algebrze Kubusia?
Kluczową nowością jest tu poprawne opisywanie tabel zero-jedynkowych w rachunku zero-jedynkowym w postaci funkcji Y (~Y), nie ma o tym w żadnym podręczniku logiki. Przykład poprawnego opisu przekształceń w rachunku zero-jedynkowym zobaczymy za chwilę we fragmencie wyprowadzającym prawa De Morgana.
Spis treści:
Część I
Fundamenty matematyczne
1.0 Notacja
1.1 Wprowadzenie do algebry Kubusia
1.2 Tablica Kubusia
2.0 Matematyczne fundamenty algebry Kubusia
2.1 Operatory jednoargumentowe
2.2 Abstrakcyjna budowa operatora logicznego
2.3 Prawa Prosiaczka
2.4 Wykresy czasowe w algebrze Kubusia
2.5 Operator transmisji
2.6 Operator negacji
2.7 Równanie ogólne dla operatorów transmisji i negacji
3.0 Rachunek zero-jedynkowy
3.1 Operatory dwuargumentowe
3.2 Maszynowe definicje operatorów logicznych
3.3 Prawa przemienności argumentów w operatorach OR i AND
3.4 Prawo De Morgana dla spójnika „lub”(+)
3.5 Prawo De Morgana dla spójnika „i”(*)
3.6 Równanie ogólne dla operatorów OR i AND
3.7 Związek rachunku zero-jedynkowego z naturalną logiką człowieka
3.7.1 Analiza zdania ze spójnikiem „lub”(+)
3.7.2 Analiza zdania ze spójnikiem „i”(*)
4.0 Najważniejsze prawa algebry Boole’a
4.1 Tworzenie równań logicznych opisujących dowolną tabelę zero-jedynkową
4.2 Definicja symboliczna operatora OR
4.3 Definicja symboliczna operatora AND
4.4 Logika człowieka w spójnikach „lub”(+) i „i”(*)
1.0 Notacja
Znaczenie symboli 0 i 1 poza nową teoria zbiorów:
1 = prawda
0 = fałsz
Znaczenie symboli 0 i 1 w nowej teorii zbiorów:
1 - zbiór niepusty (istnieje)
0 - zbiór pusty (nie istnieje)
Nowa teoria zbiorów to najprostsza teoria implikacji i równoważności, zrozumiała dla każdego 5-cio latka i każdego humanisty.
~ - symbol negacji, przeczenie „nie” w naturalnej logice człowieka
Prawo podwójnego przeczenia:
p=~(~p)
Zmienna binarna:
Zmienna mogąca przyjmować w osi czasu wyłącznie dwie wartości 0 albo 1
Przykłady:
p, q, ~r
Funkcja logiczna:
Funkcja przyjmująca w osi czasu wyłącznie dwie wartości 0 albo 1 w zależności od aktualnego stanu zmiennych binarnych i użytego operatora logicznego.
Przykłady funkcji logicznych:
Y=p*q+~r
p=>q
gdzie:
„*”, „+”, => - operatory logiczne
Y, p=>q - funkcje logiczne
Spójniki logiczne w algebrze Kubusia:
Operatory OR i AND:
* - spójnik „i” w mowie potocznej
+ - spójnik „lub” w mowie potocznej
Operatory implikacji i równoważności:
=> - warunek wystarczający, spójnik „na pewno” w całym obszarze matematyki
~> - warunek konieczny, spójnik „może” w implikacji
[~>] - wirtualny warunek konieczny w równoważności, nie jest to spójnik „może”
~~> - naturalny spójnik „może” wystarczy pokazać jeden przypadek prawdziwy
<=> - wtedy i tylko wtedy
$ - spójnik „albo” z naturalnej logiki człowieka
1.1 Wprowadzenie do algebry Kubusia
Definicja algebry Kubusia:
Algebra Kubusia to matematyczny opis naturalnej logiki człowieka
Poznajmy kluczowe definicje algebry Kubusia:
* - spójnik „i” w mowie potocznej
+ - spójnik „lub” w mowie potocznej
Zmienna binarna:
Zmienna mogąca przyjmować w osi czasu wyłącznie dwie wartości 0 albo 1
Przykłady:
p, q, ~r
Funkcja logiczna:
Funkcja przyjmująca w osi czasu wyłącznie dwie wartości 0 albo 1 w zależności aktualnego stanu zmiennych binarnych i użytego operatora logicznego.
Przykłady funkcji logicznych:
Y=p*q+~r
p=>q
„*”, „+”, => - operatory logiczne
Y, p=>q - funkcje logiczne
Maszynowa definicja operatora logicznego (techniczna):
Operator logiczny to kompletna wynikowa kolumna pOPq będąca odpowiedzią na wszystkie możliwe wymuszenia 0 i 1 na wejściach p i q.
Kod: |
p q pOPq
1 1 =x
1 0 =x
0 1 =x
0 0 =x |
Dla dwóch zmiennych p i q mamy 16 możliwych odpowiedzi układu (2^4), czyli 16 różnych na mocy definicji operatorów logicznych.
Aksjomat to założenie które przyjmuje się bez dowodu.
Aksjomatyka algebry Kubusia to wszystkie możliwe, maszynowe definicje operatorów logicznych plus banalne zasady rachunku zero-jedynkowego.
Kod: |
p q OR NOR AND NAND <=> XOR => N(=>) ~> N(~>) ~~> N(~~>) P NP Q NQ
1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1
0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0
0 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 |
Definicje maszynowe są wystarczające do fizycznego zbudowania dowolnego operatora przy pomocy innego.
W szczególności wystarczy fizyczna realizacja dowolnego z poniższych operatorów:
NAND, NOR, implikacja prosta =>, implikacja odwrotna ~>
aby fizycznie zrealizować pozostałe operatory logiczne.
W algebrze Kubusia wychodząc od dowolnej definicji maszynowej operatora logicznego dochodzimy do odpowiedniej definicji symbolicznej, czyli definicji maszynowej w której wszystkie linie opisane są równaniami algebry Boole’a.
Dopiero definicja symboliczna ma kluczową i decydującą wartość dla matematycznego opisu naturalnej logiki człowieka. Do wyprowadzenia definicji symbolicznej operatora z jego definicji maszynowej konieczna jest teoria którą będziemy sukcesywnie poznawać.
Definicja maszynowa operatora AND:
Kod: |
p q Y=p*q
1*1 =1
1*0 =0
0*1 =0
0*0 =0 |
Maszynowa definicja operatora AND:
Y=p*q
co matematycznie oznacza:
Y=1 <=> p=1 i q=1
inaczej:
Y=0
W maszynowej definicji znaczek „*” jest tożsamy z definicją operatora logicznego, znaczymy nim wszystkie linie tabeli zero-jedynkowej od góry do dołu.
W symbolicznej definicji operatora AND jest inaczej, zobaczmy to na przykładzie.
Tata:
W.
Synku, jutro pójdziemy do kina i do teatru
Ya=K*T
co matematycznie oznacza:
Y=1 <=> K=1 i T=1
czyli:
Dotrzymam słowa (Y=1) jeśli jutro pójdziemy do kina (K=1) i do teatru (T=1)
Synek (lat 3 który poznaje logikę - bo 5-cio latek zna odpowiedź):
Tata, a kiedy skłamiesz?
Tata:
U.
Skłamię (~Y=1), jeśli jutro nie pójdziemy do kina (~K=1) lub nie pójdziemy do teatru (T=1)
~Y=~K+~T
co matematycznie oznacza:
~Y=1 <=> ~K=1 lub ~T=1
Matematycznie czytamy:
Prawdą jest (=1) że skłamię (~Y), jeśli jutro nie pójdziemy do kina (~K=1) lub nie pójdziemy do teatru (T=1)
Znaczenie symboli:
1 - prawda
0 - fałsz
Y - dotrzymam słowa
~Y - skłamię
W naturalnej logice człowieka oznacza to że skłamię, jeśli nie pójdę w dowolne miejsce, nie ma tu żadnych zer i jedynek, które wyżej, jako matematycy wprowadziliśmy.
Synek:
Tata ale powiedz dokładnie kiedy skłamiesz?
Tata:
Synku, skłamię jeśli nie pójdziemy w dowolne miejsce, czyli:
B
Skłamię (~Yb=1), jeśli pójdziemy do kina (K=1) i nie pójdziemy do teatru (~T=1)
~Yb=K*~T = 1*1=1
Matematycznie czytamy:
Prawdą jest (=1), że skłamię (~Y) jeśli pójdziemy do kina (K=1) i nie pójdziemy do teatru (~T=1)
lub
C.
Skłamię (~Yc=1), jeśli nie pójdziemy do kina (~K=1) i pójdziemy do teatru (T=1)
~Yc=~K*T =1*1=1
lub
D.
Skłamię (~Yd=1), jeśli nie pójdziemy do kina (~K=1) i nie pójdziemy do teatru (~T=1)
~Yd = ~K*~T =1*1=1
W zapisie matematycznym równanie kiedy skłamię jest oczywiście takie:
~Y = ~Yb+~Yc+~Yd
~Y = K*~T + ~K*T + ~K*~T
Minimalizujemy (wyprzedzając czas - zapoznamy się z tym za chwilę):
~Y = K*~T + ~K*(T+~T)
;Prawa algebry Boole,a:
; Wyciągnięcie zmiennej ~K przed nawias
; T+~T=1
; ~K*1 = ~K
~Y = (K*~T) + ~K
Przechodzimy do logiki przeciwnej poprzez negacje zmiennych i wymianę spójników:
Y = (~K+T)*K
Y = ~K*K + K*T
;Mnożenie wielomianów
;~K*K =0
;0+x = x
Y = K*T
Przechodzimy do logiki ujemnej poprzez negację zmiennych i wymianę spójników:
~Y = ~K+~T
Jak widzimy otrzymaliśmy najprostszą odpowiedź na pytanie „Kiedy skłamię” podaną przez ojca w zdaniu U.
Jest oczywistym, że żaden 5-cio latek, ani żaden humanista nie zrozumie matematyki, którą się tu posługujemy, jednak z dziecinną łatwością wypowie wszystkie zdania prezentowane wyżej. Te zdania to definicja symboliczna operatora AND.
Dowód:
Doskonale widać, że w zdaniach W, U, Ya, Yb, Yc, Yd wszystkie zmienne mamy sprowadzone do jedynek, czyli w zerach i jedynkach nie ma tu żadnej logiki. To jest właśnie symboliczna algebra Boole’a = algebra Kubusia.
Definicja:
Punkt odniesienia to zdanie względem którego kodujemy zero-jedynkową definicję operatora logicznego.
Dla kodowania z punktem odniesienia (zdanie wypowiedziane) ustawionym na zdaniu W=Ya otrzymujemy maszynową definicję operatora AND w logice dodatniej (bo Y)
W=Ya: Y=K*T
co matematycznie oznacza:
Y=1 <=> K=1 i T=1
Ostatnie równanie wymusza wartościowanie dla całej tabeli symbolicznej:
Y=1, ~Y=0
K=1, ~K=0
T=1, ~T=0
stąd otrzymujemy definicję maszynową operatora AND w logice dodatniej (bo Y):
Kod: |
Definicja symboliczna |Definicja maszynowa
operatora AND |Operatora AND
Dotrzymam słowa (Y): |Kodowanie dla punktu odniesienia: W:Y=K*T
W=A: Y=K*T | K T Y=K*T
A: K* T = Ya | 1* 1 =1
Skłamię (~Y): |
U: ~Y=~K+~T |
U: ~Y=K*~T+~K*T+~K*~T |
B: K*~T =~Yb | 1* 0 =0
C:~K* T =~Yc | 0* 1 =0
D:~K*~T =~Yd | 0* 0 =0 |
Zauważmy, że spójniki „i”(*) z naturalnej logiki człowieka nie są kompletną, maszynową definicją operatora AND.
Żaden człowiek nie wypowie jednocześnie zdania W i U a dopiero to jest kompletny operator AND:
W: Y=K*T
U: ~Y=~K+~T
Zdania W i U to dwa niezależne zdania, z których zbudowany jest operatora AND.
Oczywiście to dwa fundamentalnie różne zdania, oba prawdziwe, związane ze sobą prawem przejścia do logiki przeciwnej - negujemy zmienne i wymieniamy spójniki na przeciwne.
Z definicji symbolicznej wynika, że operator AND to złożenie spójnika „i”(*) w logice dodatniej (bo Y):
Y=K*T
ze spójnikiem „lub”(+) w logice ujemnej (bo ~Y):
~Y=~K+~T
Logika dodatnia to zanegowana logika ujemna:
Y = ~(~Y)
Podstawiając W i U mamy prawo De Morgana:
Y =K*T = ~(~K+~T)
Powyższe równanie opisuje wyłącznie pierwszą linię W=Ya w powyższej tabeli symbolicznej i nie ma nic wspólnego z liniami B, C i D.
Wniosek:
Nie istnieje operator AND bez dwóch spójników „i”(*) i „lub”(+), nie da się zatem wyeliminować spójnika „i”(*) prawem De Morgana.
Y=~(~K+~T) - to jest równanie opisujące wyłącznie pierwszą linię W=Ya
tożsame z:
Y=K*T
Nie jest zatem prawdą, że prawem De Morgana pozbyliśmy się spójnika „i”(*).
Spójnik „i”(*) pozostanie tu niewzruszony na wieki w linii W operatora AND wyżej i nie ma takiej siły, któryby go ruszyła.
Dla kodowania z punktem odniesienia (zdanie wypowiedziane) ustawionym na zdaniu U otrzymujemy maszynową definicję operatora OR w logice ujemnej (bo ~Y).
U: ~Y=~K+~T
co matematycznie oznacza:
~Y=1 <=> ~K=1 lub ~T=1
Ostatnie równanie wymusza wartościowanie dla całej tabeli symbolicznej:
~Y=1, Y=0
~K=1, K=0
~T=1, T=0
stąd otrzymujemy maszynową definicję operatora OR w logice ujemnej (bo ~Y):
Kod: |
Definicja symboliczna |Definicja maszynowa
operatora AND |Operatora OR w logice ujemnej (bo ~Y)
Dotrzymam słowa (Y): |Kodowanie dla punktu odniesienia: U:~Y=~K+~T
W=A: Y=K*T | ~K ~T ~Y=~K+~T
A: K* T = Ya | 0+ 0 =0
Skłamię (~Y): |
U: ~Y=~K+~T |
U: ~Y=K*~T+~K*T+~K*~T |
B: K*~T =~Yb | 0+ 1 =1
C:~K* T =~Yc | 1+ 0 =1
D:~K*~T =~Yd | 1+ 1 =1 |
Zauważmy, że w definicji symbolicznej operatora AND nic się nie zmieniło. Definicję maszynową operatora OR w logice ujemnej (bo ~Y) znakujemy znaczkiem „+”, różnym na mocy definicji od znaczka „*”.
Definicja maszynowa operatora OR:
Kod: |
p q Y=p+q
0+0 =0
0+1 =1
1+0 =1
1+1 =1 |
Maszynowa definicja operatora OR:
Y=p+q
co matematycznie oznacza:
Y=1 <=> p=1 lub q=1
inaczej:
Y=0
W maszynowej definicji znaczek „+” jest tożsamy z definicją operatora logicznego, znaczymy nim wszystkie linie tabeli zero-jedynkowej od góry do dołu.
1.2 Tablica Kubusia
Tablica Kubusia logiki to podsumowanie całej algebry Kubusia.
W podręczniku głównym należy zwrócić szczególną uwagę na równania ogólne dla operatorów:
I.
Transmisji i negacji
II.
OR i AND
III.
Implikacji prostej i odwrotnej
IV.
Teorię równoważności
Kod: |
*******************
* Tablica Kubusia *
*******************
Znaczenie symboli 0 i 1 poza nową teoria zbiorów:
1 = prawda
0 = fałsz
Znaczenie symboli 0 i 1 w nowej teorii zbiorów:
1 - zbiór niepusty (istnieje)
0 - zbiór pusty (nie istnieje)
Nowa teoria zbiorów to najprostsza teoria implikacji i równoważności, zrozumiała dla każdego 5-cio latka i każdego humanisty.
~ - symbol negacji, przeczenie „nie” w naturalnej logice człowieka
Prawo podwójnego przeczenia:
p=~(~p)
Zmienna binarna:
Zmienna mogąca przyjmować w osi czasu wyłącznie dwie wartości 0 albo 1
Przykłady:
p, q, ~r
Funkcja logiczna:
Funkcja przyjmująca w osi czasu wyłącznie dwie wartości 0 albo 1
w zależności od aktualnego stanu zmiennych binarnych i użytego operatora logicznego.
Przykłady funkcji logicznych:
Y=p*q+~r
p=>q
„*”, „+”, => - operatory logiczne
Y, p=>q - funkcje logiczne
Spójniki logiczne w algebrze Kubusia:
Operatory OR i AND:
* - spójnik „i” w mowie potocznej
+ - spójnik „lub” w mowie potocznej
Operatory implikacji i równoważności:
=> - warunek wystarczający, spójnik „na pewno” w całym obszarze matematyki
~> - warunek konieczny, spójnik „może” w implikacji
[~>] - wirtualny warunek konieczny w równoważności, nie jest to spójnik „może”
~~> - naturalny spójnik „może” wystarczy pokazać jeden przypadek prawdziwy
<=> - wtedy i tylko wtedy
*******************************************
* Operatory transmisji, negacji, OR i AND *
*******************************************
Definicja logiki dodatniej i ujemnej w operatorach transmisji, negacji oraz OR i AND:
Y=p - logika dodatnia bo Y
~Y=~p - logika ujemna bo ~Y
Y=p+q - logika dodatnia bo Y
~Y=~p*~q - logika ujemna bo ~Y
*************************************
* I. Operatory transmisji i negacji *
*************************************
Symboliczna definicja operatora transmisji ## Symboliczna definicja operatora negacji
A1: Y=p ## B1: Y=~p
A2:~Y=~p ## B2:~Y=p
Zbiory p i ~p są rozłączne ## Zbiory p i ~p są rozłączne
Szczegóły: ## Szczegóły:
A1: Y=p ## B1: Y=~p
co matematycznie oznacza: ## co matematycznie oznacza:
A1: Y=1 <=> p=1 ## B1: Y=1 <=> ~p=1
Przejście do logiki ujemnej poprzez negację ## Przejście do logiki ujemnej poprzez negację
zmiennych i wymianę spójników (tu ich brak) ## zmiennych i wymianę spójników (tu ich brak)
A2: ~Y=~p ## B2: ~Y=p
co matematycznie oznacza: ## co matematycznie oznacza:
A2: ~Y=1 <=> ~p=1 ## B2: ~Y=1 <=> p=1
Logika dodatnia to zanegowana logika ujemna:## Logika dodatnia to zanegowana logika ujemna:
Y=~(~Y) ## Y=~(~Y)
Podstawiając A1 i A2 mamy prawo De Morgana ## Podstawiając B1 i B2 mamy prawo De Morgana
dla funkcji Y=p (A1=A3): ## dla funkcji Y=p (B1=B3):
A3: Y= p= ~(~p) ## B3: Y= ~p= ~(p)
gdzie:
## - różne na mocy definicji
Parametr aktualny p (ze świata fizyki np. p=kino) po obu stronach znaczka ## może być absolutnie dowolny,
w szczególności może być identyczny, to bez znaczenia.
Znaczka ## nie jesteśmy w stanie fizycznie usunąć
Przykład: ## Przykład:
A1. ## B1.
Jutro pójdę do kina ## Jutro nie pójdę do kina
Y=K ## Y=~K
co matematycznie oznacza: ## co matematycznie oznacza:
Y=1 <=> K=1 ## Y=1 <=> ~K=1
Przejście do logiki ujemnej: ## Przejście do logiki ujemnej:
~Y=~K ## ~Y=K
A2. ## B2.
Skłamię (~Y=1) wtedy i tylko wtedy gdy ## Skłamię (~Y=1) wtedy i tylko wtedy gdy
jutro nie pójdę do kina (~K=1) ## jutro pójdę do kina (K=1)
~Y=~K ## ~Y=K
co matematycznie oznacza: ## co matematycznie oznacza:
~Y=1 <=> ~K=1 ## ~Y=1 <=> K=1
A3. ## B3.
Związek logiki dodatniej i ujemnej: ## Związek logiki dodatniej i ujemnej:
Y=~(~Y) ## Y=~(~Y)
Podstawiając A1 i A2 mamy prawo De Morgana: ## Podstawiając B1 i B2 mamy prawo De Morgana:
Y = K = ~(~K) ## Y= ~K =~(K)
Nie może się zdarzyć ~(…), że ## Nie może się zdarzyć ~(…), że
jutro nie pójdę do kina ## jutro pójdę do kina
Y = K= ~(~K) ## Y= ~K= ~(K)
**************************
* II. Operatory OR i AND *
**************************
Symboliczna definicja operatora OR ## Symboliczna definicja operatora AND
A1: Y=p+q ## B1: Y=p*q
A2: ~Y=~p*~q ## B2:~Y=~p+~q
Zbiory p i q mają część wspólną ## Zbiory p i q mają część wspólną
lecz żaden z nich nie zawiera się w drugim ## lecz żaden z nich nie zawiera się w drugim
Szczegóły: ## Szczegóły:
A1: Y=p+q ## B1: Y=p*q
co matematycznie oznacza: ## co matematycznie oznacza:
A1: Y=1 <=> p=1 lub q=1 ## B1: Y=1 <=> p=1 i q=1
Przejście do logiki ujemnej poprzez negację ## Przejście do logiki ujemnej poprzez negację
zmiennych i wymianę spójników na przeciwne ## zmiennych i wymianę spójników na przeciwne
A2:~Y=~p*~q ## B2:~Y=~p+~q
co matematycznie oznacza: ## co matematycznie oznacza:
A1:~Y=1 <=>~p=1 i ~q=1 ## B1:~Y=1 <=>~p=1 lub ~q=1
Logika dodatnia to zanegowana logika ujemna:## Logika dodatnia to zanegowana logika ujemna:
Y=~(~Y) ## Y=~(~Y)
Podstawiając A1 i A2 mamy prawo De Morgana ## Podstawiając B1 i B2 mamy prawo De Morgana
dla funkcji Y=p+q (A1=A3): ## dla funkcji Y=p*q (B1=B3):
A3: Y= p+q= ~(~p*~q) ## B3: Y= p*q= ~(~p+~q)
gdzie:
## - różne na mocy definicji
Parametry aktualne p i q (ze świata fizyki np. p=kino, q=teatr) po obu stronach znaczka ## mogą być absolutnie dowolne,
w szczególności mogą być identyczne albo zamienione miejscami, to bez znaczenia.
Znaczka ## nie jesteśmy w stanie fizycznie usunąć
Przykład: ## Przykład:
A1. ## B1.
Jutro pójdę do kina lub do teatru ## Jutro pójdę do kina i do teatru
Y=K+T ## Y=K*T
co matematycznie oznacza: ## co matematycznie oznacza:
Y=1 <=> K=1 lub T=1 ## Y=1 <=> K=1 i T=1
Przejście do logiki ujemnej: ## Przejście do logiki ujemnej:
~Y=~K*~T ## ~Y=~K+~T
A2. ## B2.
Skłamię wtedy i tylko wtedy gdy jutro ## Skłamię wtedy i tylko wtedy gdy jutro
nie pójdę do kina i nie pójdę do teatru ## nie pójdę do kina lub nie pójdę do teatru
~Y=~K*~T ## ~Y=~K+~T
co matematycznie oznacza: ## co matematycznie oznacza:
~Y=1 <=> ~K=1 i ~T=1 ## ~Y=1 <=> ~K=1 lub ~T=1
A3. ## B3.
Związek logiki dodatniej i ujemnej: ## Związek logiki dodatniej i ujemnej:
Y=~(~Y) ## Y=~(~Y)
Podstawiając A1 i A2 mamy prawo De Morgana: ## Podstawiając B1 i B2 mamy prawo De Morgana:
Y = K+T = ~(~K*~T) ## Y= K*T =~(~K+~T)
Nie może się zdarzyć ~(…), że jutro ## Nie może się zdarzyć ~(…), że jutro
nie pójdę do kina i nie pójdę do teatru ## nie pójdę do kina lub nie pójdę do teatru
Y = K+T = ~(~K*~T) ## Y= K*T= ~(~K+~T)
***************************************************************
* Operatory implikacji prostej i odwrotnej oraz równoważności *
***************************************************************
Definicja logiki dodatniej i ujemnej w operatorach implikacji i równoważności:
p=>q - logika dodatnia bo q
~p~>~q - logika ujemna bo ~q
p~>q - logika dodatnia bo q
~p=>~q - logika ujemna bo ~q
Znaczenie symboli:
p=>q - warunek wystarczający =>, zbiór p zawiera się w zbiorze q
p~>q - warunek konieczny ~>, zbiór p zawiera w sobie zbiór q
Implikacja:
Zbiory p i q nie są tożsame
Równoważność:
Zbiory p i q są tożsame
Znaczenie symboli 0 i 1 w nowej teorii zbiorów:
1 - zbiór niepusty (istnieje)
0 - zbiór pusty (nie istnieje)
Matematyczny fundament nowej teorii zbiorów:
Definicja znaczka ~~> (naturalny spójnik „może”):
~~> - zbiór na podstawie wektora ~~> musi mieć co najmniej jeden element wspólny ze zbiorem wskazywanym przez strzałkę wektora ~~>
W naturalnym języku mówionym spójnik „może” między p i q
p~~>q = p*q=1 (zbiór niepusty)
Jeśli zajdzie p to może ~~> zajść q
Definicja znaczka => (warunek wystarczający, gwarancja matematyczna):
=> - zbiór na podstawie wektora => musi zawierać się w zbiorze wskazywanym przez strzałkę wektora =>
W naturalnym języku mówionym spójnik „na pewno” => między p i q
Jeśli zajdzie p to na pewno => zajdzie q
p=>q = p*q =p =1 (zbiór niepusty)
Definicja znaczka ~> (warunek konieczny):
~> - zbiór na podstawie wektora ~> musi zawierać w sobie zbiór wskazywany przez strzałkę wektora ~>
Implikacja (zbiory p i q nie są tożsame):
Jeśli zajdzie p to może ~> zajść q
p~>q = p*q =q =1 (zbiór niepusty)
Zbiór p zawiera w sobie zbiór q i nie jest tożsamy ze zbiorem q
~> - najzwyklejsze „rzucanie monetą”
Twierdzenie:
Warunek konieczny ~> spełniony jest wtedy i tylko wtedy gdy zachodzi prawo Kubusia:
p~>q = ~p=>~q
p=>q = ~p~>~q
Z praw Kubusia wynika, że zamiast dowodzić trudny w dowodzeniu warunek konieczny ~>
możemy dowodzić łatwy w dowodzeniu warunek wystarczający =>.
Definicja warunku wystarczającego =>:
A: p=> q =1
B: p~~>~q=0
A:
Jeśli zajdzie p to na pewno => zajdzie q
p=>q= p*q =p =1 (zbiór niepusty)
Zbiór p zawiera się => w zbiorze q
B:
p~~>~q= p*~q =0 (zbiór pusty)
Z definicji A wynika, że nie istnieje element: należący do zbioru p i nie należący do zbioru q
Na mocy definicji znaczka => zbiór p zawiera się w zbiorze q, zatem zbiory p i ~q są zbiorami rozłącznymi.
Iloczyn logiczny zbiorów rozłącznych jest zbiorem pustym, stąd w wyniku 0.
Stąd:
Definicja kontrprzykładu dla warunku wystarczającego => A:p=>q:
B: p~~>~q=1
I.
Jeśli znajdziemy choć jeden element: należący do zbioru p i nie należący do zbioru q:
p~~>~q =p*~q =1 (zbiór niepusty)
to automatycznie udowodnimy fałszywość zdania A:
A: p=> q =0
II.
Jeśli udowodnimy iż nie istnieje element: należący do zbioru p i nie należący do zbioru q
p~~>~q =p*~q =0 (zbiór pusty)
To automatycznie udowodnimy prawdziwość zdania A:p=>q:
p=>q =1
pod warunkiem, że pokażemy przynajmniej jeden element należący do zbioru p i zbioru q:
p~~>q = p*q =1 (zbiór niepusty)
Uzasadnienie w pkt. x.x
*************************************************
* III. Operatory implikacji prostej i odwrotnej *
*************************************************
Symboliczna definicja implikacji prostej: ## Symboliczna definicja implikacji odwrotnej:
p=>q = ~p~>~q ## p~>q = ~p=>~q
p=>q ## p~>q
Zbiór p zawiera się w zbiorze q ## Zbiór p zawiera w sobie zbiór q
i nie jest tożsamy ze zbiorem q ## i nie jest tożsamy ze zbiorem q
Szczegóły: ## Szczegóły:
A1: p=>q= p*q= p ## B1: p~>q= p*q =q
Przejście do logiki ujemnej poprzez negację ## Przejście do logiki ujemnej poprzez negację
zmiennych i wymianę spójników na przeciwne ## zmiennych i wymianę spójników na przeciwne
A2:~p~>~q= ~p*~q =~q ## B2: ~p=>~q= ~p*~q =~p
W implikacji zachodzi prawo Kubusia: ## W implikacji zachodzi prawo Kubusia:
A1:p=>q = A2:~p~>~q ## B1:p~>q = B2:~p=>~q
Stąd równanie ogólne w zbiorach dla operatorów implikacji prostej i odwrotnej:
(A1:p=>q= p*q =p) = (A2:~p~>~q= ~p*~q =~q) ## (B1:p~>q= p*q =q) = (B2:~p=>~q= ~p*~q =~p)
gdzie:
## - różne na mocy definicji
Parametry aktualne p i q (ze świata fizyki np. p=pies, q=cztery łapy) po obu stronach znaku ## mogą być absolutnie dowolne,
w szczególności identyczne albo zamienione miejscami, to bez znaczenia.
Znaczka ## nie jesteśmy w stanie fizycznie usunąć.
Przykład implikacji prostej:
A.
Jeśli zwierzę jest psem to na pewno => ma cztery łapy
P=>4L
Zbiór „pies” zawiera się w zbiorze zwierząt z „czteroma łapami”
Prawo Kubusia:
P=>4L = ~P~>~4L
C.
Jeśli zwierzę nie jest psem to może ~> nie mieć czterech łap
~P~>~4L = ~P*~4L =~4L =1 bo kura
Zbiór ~P zawiera w sobie zbiór ~4L i nie jest tożsamy ze zbiorem ~4L
~P = wąż, kura, słoń
~4L = wąż, kura
Słoń decyduje o braku tożsamości zbiorów ~P i ~4L
Przykład implikacji odwrotnej:
A.
Jeśli zwierzę ma cztery łapy to może ~> być psem
4L~>P= 4L*P =P =1 bo pies
Zbiór zwierząt z czteroma łapami zawiera w sobie zbiór psów
Prawo Kubusia:
4L~>P = ~4L=>~P
C.
Jeśli zwierzę nie ma czterech łap to na pewno => nie jest psem
~4L=>~P =~4L*~P =~P =1 - oczywistość
Zbiór ~4L zawiera się w zbiorze ~P i nie jest tożsamy ze zbiorem ~P bo:
~4L = wąż, kura
~P = wąż, kura, słoń
Słoń decyduje o braku tożsamości zbiorów ~4L i ~P
****************************
* IV. Teoria równoważności *
****************************
Definicja równoważności w zbiorach:
Zbiór p zawiera się w zbiorze q i jest tożsamy ze zbiorem q
p zajdzie wtedy i tylko wtedy <=> gdy zajdzie q
p<=>q = (p=>q)*(p[~>]q)
Równoważność to jednoczesne zachodzenie warunku wystarczającego => i koniecznego [~>] miedzy p i q
Potoczna definicja równoważności:
Do zajścia q potrzeba [~>] i wystarcza => aby zaszło p
Przykład:
Trójkąt jest prostokątny wtedy i tylko wtedy gdy zachodzi suma kwadratów
TP<=>SK = (TP=>SK)*(TP[~>]SK)
Do tego aby w trójkącie zachodziła suma kwadratów potrzeba [~>] i wystarcza => aby ten trójkąt był prostokątny
Definicja równoważności:
p<=>q = (p=>q)*(p[~>]q)
1.
Warunek wystarczający => w logice dodatniej (bo q):
p=>q
Jeśli zajdzie p to na pewno => zajdzie q
p=>q= p*q =p =1 (zbiór niepusty)
Zbiór p zawiera się w zbiorze q
Oczywistość wobec tożsamości zbiorów p i q (p=q)
2.
Wirtualny warunek konieczny [~>] występujący wyłącznie w równoważności:
p[~>]q
Jeśli zajdzie p to zajdzie q
p[~>]q = p*q =q =1 (zbiór niepusty)
Zbiór p zawiera w sobie [~>] zbiór q
Wobec tożsamości zbiorów p=q definicja znaczka [~>] jest spełniona.
Nie ma tu jednak mowy o jakimkolwiek „rzucaniu monetą” występującym
w implikacji z powodu tożsamości zbiorów p=q i ~p=~q.
Prawa Kubusia zachodzą także w równoważności:
p[~>]q = ~p=>~q
Stąd definicja równoważności w warunkach wystarczających:
p<=>q = (p=>q)*(~p=>~q)
W równoważności poprawne są prawa kontrapozycji:
~p=>~q = q=>p
Stąd najpopularniejsza definicja równoważności:
p<=>q = (p=>q)*(q=>p)
Przykład:
Trójkąt jest prostokątny wtedy i tylko wtedy gdy zachodzi suma kwadratów
TP<=>SK = (TP=>SK)*(~TP=>~SK)
1.
Warunek wystarczający w logie dodatniej (bo SK):
Jeśli trójkąt jest prostokątny to na pewno => zachodzi suma kwadratów
TP=>SK =TP*SK = TP =1 (zbiór niepusty)
Zbiór TP zawiera się w zbiorze SK, bowiem zachodzi tożsamość zbiorów TP=SK
2.
Warunek wystarczający w logice ujemnej (bo ~SK):
Jeśli trójkąt nie jest prostokątny to na pewno => nie zachodzi suma kwadratów
~TP=>~SK = ~TP*~SK = ~SK =1 (zbiór niepusty)
Zbiór ~TP zawiera w sobie zbiór ~SK, bowiem zachodzi tożsamość zbiorów ~TP=~SK
|
2.0 Matematyczne fundamenty algebry Kubusia
Algebra Kubusia to logika matematyczna w 100% zgodna z naturalną logiką człowieka, doskonale znana jej ekspertom, 5-cio latkom i humanistom. Wynika z tego, iż jest to jedyny dział matematyki którego w ogóle nie musimy się uczyć, bo wszyscy doskonale ją znamy.
Spójniki logiczne w algebrze Kubusia:
Operatory OR i AND:
* - spójnik „i” w mowie potocznej
+ - spójnik „lub” w mowie potocznej
Operatory implikacji i równoważności:
=> - warunek wystarczający, spójnik „na pewno” w całym obszarze matematyki
~> - warunek konieczny, spójnik „może” w implikacji
[~>] - wirtualny warunek konieczny w równoważności, nie jest to spójnik „może”
~~> - naturalny spójnik „może”, wystarczy pokazać jeden przypadek prawdziwy
<=> - wtedy i tylko wtedy
$ - spójnik „albo” z naturalnej logiki człowieka
Podstawowe definicje algebry Kubusia:
1 = prawda
0 = fałsz
~ - symbol przeczenia NIE
Aksjomaty znane ludziom od tysiącleci:
Dobro to brak zła
Zło to brak dobra
Prawda to brak fałszu
Prawda = NIE fałsz
1 = ~0
Fałsz to brak prawdy
Fałsz = NIE Prawda
0=~1
etc
Fundament algebry Kubusia:
1=~0
0=~1
Prawo podwójnego przeczenia:
p=~(~p)
Przykład:
A: Jestem uczciwy
A: U
B: Jestem nieuczciwy
B: ~U
C: Nieprawdą jest ~(…) że jestem nieuczciwy
C: ~(~U) = A: U
Zdania A i C znaczą dokładnie to samo
cnd
Zmienna binarna:
Zmienna binarna to zmienna mogąca przyjmować w osi czasu wyłącznie dwie wartości 0 albo 1.
Gdzie:
1 = prawda
0 = fałsz
Przykłady zmiennych binarnych:
p, q, ~r
Najważniejszymi operatorami w logice są operatory jednoargumentowe i dwuargumentowe.
2.1 Operatory jednoargumentowe
Definicja jednoargumentowego operatora logicznego:
Jednoargumentowy operator logiczny to funkcja logiczna Y jednej zmiennej binarnej
Możliwe są dwa użyteczne operatory jednoargumentowe:
Y=p - operator transmisji
Y=~p - operator negacji
Zwyczajowo w logice funkcję logiczną oznaczamy dużą literą Y.
Definicja logiki dodatniej i ujemnej:
Funkcja logiczna Y zapisana jest w logice dodatniej wtedy i tylko wtedy gdy nie jest zanegowana:
Y=p - logika dodatnia bo Y
~Y=p - logika ujemna bo ~Y
2.2 Abstrakcyjna budowa operatora logicznego
Wyobraźmy sobie czarną skrzynkę w której pracuje dwóch krasnoludków, Transmiterek i Negatorek.
Na przedniej ściance skrzynki zamontowany jest najzwyklejszy wyłącznik światła sterujący lampką człowieka typu zaświeć/zgaś. Po przeciwnej stronie skrzynki znajduje się lampka sterowana wyłącznie przez krasnoludka pracującego w środku skrzynki.
Po stronie człowieka dostępne są jeszcze dwa tajemnicze przyciski z opisem:
A - zezwalaj na pracę Transmiterka
A=1 - zezwalaj
A=0 - zabroń
B - zezwalaj na pracę Negatorka
B=1 - zezwalaj
B=0 - zabroń
Ustawmy na początek krasnoludkowe przełączniki w pozycję:
A=0 i B=0
1.
Jak widzimy lampką człowieka możemy sterować zaświecając ją i gasząc przełącznikiem, jednak lampka krasnoludka jest cały czas zgaszona.
2.
Pozwólmy na pracę wyłącznie Transmiterka ustawiając przełączniki:
A=1 i B=0
Jak widzimy, jeśli zaświecimy lampkę człowieka to automatycznie zapali się lampka krasnoludka, jeśli ją zgasimy to lampka krasnoludka również zgaśnie.
3.
Ustawmy teraz przełączniki w pozycję:
A=0 i B=1
pozwalając pracować wyłącznie Negatorkowi
Tym razem każde zaświecenie lampki człowieka skutkuje wygaszeniem lampki krasnoludka i odwrotnie.
4.
Ostatnia możliwość to zezwolenie na jednoczesną pracę obu krasnoludków poprzez ustawienie przełączników w pozycję:
A=1 i B=1
Ajajaj!
Jak widzimy możemy bez problemów zapalać i gasić lampkę człowieka jednak żarówka krasnoludka ledwie się pali, na dodatek z pudła wydobywa się czarny dym co jest dowodem walki na śmierć i życie między Tansmiterkiem a Negatorkiem. Jeden za wszelką cenę chce zaświecić lampkę, a drugi za wszelką cenę ją zgasić.
Ustawmy szybko przełączniki w pozycję:
A=0 i B=0
Nie możemy przecież dopuścić do zagłady krasnoludków, bo co powiedzą nasze dzieci?
W naszym abstrakcyjnym modelu wejściową zmienną binarną p jest lampka człowieka.
Wyjściem w tym modelu jest lampka krasnoludka którą oznaczamy Y.
Definicja jednoargumentowego operatora logicznego:
Jednoargumentowy operator logiczny to funkcja logiczna jednej zmiennej binarnej
Definicja operatora transmisji:
Y=p
Jeśli lampka człowieka się świeci (p=1) to lampka krasnoludka też się świeci (Y=1)
Jeśli lampka człowieka jest zgaszona (p=0) to również lampka krasnoludka jest zgaszona (Y=0)
Stąd mamy zero-jedynkową definicje operatora transmisji:
Y=p
Definicja operatora negacji:
Y=~p
Jeśli lampka człowieka się świeci (p=1) to lampka krasnoludka jest zgaszona (Y=0)
Jeśli lampka człowieka jest zgaszona (p=0) to lampka krasnoludka się świeci (Y=1)
Stąd mamy zero-jedynkową definicję operatora negacji:
Y=~p
… a jeśli nie wiemy który krasnoludek aktualnie pracuje, to czy możemy rozszyfrować który?
Oczywiście że tak.
Na wejściu p wymuszamy wszystkie możliwe stany. Odpowiedź na wyjściu Y jednoznacznie definiuje nam operator. Najważniejsze operatory jednoargumentowe właśnie poznaliśmy.
Definicja operatora logicznego w technicznej algebrze Boole’a:
Operator logiczny to odpowiedź układu na wszystkie możliwe wymuszenia 0 i 1 na wejściu układu.
Nie jest prawdą, że możemy zdefiniować wyłącznie dwa operatory jednoargumentowe jak wyżej.
Dwa kolejne operatory jednoargumentowe to:
1.
Jednoargumentowy operator chaosu o definicji:
Jak widzimy, tu lampka krasnoludka pali się cały czas, bez względu na stan wejściowej lampki człowieka p.
2.
Jednoargumentowy operator śmierci:
Tu lampka krasnoludka jest cały czas zgaszona, bez wzglądu na to co też ten człowiek na wejściu p sobie wyprawia.
W logice wyróżniamy:
1.
Operatory jednoargumentowe o jednym wejściu p i jednym wyjściu Y
2.
Operatory dwuargumentowe o dwóch wejściach p i q i jednym wyjściu Y.
Przy dwóch wejściach p i q możliwe są cztery różne wymuszenia na wejściach p i q.
3.
Operator n-argumentowy o n wejściach i tylko jednym wyjściu Y
Ogólna definicja operatora dwuargumentowego:
Kod: |
p q Y=?
1 1 =x
1 0 =x
0 1 =x
0 0 =x
|
Jak widzimy przy dwóch wejściach p i q możemy zdefiniować 16 (2^4) różnych stanów na wyjściu Y, czyli 16 różnych na mocy definicji operatorów logicznych.
Najważniejsze operatory dwuargumentowe to:
Kod: |
p q OR AND => ~> <=> XOR ~~>
1 1 1 1 1 1 1 0 1
1 0 1 0 0 1 0 1 1
0 1 1 0 1 0 0 1 1
0 0 0 0 1 1 1 0 1 |
Niebawem je poznamy.
2.3 Prawa Prosiaczka
Prawa Prosiaczka:
(p=1) = (~p=0) - prawda (=1) w logice dodatniej (bo p) jest tożsama z fałszem (=0) w logice ujemnej (bo ~p)
(p=0) = (~p=1) - fałsz (=0) w logice dodatniej (bo p) jest tożsamy z prawdą (=1) w logice ujemnej (bo ~p)
Zauważmy że zarówno w logice dodatniej jak i ujemnej mamy matematyczną świętość:
1 - prawda
0 - fałsz
Prawa Prosiaczka wyjaśnimy na przykładzie:
A.
Jutro pójdę do kina
Y=K - funkcja zapisana w logice dodatniej (bo Y)
co matematycznie oznacza:
Y=1 <=> K=1
Dotrzymam słowa (Y=1) wtedy i tylko wtedy gdy jutro pójdę do kina (K=1)
Y=K
co matematycznie oznacza:
Y=1 <=> K=1
Szczegółowo czytamy:
Prawdą jest (=1), że dotrzymam słowa (Y) wtedy i tylko wtedy gdy jutro pójdę do kina (K=1)
Y=1 <=> K=1
.. a kiedy skłamię?
Negujemy równanie A dwustronnie:
~Y=~K - funkcja zapisana w logice ujemnej (bo ~Y)
stąd:
B.
Skłamię (~Y=1) wtedy i tylko wtedy gdy jutro nie pójdę do kina (~K=1)
~Y=~K
co matematycznie oznacza:
~Y=1 <=> ~K=1
Szczegółowo czytamy:
Prawdą jest (=1) że skłamię (~Y) wtedy i tylko wtedy gdy jutro nie pójdę do kina (~K=1)
~Y=1 <=> ~K=1
Tabela prawdy dla naszego zdania:
Kod: |
Zapis symboliczny |Kodowanie
Równanie |Znaczenie |zero-jedynkowe
logiczne |równania | K Y=K ~K ~Y=~K
A: Y= K | Y=1<=> K=1 | 1 1 0 0
B:~Y=~K |~Y=1<=>~K=1 | 0 0 1 1
1 2 3 4 | 5 6 7 8
|
Matematycznie zachodzi:
Y # ~Y
bo kolumny wynikowe AB6 i AB8 są różne
Znaczenie zer i jedynek w logice dodatniej (Y) w kolumnie AB6:
A6: Y=1<=> K=1 - dotrzymam słowa
B6: Y=0 <=> K=0 - skłamię
Szczegółowo czytamy:
A6: Y=1 - prawdą jest (=1), że dotrzymam słowa (Y)
B6: Y=0 - fałszem jest (=0), że dotrzymam słowa (Y)
Znaczenie zer i jedynek w logice ujemnej (~Y) w kolumnie AB8:
B8: ~Y=1 <=> ~K=1 - skłamię
A8: ~Y=0 <=> ~K=0 - dotrzymam słowa
Szczegółowo czytamy:
B8: ~Y=1 - prawdą jest (=1) że skłamię (~Y)
A8: ~Y=0 - fałszem jest (=0), że skłamię (~Y)
Stąd zdanie:
A6: Y=1 - prawdą jest (=1), że dotrzymam słowa (Y)
Jest tożsame ze zdaniem:
A8: ~Y=0 - fałszem jest (=0), że skłamię (~Y)
Podobnie zdanie:
B8: ~Y=1 - prawdą jest (=1) że skłamię (~Y)
Jest tożsame ze zdaniem:
B6: Y=0 - fałszem jest (=0), że dotrzymam słowa (Y)
Prawa Prosiaczka w postaci tożsamości:
I prawo Prosiaczka
A6: (Y=1) = A8: (~Y=0)
Prawda (=1) w logice dodatniej (bo Y) jest tożsama z fałszem (=0) w logice ujemnej (bo ~Y)
II prawo Prosiaczka
B8: (~Y=1) = B6: (Y=0)
Prawda (=1) w logice ujemnej (bo ~Y) jest tożsama z fałszem (=0) w logice dodatniej (bo Y)
W dowolnej tożsamości zachodzi wynikanie w dwie strony.
Stąd prawa Prosiaczka to również równoważność:
A6: (Y=1) <=> A8: (~Y=0)
B8: (~Y=1) <=> B6: (Y=0)
Prawa Prosiaczka mówią o matematycznych tożsamościach zachodzących między logiką dodatnią (Y) i ujemną (~Y) i nie mają nic wspólnego z definicją operatora negacji.
Definicja naturalnej logiki człowieka:
Naturalna logika człowieka to funkcja logiczna gdzie wszystkie zmienne wejściowe sprowadzone są do jedynek.
Prawa Prosiaczka umożliwiają przejście z dowolnej tabeli zero-jedynkowej do równań algebry Boole’a, albo odwrotnie.
W linii A za punkt odniesienia przyjmujemy zdanie:
A: Y=K
co matematycznie oznacza:
Y=1 <=>K=1
Obsługiwane zero-jedynkowo w linii A56.
W linii B za punkt odniesienia przyjmujemy zdanie:
B: ~Y=~K
co matematycznie oznacza:
~Y=1 <=>~K=1
Obsługiwane zero-jedynkowo w linii B78.
Dlaczego w zdaniu B musimy zmienić punkt odniesienia?
Problem w tym, że jeśli w zdaniu B nie zmienimy punktu odniesienia, uznając zdanie A za świętą krowę do której wszystko musi się odnosić to zlikwidujemy logikę ujemną w algebrze Boole’a i stracimy możliwość opisania zdania B równaniem logicznym.
W tym przypadku tabela prawdy dla zdania A będzie wyglądała tak:
Kod: |
Zapis symboliczny |Kodowanie
Równanie |Znaczenie |zero-jedynkowe
logiczne |równania | K Y=K
A: Y= K | Y=1<=> K=1 | 1 1
B: Y= K?!| Y=0<=> K=0 | 0 0
1 2 3 4 | 5 6
|
Matematycznie zachodzi:
Y=1 # Y=0
Prawdą jest (=1) że dotrzymam słowa (Y) # Fałszem jest (=0) że dotrzymam słowa (Y)
Zdanie A przyjmie tu brzmienie identyczne jak poprzednio:
A.
Jutro pójdę do kina
Y=K - funkcja zapisana w logice dodatniej (bo Y)
co matematycznie oznacza:
Y=1 <=> K=1
Dotrzymam słowa (Y=1) wtedy i tylko wtedy gdy jutro pójdę do kina (K=1)
Y=K
co matematycznie oznacza:
Y=1 <=> K=1
Czytamy:
A.
Prawdą będzie (=1) że dotrzymam słowa wtedy i tylko wtedy gdy prawdą będzie (=1), że jutro pójdę do kina
Natomiast leżymy i kwiczymy na banalnym pytaniu 5-cio latka:
… tata, a kiedy skłamię?
Spróbujmy odpowiedzieć na to pytanie zgodnie z aktualną tabelą:
B.
Y=0 <=> K=0
Czytamy:
B.
Fałszem będzie (=0) że dotrzymam słowa (Y) wtedy i tylko wtedy gdy fałszem będzie (=0) że jutro pójdę do kina (K).
Zauważmy, że zdanie A bez problemu opisaliśmy równaniem algebry Boole’a (Y=K), natomiast nie mamy szans na opisanie równaniem zdania B bez skorzystania z prawa Prosiaczka, czyli bez przejścia do logiki ujemnej.
Opis linii B wyżej w postaci równania:
B: Y= K?!
to błąd czysto matematyczny, bowiem zdanie B to zupełnie co innego niż zdanie A i nie może być opisane tym samym równaniem logicznym.
Logika to równania algebry Boole’a a nie tabele zero-jedynkowe. Wszelkie prawa logiczne zapisane są w równaniach algebry Boole’a, nigdy w tabelach zero-jedynkowych.
2.4 Wykresy czasowe w algebrze Kubusia
Prawo Prosiaczka można ładnie przedstawić na wykresie czasowym.
Wyobraźmy sobie trzylatka który poznaje otaczający go świat.
W przedszkolu od pani nauczycielki dostaje worek zawierający najróżniejsze zwierzątka, jego zadaniem jest segregacja zwierząt na „psy” i „nie psy”.
Dzieciak ma dwa pudełka, zielone i brązowe, do zielonego musi wkładać „psy”, natomiast do brązowego „nie psy”.
Z: P - pies
B: ~P - nie pies
Zadanie dla trzylatka można przedstawić na wykresie czasowym, bowiem kolejne losowanie zwierząt odbywa się w czasie. Nie jest możliwa segregacja zwierząt w czasie nieskończenie krótkim.
Kolejne losowania opisane wykresem to:
I.
A.
Logika dodatnia obszar Y:
Wylosowano: Słoń
A: P=0
Fałszem jest (=0), że wylosowano „psa” (P)
B.
Logika ujemna bo obszar ~Y:
Wylosowano: Słoń
B: ~P=1
Prawdą jest (=1) że wylosowano „nie psa” (~P)
Doskonale widać prawo Prosiaczka:
A: (P=0) = B: (~P=1)
II.
A.
Logika dodatnia bo obszar Y:
Wylosowano: Pies
A: P=1
Prawdą jest (=1), że wylosowano „psa” (P)
B.
Logika ujemna bo obszar ~Y:
Wylosowano: Pies
B: ~P=0
Fałszem jest (=0), że wylosowano „nie psa” (~P)
Doskonale widać prawo Prosiaczka:
A: (P=1) = B: (~P=0)
III.
A.
Logika dodatnia obszar Y:
Wylosowano: Kura
A: P=0
Fałszem jest (=0), że wylosowano „psa” (P)
B.
Logika ujemna bo obszar ~Y:
Wylosowano: Kura
B: ~P=1
Prawdą jest (=1) że wylosowano „nie psa” (~P)
Doskonale widać prawo Prosiaczka:
A: (P=0) = B: (~P=1)
Objaśnienia do wykresu czasowego w algebrze Kubusia:
1.
Logika dodatnia (bo Y) to obszar ponad linią czasu
Logika ujemna (bo ~Y) to obszar poniżej linii czasu
2.
Świętość symbolicznej algebry Boole’a (algebry Kubusia):
1 = prawda
0 = fałsz
zachowana jest zawsze, niezależnie od tego czy mamy do czynienia z logiką dodatnią (bo Y), czy też ujemną (bo ~Y).
3.
Doskonale widać, że zmienna ~P jest lustrzanym odbiciem zmiennej P.
Zauważmy, że lustrzane odbicie nie dotyczy poziomów logicznych 0 i 1 w logice ujemnej.
Dlaczego?
W przypadku lustrzanego odbicia także 0 i 1 dla wylosowanego „psa” mielibyśmy:
IIA.
A.
Logika dodatnia bo obszar Y:
Wylosowano: Pies
A: P=1
Prawdą jest (=1), że wylosowano „psa” (P)
B.
Logika ujemna bo obszar ~Y:
Wylosowano: Pies
B: ~P=1
Prawdą jest (=1), że wylosowano „nie psa” (~P)
Matematyka ścisła, prawo Prosiaczka leży tu w gruzach, mamy sprzeczność czysto matematyczną:
A: (P=1) # B: (~P=1)
Nie można jednocześnie wylosować „psa” (P=1) i „nie psa” (~P=1) - obszar zielony.
4.
Wszelkie tabele zero-jedynkowe algebry Boole’a można przedstawić na wykresach czasowych jak wyżej, bowiem nic w przyrodzie nie dzieje się w czasie nieskończenie krótkim.
Rozpatrzmy teraz konkretne zdanie z naturalnego języka mówionego człowieka.
Nasze zdanie:
A.
Jutro pójdę do kina
Y=K
co matematycznie oznacza:
Y=1 <=> K=1
Zdanie tożsame:
Dotrzymam słowa (Y=1), wtedy i tylko wtedy gdy jutro pójdę do kina (K=1)
Y=K
Czytamy:
Prawdą jest (=1), że dotrzymam słowa (Y) wtedy i tylko wtedy gdy jutro pójdę do kina (K=1)
.. a kiedy skłamię?
Przejście ze zdaniem A do logiki ujemnej (bo ~Y) poprzez negację zmiennych i wymianę spójników
~Y=~K
B.
Skłamię (~Y=1) wtedy i tylko wtedy gdy jutro nie pójdę do kina (~K=1)
~Y=~K
co matematycznie oznacza:
~Y=1 <=> ~K=1
Czytamy:
Prawdą jest (=1), że skłamię (~Y) wtedy i tylko wtedy gdy jutro nie pójdę do kina (~K=1)
O dotrzymaniu słowa w zdaniu A decyduje wyłącznie jutro, obszar zielony.
Jeśli jutro pójdziemy do kina (Y=K) to zatrzymujemy czas na czerwonej linii A-A, dalsze nasze działania nie mają żadnego znaczenia, poszliśmy do kina zatem dotrzymaliśmy słowa.
Na czerwonej linii A-A dla zmiennej K mamy tu sytuacje.
A1:
Logika dodatnia (bo Y):
K=1
Prawdą jest (=1), że byłem w kinie (K)
Zdanie tożsame w logice ujemnej (bo ~Y):
A2:
Logika ujemna (bo ~Y):
~K=0
Fałszem jest (=0), że nie byłem w kinie (~K)
Doskonale widać prawo Prosiaczka:
A1: (K=1) = A2: (~K=0)
Jeśli jutro nie pójdę do kina to skłamię.
B1.
Skłamię (~Y=1) wtedy i tylko wtedy gdy jutro nie pójdę do kina (~K=1)
~Y=~K
co matematycznie oznacza:
~Y=1 <=>~K=1
Tą sytuację widać w białym obszarze pojutrze.
Mamy tu następujące sytuacje dla zmiennej K.
B1:
Logika ujemna (bo ~Y):
~K=1
Prawdą jest (=1), że nie byłem w kinie (~K)
Zdanie tożsame w logice dodatniej (bo Y):
B2:
K=0
Fałszem jest (=0), że byłem w kinie (K)
Doskonale widać prawo Prosiaczka:
B1: (~K=1) = B2: (K=0)
W zdaniu wyżej mamy sytuację gdzie o dotrzymaniu słowa/skłamaniu decyduje pewna chwila w skali nieskończonego czasu - jutro.
Tylko i wyłącznie jutro człowiek może ustawić zmienną K na dowolną wartość logiczną:
K=1 - pójdę do kina
co wymusi:
~K=0 - prawo Prosiaczka się kłania
albo:
~K=1 - nie pójdę do kina
co wymusi:
K=0 - prawo Prosiaczka się kłania
W dniu dzisiejszym nie znamy jaką wartość logiczną przyjmie zmienna K, jutro zmienna K może przyjąć dowolną wartość, dlatego matematycznie K jest zmienną binarną.
Definicja zmiennej binarnej:
Zmienna binarna to zmienna mogąca przyjąć w osi czasu dowolną wartość 0 albo 1
Zauważmy, że skalowanie osi czasu jest tu nieistotne.
Jutro może wystąpić chwila czasowa t1 gdzie pójdziemy do kina dotrzymując tym samym słowa. Jeśli chwila czasowa t1 nie zaistnieje to skłamiemy.
Oczywiście pojutrze mamy już świat totalnie zdeterminowany, gdzie możliwe są tylko i wyłącznie dwie możliwości.
A.
A.
Wczoraj byłem w kinie
czyli:
A1.
Dotrzymałem słowa (Y=1) bo wczoraj byłem w kinie
Y=K
co matematycznie oznacza:
Y=1 <=> K=1
Czytamy:
A2
Prawdą jest (=1), że dotrzymałem słowa (Y) bowiem (wtw) prawdą jest (=1) że byłem w kinie (K)
W logice ujemnej (bo ~Y) na mocy prawa Prosiaczka ten przypadek opisuje równanie:
~Y=0 <=> ~K=0
Czytamy:
A3.
Fałszem jest (=0) że skłamałem (~Y) bowiem (wtw) fałszem jest (=0) że nie byłem w kinie
Tożsame matematycznie zdania to:
A1=A2=A3
Zauważmy, że w logice ujemnej nie możemy tu zapisać równania:
~Y=~K - to jest błąd czysto matematyczny
bowiem matematycznie znaczy ono:
~Y=1<=>~K=1 - co nie jest zgodne z prawdą
albo:
B.
B.
Wczoraj nie byłem w kinie
czyli:
B1.
Skłamałem (~Y=1) bo wczoraj nie byłem w kinie (~K=1)
~Y=~K
co matematycznie oznacza:
~Y=1 <=> ~K=1
Czytamy:
B2.
Prawdą jest (=1) że skłamałem (~Y) bowiem (wtw) prawdą jest (=1) że nie byłem w kinie (~K)
W logice dodatniej (bo Y) na mocy prawa Prosiaczka ten przypadek opisuje równanie:
Y=0 <=> K=0
Czytamy:
B3.
Fałszem jest (=0), że dotrzymałem słowa (Y) bowiem (wtw) fałszem jest (=0) że byłem w kinie (K)
Zdania tożsame matematycznie to:
B1=B2=B3
Zauważmy, że w logice dodatniej nie możemy tu zapisać równania:
Y=K - to jest błąd czysto matematyczny
bowiem matematycznie znaczy ono:
Y=1<=>K=1 - co nie jest zgodne z prawdą
Czasu nie można cofnąć, zmienna K (~K) ma tu wartość zdeterminowaną (znaną z góry) której nie możemy już zmienić.
Wniosek:
Pojutrze zmienna K nie jest już zmienną binarną.
… a czym jest?
Pojutrze K jest stałą symboliczną o znanej z góry wartości logicznej.
Definicja stałej symbolicznej:
Stała symboliczna to symbol którego wartość logiczna jest niezmienna w czasie i znana z góry.
Nie jesteśmy w stanie zmienić wartości logicznej stałej symbolicznej.
Wniosek:
Oś czasu jest koniecznie potrzebna dla zaistnienia zmiennej binarnej.
Nie istnieje pojęcie zmiennej binarnej bez osi czasu. W czasie nieskończenie krótkim wszystko w naszym Wszechświecie „stoi w miejscu”, zatem nie ma mowy o zmiennych binarnych bez osi czasu.
Dowód wyżej.
Inny przykład stałej symbolicznej:
W trójkącie prostokątnym zachodzi suma kwadratów
TP=>SK
Oczywiście w tym przypadku trójkąt prostokątny (TP) w którym zachodzi suma kwadratów jest stałą symboliczną o wartości logicznej 1, niezależną od czasu.
TP=>SK =1 - prawda
gdzie:
=> - na pewno
Nie jesteśmy w stanie znaleźć trójkąta prostokątnego, w którym suma kwadratów nie byłaby spełniona.
TP~~>~SK =0 - fałsz
gdzie:
~~> - może się zdarzyć
Ten przypadek jest niemożliwy.
2.5 Operator transmisji
Definicja operatora transmisji:
A1: Y=p
co matematycznie oznacza:
Y=1 <=> p=1
… a kiedy zajdzie ~Y?
Przejście do logiki ujemnej poprzez negację zmiennych i wymianę spójników na przeciwne (tu ich nie ma):
A2: ~Y=~p
co matematycznie oznacza:
~Y=1 <=> ~p=1
Stąd mamy definicję operatora transmisji w układzie równań logicznych:
A1: Y=p
A2: ~Y=~p
Tabela zero-jedynkowa operatora transmisji:
Kod: |
Definicja |co matematycznie |Definicje zero-jedynkowe
symboliczna |oznacza |dla Y=p |dla ~Y=~p
| | p Y=p |~p ~Y=~p
A1: Y= p | Y=1<=> p=1 | 1 =1 | 0 =0
A2: ~Y=~p |~Y=1<=>~p=1 | 0 =0 | 1 =1
1 2 3 4 5 6
|
Dla kodowania definicji symbolicznej Ax12 z punktem odniesienia ustawionym na zdaniu A1 otrzymujemy zero-jedynkową definicję operatora transmisji w logice dodatniej (bo Y) w obszarze Ax34.
A1: Y=p
co matematycznie oznacza:
Y=1 <=> p=1
stąd:
Y=1, ~Y=0
p=1, ~p=0
Dla kodowania definicji symbolicznej Ax12 z punktem odniesienia ustawionym na zdaniu A2 otrzymujemy zero-jedynkową definicję operatora transmisji w logice ujemnej (bo ~Y) w obszarze Ax56.
A2: ~Y=~p
co matematycznie oznacza:
~Y=1 <=> ~p=1
stąd:
~Y=1, Y=0
~p=1, p=0
Związek logiki dodatniej (bo Y) z logiką ujemną (bo ~Y):
Logika dodatnia to zanegowana logika ujemna
Y = ~(~Y)
Podstawiając A1 i A2 mamy zdanie tożsame do A1:
A3: Y = p = ~(~p)
Stąd mamy:
Prawo podwójnego przeczenia
p=~(~p)
Związek logiki ujemnej (bo ~Y) z logiką dodatnią (bo Y):
Logika ujemna to zanegowana logika dodatnia
~Y = ~(Y)
Podstawiając A2 i A1 mamy zdanie tożsame do A2:
A4: ~Y = ~p = ~(p)
Przykład:
A1.
Jutro pójdziemy do kina
Y=K
co matematycznie oznacza:
Y=1 <=> K=1
Prawdą jest (=1), że dotrzymam słowa (Y) wtedy i tylko wtedy gdy jutro pójdziemy do kina (K=1)
Synek (lat 5):
… tata, a kiedy skłamiesz?
Przejście do logiki ujemnej poprzez negację zmiennych i wymianę spójników (tu ich nie ma):
~Y=~K
A2.
Skłamię (~Y) wtedy i tylko wtedy gdy jutro nie pójdziemy do kina (~K)
~Y=~K
co matematycznie oznacza:
~Y=1 <=> ~K=1
Prawdą jest (=1), że skłamię (~Y) wtedy i tylko wtedy gdy jutro nie pójdziemy do kina (~K=1)
Synek:
Tata, a czy może się zdarzyć że jutro nie pójdziemy do kina?
Związek logiki dodatniej (bo Y) z logiką ujemną (bo ~Y):
Y=~(~Y)
Podstawiając A1 i A2 mamy zdanie tożsame do A1:
Y = K = ~(~K)
Tata:
A3.
Nie może się zdarzyć ~(…), że jutro nie pójdziemy do kina (~K)
Y = K = ~[~(K)]
co matematycznie oznacza:
Y=1 <=> K=1
Oczywiście punktem odniesienia jest tu logika dodatnia (bo Y) i sygnał K.
Stąd wartościowanie zdania A3:
Y = 1 = ~[~(1)] = ~[0] = 1
Związek logiki ujemnej (bo ~Y) z logiką dodatnią (bo Y):
~Y = ~(Y)
Podstawiając A2 i A1 otrzymujemy zdanie tożsame do A2:
~Y = ~K = ~(K)
A4.
Skłamię (~Y) wtedy i tylko wtedy gdy nie zdarzy się ~(…), że jutro pójdziemy do kina (K)
~Y=~K=~(K)
co matematycznie oznacza:
~Y=1 <=>~K=1
Punktem odniesienia jest tu logika ujemna (bo ~Y) i sygnał ~K.
W zdaniu A4 musimy odtworzyć sygnał odniesienia ~K korzystając z prawa podwójnego przeczenia:
K=~(~K)
Nasze równanie A4 przybiera postać potrzebną do wartościowania dla ~K=1:
A4: ~Y = ~K = ~[~(~K)] = 1 = ~[~(1)] = ~[0] =1
|
|
Powrót do góry |
|
|
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
rafal3006
Opiekun Forum Kubusia
Dołączył: 30 Kwi 2006
Posty: 35368
Przeczytał: 20 tematów
Skąd: z innego Wszechświata Płeć: Mężczyzna
|
Wysłany: Nie 11:27, 22 Wrz 2013 Temat postu: |
|
|
2.6 Operator negacji
Definicja operatora negacji:
B1: Y=~p
co matematycznie oznacza:
Y=1 <=> ~p=1
… a kiedy zajdzie ~Y?
Przejście do logiki ujemnej poprzez negację zmiennych i wymianę spójników na przeciwne (tu ich nie ma):
B2: ~Y=p
co matematycznie oznacza:
~Y=1 <=> p=1
Stąd mamy definicję operatora negacji w układzie równań logicznych:
B1: Y=~p
B2: ~Y=p
Tabela zero-jedynkowa operatora negacji:
Kod: |
Definicja |co matematycznie |Definicje zero-jedynkowe
symboliczna |oznacza |dla Y=~p |dla ~Y=p
| |~p Y=~p | p ~Y=p
B1: Y=~p | Y=1<=>~p=1 | 1 =1 | 0 =0
B2: ~Y= p |~Y=1<=> p=1 | 0 =0 | 1 =1
1 2 3 4 5 6
|
Dla kodowania definicji symbolicznej Bx12 z punktem odniesienia ustawionym na zdaniu B1 otrzymujemy zero-jedynkową definicję operatora negacji w logice dodatniej (bo Y) w obszarze Bx34.
B1: Y=~p
co matematycznie oznacza:
Y=1 <=>~p=1
stąd:
Y=1, ~Y=0
~p=1, p=0
Dla kodowania definicji symbolicznej Bx12 z punktem odniesienia ustawionym na zdaniu B2 otrzymujemy zero-jedynkową definicję operatora negacji w logice ujemnej (bo ~Y) w obszarze Bx56.
B2: ~Y=p
co matematycznie oznacza:
~Y=1 <=> p=1
stąd:
~Y=1, Y=0
p=1, ~p=0
Związek logiki dodatniej (bo Y) z logiką ujemną (bo ~Y):
Logika dodatnia to zanegowana logika ujemna
Y = ~(~Y)
Podstawiając B1 i B2 mamy zdanie tożsame do B1:
B3: Y = ~p = ~(p)
Związek logiki ujemnej (bo ~Y) z logiką dodatnią (bo Y):
Logika ujemna to zanegowana logika dodatnia
~Y = ~(Y)
Podstawiając B2 i B1 mamy zdanie tożsame do B2:
B4: ~Y = p = ~(~p)
Stąd mamy:
Prawo podwójnego przeczenia
p=~(~p)
Przykład:
B1.
Jutro nie pójdziemy do kina
Y=~K
co matematycznie oznacza:
Y=1 <=> ~K=1
Prawdą jest (=1), że dotrzymam słowa (Y) wtedy i tylko wtedy gdy jutro nie pójdziemy do kina (~K=1)
Synek (lat 5):
… tata, a kiedy skłamiesz?
Przejście do logiki ujemnej poprzez negację zmiennych i wymianę spójników (tu ich nie ma):
~Y=K
B2.
Skłamię (~Y) wtedy i tylko wtedy gdy jutro pójdziemy do kina (K)
~Y=K
co matematycznie oznacza:
~Y=1 <=> K=1
Prawdą jest (=1), że skłamię (~Y) wtedy i tylko wtedy gdy jutro pójdziemy do kina (K=1)
Synek:
Tata, a czy może się zdarzyć że jutro nie pójdziemy do kina?
Związek logiki dodatniej (bo Y) z logiką ujemną (bo ~Y):
Y=~(~Y)
Podstawiając B1 i B2 mamy zdanie tożsame do B1:
Y = ~K = ~(K)
Tata:
B3.
Nie może się zdarzyć ~(…), że jutro pójdziemy do kina (K)
Y = ~K = ~(K)
co matematycznie oznacza:
Y=1 <=> ~K=1
Punktem odniesienia jest tu logika dodatnia (bo Y) i sygnał ~K.
W zdaniu B3 musimy odtworzyć sygnał odniesienia ~K korzystając z prawa podwójnego przeczenia:
K=~(~K)
Nasze równanie B3 przybiera postać potrzebną do wartościowania dla ~K=1:
B3: Y = ~K = ~[~(~K)] = 1 = ~[~(1)] = ~[0] =1
Związek logiki ujemnej (bo ~Y) z logiką dodatnią (bo Y):
~Y = ~(Y)
Podstawiając B2 i B1 otrzymujemy zdanie tożsame do B2:
~Y = K = ~(~K)
B4.
Skłamię (~Y) wtedy i tylko wtedy gdy nie zdarzy się ~(…), że jutro nie pójdziemy do kina (~K)
~Y= K=~(~K)
co matematycznie oznacza:
~Y=1 <=> K=1
Oczywiście punktem odniesienia jest tu logika ujemna (bo ~Y) i sygnał K.
Stąd wartościowanie zdania B4 dla sygnału odniesienia K=1:
Y = K = ~(~K) = 1 = ~[~(1)] = ~[0] = 1
2.7 Równanie ogólne dla operatorów transmisji i negacji
Równanie ogólne logiczne dla operatorów transmisji i negacji:
Kod: |
Definicja symboliczna operatora transmisji Y=p ## Definicja symboliczna operatora negacji Y=~p
A1: Y=p ## B1: Y=~p
… kiedy skłamię? ## … a kiedy skłamię?
Przejście do logiki ujemnej (bo ~Y) ## Przejście do logiki ujemnej (bo ~Y)
poprzez negację zmiennych ## poprzez negację zmiennych
A2: ~Y=~p ## B2: ~Y=p
|
W operatorze transmisji zachodzą następujące związki matematyczne:
1.
Związek logiki dodatniej (bo Y) z logiką ujemną (bo ~Y):
Logika dodatnia to zanegowana logika ujemna
Y = ~(~Y)
Podstawiając A1 i A2 mamy zdanie tożsame do A1:
A3: Y = p = ~(~p)
Stąd mamy:
Prawo podwójnego przeczenia
p=~(~p)
2.
Związek logiki ujemnej (bo ~Y) z logiką dodatnią (bo Y):
Logika ujemna to zanegowana logika dodatnia
~Y = ~(Y)
Podstawiając A2 i A1 mamy zdanie tożsame do A2:
A4: ~Y = ~p = ~(p)
W operatorze negatora zachodzą następujące związki matematyczne:
1.
Związek logiki dodatniej (bo Y) z logiką ujemną (bo ~Y):
Logika dodatnia to zanegowana logika ujemna
Y = ~(~Y)
Podstawiając B1 i B2 mamy zdanie tożsame do B1:
B3: Y = ~p = ~(p)
2.
Związek logiki ujemnej (bo ~Y) z logiką dodatnią (bo Y):
Logika ujemna to zanegowana logika dodatnia
~Y = ~(Y)
Podstawiając B2 i B1 mamy zdanie tożsame do B2:
B4: ~Y = p = ~(~p)
stąd mamy:
Prawo podwójnego przeczenia:
p=~(~p)
Zauważmy, że miedzy operatorem transmisji a operatorem negacji nie zachodzi prawo przejścia do logiki przeciwnej między dowolnymi dwoma punktami.
Dowód:
W powyższej tabeli prawo przejścia do logiki przeciwnej może zachodzić wyłącznie po przekątnej A1-B2:
A1: Y=p
B2: ~Y=p
albo po przekątnej B1-A2:
B1: Y=~p
A2: ~Y=~p
Doskonale widać, że w obu przypadkach nie zachodzi prawo przejścia do logiki przeciwnej.
Wniosek:
Operator transmisji i operator negacji to dwa izolowane układy logiczne pomiędzy którymi nie zachodzą żadne tożsamości matematyczne. Sygnały Y i p z operatora transmisji nie mają nic wspólnego z sygnałami Y i p z operatora negacji. Pod parametr p w obu operatorach możemy sobie podstawiać co nam dusza zagra, w szczególności parametr p może być identyczny w obu operatorach, to bez znaczenia.
Identyczne równania ogólne obowiązywać będą w pozostałych symetrycznych operatorach, co za chwilę zobaczymy.
3.0 Rachunek zero-jedynkowy
Definicje podstawowe dla spójników „lub”(+) i „i”(*):
Zmienna binarna:
Zmienna binarna to zmienna mogąca przyjmować w osi czasu wyłącznie dwie wartości 0 albo 1.
Przykłady zmiennych binarnych:
p, q, r
Funkcja logiczna:
Funkcja logiczna (Y - wyjście cyfrowe w układzie logicznym) to funkcja n-zmiennych binarnych połączonych spójnikami „i”(*) albo „lub”(+) mogąca w osi czasu przyjmować wyłącznie 0 albo 1 w zależności od aktualnej wartości wejściowych zmiennych binarnych.
Y - funkcja logiczna
Przykład:
Y=p*q+p*~q+~p*q
Definicja logiki dodatniej i ujemnej:
Funkcja logiczna Y zapisana jest w logice dodatniej wtedy i tylko wtedy gdy nie jest zanegowana.
Y=p+q - logika dodatnia bo Y
~Y=~p*~q - logika ujemna bo ~Y
Fundamentem rachunku zero-jedynkowego są maszynowe definicje dwuargumentowych operatorów logicznych (hardware). Nie interesuje nas tu znaczenie zer i jedynek wewnątrz jakiegokolwiek operatora logicznego.
Możliwe są też symboliczne definicje operatorów logicznych (software), inne niż definicje maszynowe, gdzie znaczenie zer i jedynek wewnątrz operatora logicznego ma kluczowe znaczenie. W rachunku zero-jedynkowym definicje symboliczne nie są używane, poznamy je przy okazji tworzenia równań algebry Boole’a dla dowolnej tabeli zero-jedynkowej.
W rachunku zero-jedynkowym zera i jedynki wewnątrz dowolnego operatora nie mają żadnego znaczenia. Symboliczne prawa algebry Boole’a (równania algebry Boole’a) zapisane są w nagłówkach porównywanych tabel zero-jedynkowych i wynikają z tożsamości odpowiednich kolumn wynikowych.
Rachunek zero-jedynkowy to krystalicznie czysta matematyka, izolowana od świata fizycznego np. języka mówionego człowieka. Nie ma tu czegoś takiego jak „zdanie prawdziwe” czy „zdanie fałszywe”.
Banalnym dowodem jest tu fakt, że inżynierowie elektronicy doskonale znają rachunek zero-jedynkowy w praktyce nie mając pojęcia iż „1=prawda” czy „0=fałsz”, nie jest to im do niczego potrzebne ani w minimalizacji dowolnych funkcji logicznych, ani w logicznym myśleniu pozwalającym pisać programy komputerowe. Dowolny programista pisząc programy komputerowe posługuje się naturalną logiką człowieka, algebrą Kubusia, nigdy jakąkolwiek logiką formalną np. KRZ. Gdyby człowiek w pisaniu programów komputerowych posługiwał się jakąkolwiek logiką formalną to pewne jest że nie napisałby nawet najprostszego programu, bowiem dowolna logika formalna jest sprzeczna z naturalną logiką człowieka.
Banalne zasady rachunku zero-jedynkowego w algebrze Boole’a najlepiej poznać na przykładach.
3.1 Operatory dwuargumentowe
Maszynowa definicja operatora logicznego (hardware):
Operator logiczny to odpowiedź układu na wszystkie możliwe wymuszenia 0 i 1 na wejściu układu.
Abstrakcyjna definicja operatora dwuargumentowego:
Operator dwuargumentowy to czarna skrzynka o dwóch wejściach p i q oraz tylko jednym wyjściu Y.
Na wejściach p i q wymuszamy wszystkie możliwe stany 0 i 1 zapisując odpowiedzi na wyjściu Y.
Ogólna definicja operatora dwuargumentowego:
Kod: |
p q Y=?
1 1 =x
1 0 =x
0 1 =x
0 0 =x
|
Jak widzimy przy dwóch wejściach p i q możemy zdefiniować 16 (2^4) różnych stanów na wyjściu Y, czyli 16 różnych na mocy definicji operatorów logicznych.
Aksjomat to założenie które przyjmuje się bez dowodu.
Aksjomatyka technicznej algebry Boole’a to po prostu wszystkie możliwe zero-jedynkowe definicje operatorów logicznych plus banalny rachunek zero-jedynkowy.
Kod: |
p q OR NOR AND NAND <=> XOR => N(=>) ~> N(~>) ~~> N(~~>) P NP Q NQ
1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1
0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0
0 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1
|
Operator logiczny to kompletna wynikowa kolumna będąca odpowiedzią na wszystkie możliwe wymuszenia na wejściach p i q.
Operatory logiczne możemy podzielić na operatory w logice dodatniej i operatory w logice ujemnej:
Kod: |
Logika dodatnia Logika ujemna
OR NOR
AND NAND
<=> XOR
=> N(=>)
~> N(~>)
~~> N(~~>)
P NP
Q NQ
|
Wszystkich możliwych operatorów logicznych dwuargumentowych jest 16. Za operatory dodatnie przyjęto te, które człowiek używa w naturalnym języku mówionym, w swojej naturalnej logice.
Operator ujemny to zanegowany operator dodatni, co doskonale widać w powyższej tabeli.
Kod: |
Definicje operatorów ujemnych:
pNORq = ~(p+q)
pNANDq = ~(p*q)
pXORq = ~(p<=>q)
pN(=>)q = ~(p=>q)
pN(~>)q = ~(p~>q)
p~~>q = ~(p~~>q)
pNPq = ~(pPq)
pNQq = ~(pQq)
|
Komentarz:
Kolumna pNORq to zanegowana kolumna OR:
Y=p+q
Stąd:
~Y = ~(p+q)
pNORq = ~(p+q)
itd
W języku mówionym operatory ujemne nie są używane, ponieważ łatwo je zastąpić operatorami dodatnimi plus negacją co widać w powyższej tabeli.
3.2 Maszynowe definicje operatorów logicznych
Maszynowa definicja operatora logicznego (techniczna algebra Boole’a):
Operator logiczny to odpowiedź układu na wszystkie możliwe stany 0 i 1 na wejściach p i q
Definicja operatora OR:
Kod: |
p q Y=p+q
A: 1+1 =1
B: 1+0 =1
C: 0+1 =1
D: 0+0 =0
1 2 3
|
Abstrakcyjnie operator logiczny to czarna skrzynka o dwóch kabelkach wejściowych p i q oraz jednym wyjściu Y. Fizyczna budowa operatora logicznego jest kompletnie nieistotna, w skrajnym przypadku może to być dowolna ilość układów cyfrowych np. milion. Aby zbadać z jakim operatorem logicznym mamy do czynienia nie musimy wnikać w wewnętrzną budowę układu logicznego. Wystarczy że wykonamy zaledwie cztery kroki A, B, C i D podając na wejścia p i q wszystkie możliwe kombinacje 0 i 1 i zapisując odpowiedzi układu na wyjściu Y.
Kolejność wierszy w tabeli zero-jedynkowej nie ma żadnego znaczenia, możemy je dowolnie przestawiać. Istotne jest aby dowolnemu, uporządkowanemu wymuszeniu na wejściach p i q odpowiadała zawsze ta sama cyferka 0 albo 1.
W najpopularniejszej technice TTL cyfry 0 i 1 to po prostu napięcia które łatwo zmierzyć woltomierzem o znaczeniu:
0 = 0,0V-0,4V
1 = 2,4V-5.0V
Możliwe są też bramki świetlne, biologiczne, mechaniczne etc. Z punktu widzenia matematyki to kompletnie bez znaczenia.
Przykłady maszynowych definicji operatorów logicznych.
Maszynowa (zero-jedynkowa) definicja operatora OR:
Kod: |
Tabela 1
p q Y=p+q
A: 1+1 =1
B: 1+0 =1
C: 0+1 =1
D: 0+0 =0
1 2 3
|
Maszynowa definicja spójnika „lub”(+):
Y=p+q
co matematycznie oznacza:
Y=1 <=> p=1 lub q=1
Inaczej:
Y=0
Wersja najprostsza do zapamiętania:
Y=p+q
Y=0 <=> p=0 i q=0
inaczej:
Y=1
W rachunku zero-jedynkowym obowiązuje maszynowa definicja spójnika „lub”(+) który jest tożsamy z definicją zero-jedynkową operatora OR.
Symboliczna definicja operatora OR którą niebawem poznamy:
Y=p+q
~Y=~p*~q
Maszynowa (zero-jedynkowa) definicja operatora AND:
Kod: |
Tabela 2
p q Y=p*q
A: 1*1 =1
B: 1*0 =0
C: 0*1 =0
D: 0*0 =0
1 2 3
|
Maszynowa definicja spójnika „i”(*):
Y=p*q
co matematycznie oznacza:
Y=1 <=> p=1 i q=1
Inaczej:
Y=0
Maszynowa definicja spójnika „i”(*) to jednocześnie najprostszą definicją do zapamiętania.
W rachunku zero-jedynkowym obowiązuje maszynowa definicja spójnika „i”(*) który jest tożsamy z definicją zero-jedynkową operatora AND.
Symboliczna definicja operatora AND, którą wkrótce poznamy:
Y=p*q
~Y=~p+~q
Maszynowa definicja implikacji prostej =>:
Kod: |
Tabela 3
p q Y=p=>q
1=> 1 =1
1=> 0 =0
0=> 0 =1
0=> 1 =1
|
Najprostsza definicja znaczka => do zapamiętania to:
p=>q=0 <=> p=1 i q=0
inaczej:
p=>q =1
W rachunku zero-jedynkowym obowiązuje maszynowa definicja warunku wystarczającego =>, który jest tożsamy z definicją zero-jedynkową operatora implikacji prostej.
Symboliczna definicja implikacji prostej, którą niebawem poznamy:
p=>q = ~p~>~q
Maszynowa definicja implikacji odwrotnej ~>:
Kod: |
Tabela 4
p q p~>q
1~> 1 =1
1~> 0 =1
0~> 0 =1
0~> 1 =0
|
Najprostsza definicja znaczka ~> do zapamiętania:
p~>q =0 <=> p=0 i q=1
inaczej:
p~>q=1
W rachunku zero-jedynkowym obowiązuje maszynowa definicja warunku koniecznego ~>, który jest tożsamy z definicją zero-jedynkową operatora implikacji odwrotnej.
Symboliczna definicja operatora implikacji odwrotnej, którą wkrótce poznamy:
p~>q = ~p=>~q
Maszynowa definicja równoważności <=>:
Kod: |
Tabela 5
p q Y=p<=>q
1<=> 1 =1
1<=> 0 =0
0<=> 0 =1
0<=> 1 =0
|
Najprostsza definicja maszynowa do zapamiętania:
p<=>q =1 <=> p=1 i q=1
lub
p<=>q =1 <=> p=0 i q=0
Inaczej:
p<=>q =0
Symboliczna definicja równoważności, którą niebawem poznamy:
p<=>q = (p=>q)*(~p=>~q)
Maszynowa definicja operatora NP:
Kod: |
Tabela 6
p q pNPq
1 NP 1 =0
1 NP 0 =0
0 NP 0 =1
0 NP 1 =1
|
Najprostsza definicja znaczka NP do zapamiętania:
pNPq = ~p
Wejście q jest bez żadnego znaczenia, kabelek q w środku „czarnej skrzynki” nigdzie nie jest podłączony (wisi w powietrzu).
itd
Definicja:
Maszynowa (zero-jedynkowa) definicja dowolnego operatora jest tożsama ze spójnikiem użytym w nagłówku tej definicji.
Oznacza to, że w tabeli zero-jedynkowej używamy identycznego znaczka z nagłówka tabeli we wszystkich kombinacjach zer i jedynek na wejściach p i q operatora logicznego.
Zauważmy, że dzięki definicji operatora maszynowego jak wyżej, dysponując zaledwie jedną linią dowolnego operatora z łatwością odtworzymy kompletny operator logiczny.
Przykład:
1~>1 =1
Jest oczywistym, że jest to pierwsza linia kodu maszynowego operatora implikacji odwrotnej o definicji w tabeli 4.
3.3 Prawa przemienności argumentów w operatorach OR i AND
Maszynowa definicja operatora OR:
Kod: |
p q Y=p+q
A: 1+1 =1
B: 1+0 =1
C: 0+1 =1
D: 0+0 =0
1 2 3
|
Definicja spójnika „lub”(+):
Y=p+q
co matematycznie oznacza:
Y=1 <=> p=1 lub q=1
Inaczej:
Y=0
W rachunku zero-jedynkowym spójnik „lub”(+) jest tożsamy z definicją operatora logicznego OR.
Symboliczna definicja operatora OR:
Operator logiczny OR to złożenie spójnika „lub”(+) w logice dodatniej (bo Y):
Y=p+q
ze spójnikiem „i”(*) w logice ujemnej (bo ~Y)
~Y=~p*~q
Wynika to z równań logicznych opisujących odpowiednie tabele zero-jedynkowe, z czym wkrótce się zapoznamy.
Podstawowe prawa zero-jedynkowe algebry Boole’a wynikłe z definicji operatora OR, konieczne i wystarczające dla potrzeb rachunku zero-jedynkowego:
1+1=1
1+0=1
0+1=1
0+0=0
Dowód przemienności argumentów w spójniku „lub”(+):
Kod: |
p q Y=p+q q p Y=q+p
A: 1+1 =1 1+1 =1
B: 1+0 =1 0+1 =1
C. 0+1 =1 1+0 =1
D: 0+0 =0 0+0 =0
1 2 3 4 5 6
|
Definicją jest tu obszar ABCD123:
Każdej, uporządkowanej parze cyfr (0,1) odpowiada jednoznaczna i zawsze ta sama wartość funkcji Y.
Tożsamość kompletnych kolumn wynikowych 3 i 6 jest dowodem przemienności argumentów w operatorze OR.
Przykład:
1.
Jutro pójdę do kina lub do teatru
Y=K+T
2.
Jutro pójdę do teatru lub do kina
Y=T+K
Zdania 1 i 2 są matematycznie tożsame, zachodzi przemienność argumentów.
K+T = T+K
Maszynowa definicja operatora AND:
Kod: |
p q Y=p*q
A: 1*1 =1
B: 1*0 =0
C: 0*1 =0
D: 0*0 =0
|
Definicja spójnika „i”(*):
Y=p*q
co matematycznie oznacza:
Y=1 <=> p=1 i q=1
Inaczej:
Y=0
W rachunku zero-jedynkowym spójnik „i”(*) jest tożsamy z definicją operatora logicznego AND, inaczej jest w definicji symbolicznej.
Symboliczna definicja operatora AND:
Operator AND to złożenie spójnika „i”(*) w logice dodatniej (bo Y):
Y=p*q
ze spójnikiem „lub”(+) w logice ujemnej (bo ~Y)
~Y=~p+~q
Wynika to z równań logicznych opisujących dowolną tabelę zero-jedynkową, z czym wkrótce się zapoznamy.
Podstawowe prawa zero-jedynkowe algebry Boole’a wynikłe z definicji operatora AND, konieczne i wystarczające dla potrzeb rachunku zero-jedynkowego:
1*1=1
1*0=0
0*1=0
0*0=0
Dowód przemienności argumentów w spójniku „i”(*):
Kod: |
p*q Y=p*q q*p Y=q*p
A: 1*1 =1 1*1 =1
B: 1*0 =0 0*1 =0
C. 0*1 =0 1*0 =0
D: 0*0 =0 0*0 =0
1 2 3 4 5 6
|
Definicją jest tu obszar ABCD123:
Każdej, uporządkowanej parze cyfr (0,1) odpowiada jednoznaczna i zawsze ta sama wartość funkcji Y.
Tożsamość kolumn wynikowych 3 i 6 jest dowodem przemienności argumentów w operatorze OR
Przykład:
1.
Jutro pójdę do kina i do teatru
Y=K*T
2.
Jutro pójdę do teatru i do kina
Y=T*K
Zdania 1 i 2 są tożsame, zachodzi przemienność argumentów
K*T = T*K
3.4 Prawo De Morgana dla spójnika „lub”(+)
Prawo De Morgana dla spójnika „lub”(+):
Y = p+q = ~(~p*~q)
Dowód formalny w rachunku zero-jedynkowym:
Kod: |
Tabela 1
p+q Y=p+q ~Y=~(p+q) ~p*~q ~Y=~p*~q Y=~(~p*~q) Y+~Y Y*~Y
A: 1+1 =1 =0 0* 0 =0 =1 =1 =0
B: 1+0 =1 =0 0* 1 =0 =1 =1 =0
C: 0+1 =1 =0 1* 0 =0 =1 =1 =0
D: 0+0 =0 =1 1* 1 =1 =0 =1 =0
1 2 3 4 5 6 7 8 9 0
|
Prawo De Morgana w logice dodatniej (bo Y):
Y=Y
A1.
Y = p+q = ~(~p*~q)
Identyczne kolumny wynikowe ABCD3 i ABCD8
cnd
Prawo De Morgana w logice ujemnej (bo ~Y):
~Y=~Y
A2.
~Y = ~(p+q) = ~p*~q
Identyczne kolumny wynikowe ABCD4 i ABCD7
cnd
Z powyższego wynika, że tożsamości w równaniach logicznych możemy wyłącznie dwustronnie negować i korzystać z prawa podwójnego przeczenia. Nie ma tu czegoś takiego jak przeniesienie zmiennej na drugą stronę z przeciwnym znakiem, znane nam z matematyki klasycznej.
Oczywiście matematycznie zachodzi:
Y # ~Y
A1: Y = p+q = ~(~p*~q) # A2: ~Y = ~(p+q) = ~p*~q
gdzie:
# - różne, w znaczeniu kolumny wynikowe są różne
Bezpośrednio z A1 i A2 wynika prawo przejścia do logiki przeciwnej:
Negujemy zmienne i wymieniamy spójniki na przeciwne
A1: Y=p+q - funkcja logiczna w logice dodatniej (bo Y)
Negujemy zmienne i wymieniamy spójniki na przeciwne
A2: ~Y=~p*~q - funkcja logiczna w logice ujemnej (bo ~Y)
Równania A1 i A2 to symboliczna definicja operatora OR:
A1: Y=p+q
A2: ~Y=~p*~q
Dowód formalny wynika z algorytmu tworzenia równań algebry Boole’a dla dowolnej tabeli zero-jedynkowej, który wkrótce poznamy.
Twierdzenie:
Prawo De Morgana zachodzi wtedy i tylko wtedy, gdy zachodzi prawo przejścia do logiki przeciwnej.
Prawo De Morgana mówi o związku logiki dodatniej (bo Y) z logiką ujemną (bo ~Y).
Logika dodatnia Y to zanegowana logika ujemna ~Y
Y = ~(~Y)
Logika ujemna ~Y to zanegowana logika dodatnia Y
~Y = ~(Y)
Związek logiki dodatniej (bo Y) z logiką ujemną (bo ~Y):
Logika dodatnia to zanegowana logika ujemna
Y = ~(~Y)
Podstawiając A1 i A2 otrzymujemy prawo De Morgana w logice dodatniej (bo Y), czyli zdanie tożsame do A1:
A3: Y = p+q = ~(~p*~q)
Dowodem formalnym w tabeli zero-jedynkowej jest tu tożsamość kolumn wynikowych ABCD3 i ABCD8
Związek logiki ujemnej (bo ~Y) z logiką dodatnią (bo Y):
Logika ujemna to zanegowana logika dodatnia
~Y = ~(Y)
Podstawiając A2 i A1 otrzymujemy prawo De Morgana w logice ujemnej (bo ~Y), czyli zdanie tożsame do A2:
A4: ~Y = ~p*~q = ~(p+q)
Dowodem formalnym w tabeli zero-jedynkowej jest tu tożsamość kolumn wynikowych ABCD4 i ABCD7.
Zauważmy, że prawa De Morgana zachodzą zarówno w logice dodatniej jak i ujemnej, można je zatem stosować w całej logice matematycznej bez żadnych ograniczeń. Nieistotne jest, czy aktualnie jesteśmy w logice dodatniej (bo Y), czy w ujemnej (bo ~Y).
Prawo przejścia do logiki przeciwnej wymusza spełnienie definicji dziedziny zarówno po stronie wejścia p i q jak i wyjścia Y.
Definicja dziedziny:
Kolumna wynikowa ~Y jest dopełnieniem do dziedziny dla kolumny Y
Y+~Y=1
Y*~Y=0
Doskonale widać, że nasze funkcje logiczne spełniają definicję dziedziny po stronie wyjścia Y, czego dowód mamy w dwóch ostatnich kolumnach ABCD9 i ABCD0.
Po stronie wejścia p i q także spełniona jest definicja dziedziny.
Kolumny ABCD1 i ABCD5:
p+~p=1
p*~p=0
Kolumny ABCD2 i ABCD6:
q+~q =1
q*~q =0
Zauważmy, ze kolumna ABCD4 to de facto definicja operatora NOR w odniesieniu do sygnałów p i q:
pNORq = ~(p+q)
Czyli zamiast wymawiać zdanie:
Nie może się zdarzyć ~(…), że zajdzie p lub zajdzie q
~(p+q)
Możemy powiedzieć:
Zajdzie p NOR q
pNORq
Natomiast kolumna ABCD8 to de facto definicja operatora NAND w odniesieniu do sygnałów ~p i ~q:
~pNAND~q = ~(~p*~q)
Zamiast wymawiać zdanie:
Nie może się zdarzyć ~(…) że zajdzie ~p i ~q
~(~p*~q)
Możemy powiedzieć:
Zajdzie ~p NOR ~q
~pNOR~q
W naturalnej logice człowieka operatory ujemne, NOR i NAND nie są używane bo można je w trywialny sposób zastąpić spójnikami „lub”(+) i „i”(*) zrozumiałymi dla każdego 5-cio latka, co pokazano wyżej. Żaden normalny człowiek nie zrozumie zdania typu pNORq, czy pNANDq.
3.5 Prawo De Morgana dla spójnika „i”(*)
Prawo De Morgana dla spójnika „i”(*):
Y = p*q = ~(~p+~q)
Dowód formalny w rachunku zero-jedynkowym:
Kod: |
Tabela 2
p*q Y=p*q ~Y=~(p*q) ~p+~q ~Y=~p+~q Y=~(~p+~q) Y+~Y Y*~Y
A: 1*1 =1 =0 0+ 0 =0 =1 =1 =0
B: 1*0 =0 =1 0+ 1 =1 =0 =1 =0
C: 0*1 =0 =1 1+ 0 =1 =0 =1 =0
D: 0*0 =0 =1 1+ 1 =1 =0 =1 =0
1 2 3 4 5 6 7 8 9 0
|
Prawo De Morgana w logice dodatniej (bo Y):
Y=Y
B1.
Y = p*q = ~(~p+~q)
Identyczne kolumny wynikowe ABCD3 i ABCD8
cnd
Prawo De Morgana w logice ujemnej (bo ~Y):
~Y=~Y
B2.
~Y = ~(p*q) = ~p+~q
Identyczne kolumny wynikowe ABCD4 i ABCD7
cnd
Z powyższego wynika, że tożsamości w równaniach logicznych możemy wyłącznie dwustronnie negować i korzystać z prawa podwójnego przeczenia. Nie ma tu czegoś takiego jak przeniesienie zmiennej na drugą stronę z przeciwnym znakiem, znane nam z matematyki klasycznej.
Oczywiście matematycznie zachodzi:
Y # ~Y
B1: Y = p*q = ~(~p+~q) # B2: ~Y = ~(p*q) = ~p+~q
gdzie:
# - różne, w znaczeniu kolumny wynikowe są różne
Bezpośrednio z powyższego wynika prawo przejścia do logiki przeciwnej:
Negujemy zmienne i wymieniamy spójniki na przeciwne
B1: Y=p*q - funkcja logiczna w logice dodatniej (bo Y)
Negujemy zmienne i wymieniamy spójniki
B2: ~Y=~p+~q - funkcja logiczna w logice ujemnej (bo ~Y)
Równania B1 i B2 to symboliczna definicja operatora AND:
B1: Y=p*q
B2: ~Y=~p+~q
Dowód formalny wynika z algorytmu tworzenia równań algebry Boole’a dla dowolnej tabeli zero-jedynkowej, który wkrótce poznamy.
Twierdzenie:
Prawo De Morgana zachodzi wtedy i tylko wtedy, gdy zachodzi prawo przejścia do logiki przeciwnej.
Prawo De Morgana mówi o związku logiki dodatniej (bo Y) z logiką ujemną (bo ~Y).
Logika dodatnia Y to zanegowana logika ujemna ~Y
Y = ~(~Y)
Logika ujemna ~Y to zanegowana logika dodatnia Y
~Y = ~(Y)
Związek logiki dodatniej (bo Y) z logiką ujemną (bo ~Y):
Logika dodatnia to zanegowana logika ujemna
Y = ~(~Y)
Podstawiając B1 i B2 otrzymujemy prawo De Morgana w logice dodatniej (bo Y), czyli zdanie tożsame do B1:
B3: Y = p*q = ~(~p+~q)
Dowodem formalnym w tabeli zero-jedynkowej jest tu tożsamość kolumn wynikowych ABCD3 i ABCD8
Związek logiki ujemnej (bo ~Y) z logiką dodatnią (bo Y):
Logika ujemna to zanegowana logika dodatnia
~Y = ~(Y)
Podstawiając B2 i B1 otrzymujemy prawo De Morgana w logice ujemnej (bo ~Y), czyli zdanie tożsame do B2:
B4: ~Y = ~p+~q = ~(p*q)
Dowodem formalnym w tabeli zero-jedynkowej jest tu tożsamość kolumn wynikowych ABCD4 i ABCD7.
Zauważmy, że prawa De Morgana zachodzą zarówno w logice dodatniej jak i ujemnej, można je zatem stosować w całej logice matematycznej bez żadnych ograniczeń. Nieistotne jest, czy aktualnie jesteśmy w logice dodatniej (bo Y), czy ujemnej (bo ~Y).
Prawo przejścia do logiki przeciwnej wymusza spełnienie definicji dziedziny zarówno po stronie wejścia p i q jak i wyjścia Y.
Definicja dziedziny:
Kolumna wynikowa ~Y jest dopełnieniem do dziedziny dla kolumny Y
Y+~Y=1
Y*~Y=0
Doskonale widać, że nasze funkcje logiczne spełniają definicję dziedziny po stronie wyjścia Y, czego dowód mamy w dwóch ostatnich kolumnach ABCD9 i ABCD0.
Po stronie wejścia p i q także spełniona jest definicja dziedziny.
Kolumny ABCD1 i ABCD5:
p+~p=1
p*~p=0
Kolumny ABCD2 i ABCD6:
q+~q =1
q*~q =0
3.6 Równanie ogólne dla operatorów OR i AND
Równanie ogólne dla operatorów OR i AND:
Kod: |
Definicja symboliczna operatora OR ## Definicja symboliczna operatora AND
A1: Y=p+q ## B1: Y=p*q
Przejście do logiki ujemnej poprzez ## Przejście do logiki ujemnej poprzez
negację zmiennych i wymianę spójników ## negację zmiennych i wymianę spójników
A2: ~Y=~p*~q ## B2: ~Y=~p+~q
|
gdzie:
## - różne na mocy definicji
Prawo przejścia do logiki przeciwnej:
Negujemy zmienne i wymieniamy spójniki na przeciwne
Z symbolicznej definicji operatora OR wynikają następujące związki matematyczne:
1.
Związek logiki dodatniej (bo Y) z logiką ujemną (bo ~Y):
Logika dodatnia to zanegowana logika ujemna
Y = ~(~Y)
Podstawiając A1 i A2 otrzymujemy prawo De Morgana w logice dodatniej (bo Y), czyli zdanie tożsame do A1:
A3: Y = p+q = ~(~p*~q)
2.
Związek logiki ujemnej (bo ~Y) z logiką dodatnią (bo Y):
Logika ujemna to zanegowana logika dodatnia
~Y = ~(Y)
Podstawiając A2 i A1 otrzymujemy prawo De Morgana w logice ujemnej (bo ~Y), czyli zdanie tożsame do A2:
A4: ~Y = ~p*~q = ~(p+q)
Z symbolicznej definicji operatora AND wynikają następujące związki matematyczne:
1.
Związek logiki dodatniej (bo Y) z logiką ujemną (bo ~Y):
Logika dodatnia to zanegowana logika ujemna
Y = ~(~Y)
Podstawiając B1 i B2 otrzymujemy prawo De Morgana w logice dodatniej (bo Y), czyli zdanie tożsame do B1:
B3: Y = p*q = ~(~p+~q)
2.
Związek logiki ujemnej (bo ~Y) z logiką dodatnią (bo Y):
Logika ujemna to zanegowana logika dodatnia
~Y = ~(Y)
Podstawiając B2 i B1 otrzymujemy prawo De Morgana w logice ujemnej (bo ~Y), czyli zdanie tożsame do B2:
B4: ~Y = ~p+~q = ~(p*q)
Zauważmy, że miedzy operatorem OR a operatorem AND nie zachodzi prawo przejścia do logiki przeciwnej między dowolnymi dwoma punktami.
Dowód:
W powyższej tabeli prawo przejścia do logiki przeciwnej może zachodzić wyłącznie po przekątnej A1-B2:
A1: Y=p+q
B2: ~Y=~p+~q
albo po przekątnej B1-A2:
B1: Y=p*q
A2: ~Y=~p*~q
Doskonale widać, że w obu przypadkach nie zachodzi prawo przejścia do logiki przeciwnej.
Wniosek:
Po obu stronach znaku ## mamy do czynienia z dwoma niezależnymi układami logicznymi pomiędzy którymi nie zachodzą żadne tożsamości matematyczne. Wszelkie znaczki z lewej strony znaku ## (Y,p,q) nie mają nic wspólnego ze znaczkami z prawej strony znaku ## (Y,p,q)
Pod parametry formalne p i q po obu stronach znaku ## możemy podstawiać co nam się podoba, w szczególności identyczne parametry aktualne.
Definicje.
1.
Parametry formalne:
Parametry formalne to ogólne nazwy zmiennych binarnych wejściowych (w logice zwykle p, q, r) wynikające z rachunku zero-jedynkowego bez związku ze światem fizycznym.
Przykłady z powyższego równania:
p, q
2.
Parametry aktualne:
Parametry aktualne to podstawione w miejsce parametrów formalnych zmienne ze świata fizycznego
Przykłady niżej:
K, T
3.7 Związek rachunku zero-jedynkowego z naturalną logiką człowieka
Definicja spójnika „lub”(+) w naturalnej logice człowieka:
Y=p+q
co matematycznie oznacza:
Y=1 <=> p=1 lub q=1
Wystarczy że zajdzie którykolwiek człon po prawej stronie (np. q=1) i już zdanie jest prawdziwe (Y=1), stan drugiego członu jest nieistotny.
Definicja spójnika „i”(*) w naturalnej logice człowieka:
Y=p*q
co matematycznie oznacza:
Y=1 <=> p=1 i q=1
W spójniku „i”(*) obie zmienne p i q musza być ustawione na wartość 1, wtedy i tylko wtedy zdanie będzie prawdziwe (Y=1).
Znaczenie zmiennych:
Y - dotrzymam słowa (logika dodatnia bo Y)
~Y - skłamię (logika ujemna bo ~Y)
Prawa Prosiaczka:
(Y=1) = (~Y=0) - prawda (=1) w logice dodatniej (bo Y) jest tożsama z fałszem (=0) w logice ujemnej (bo ~Y)
(~Y=1) = (Y=0) - prawda (=1) w logice ujemnej (bo ~Y) jest tożsama z fałszem (=0) w logice dodatniej (bo Y)
Zauważmy że zarówno w logice dodatniej jak i ujemnej mamy matematyczną świętość:
1 - prawda
0 - fałsz
Symboliczne definicje operatorów OR i AND wyprowadziliśmy z rachunku zero-jedynkowego wyżej.
Równanie ogólne dla operatorów OR i AND:
Kod: |
Definicja symboliczna operatora OR ## Definicja symboliczna operatora AND
A1: Y=p+q ## B1: Y=p*q
Przejście do logiki ujemnej poprzez ## Przejście do logiki ujemnej poprzez
negację zmiennych i wymianę spójników ## negację zmiennych i wymianę spójników
A2: ~Y=~p*~q ## B2: ~Y=~p+~q
|
gdzie:
## - różne na mocy definicji
3.7.1 Analiza zdania ze spójnikiem „lub”(+)
Rozważmy wzorcowe zdanie ze spójnikiem „lub”(+)
A1.
Jutro pójdę do kina lub do teatru
Y=K+T
co matematycznie oznacza:
Y=1 <=> K=1 lub T=1
Zdanie tożsame:
Dotrzymam słowa (Y=1) wtedy i tylko wtedy gdy jutro pójdę do kina (K=1) lub pójdę do teatru (T=1)
Y=K+T
Czytamy:
Prawdą jest (=1) że dotrzymam słowa (Y) wtedy i tylko wtedy gdy jutro pójdę do kina (K=1) lub pójdę do teatru (T=1)
Y=K+T
Wystarczy że pójdę w jedno miejsce (np. T=1) i już dotrzymałem słowa, drugi człon jest bez znaczenia.
… a kiedy skłamię?
Przejście do logiki ujemnej poprzez negację zmiennych i wymianę spójników w zdaniu A1:
~Y=~K*~T
stąd:
A2.
Skłamię (~Y=1) wtedy i tylko wtedy gdy jutro nie pójdę do kina (~K=1) i nie pójdę do teatru (~T=1)
~Y = ~K*~T
co matematycznie oznacza:
~Y=1 <=> ~K=1 i ~T=1
Czytamy:
Prawdą jest (=1), że skłamię (~Y) wtedy i tylko wtedy gdy jutro nie pójdę do kina (~K=1) i nie pójdę do teatru (~T=1)
~Y=~K*~T
Uwaga!
Słówko „dotrzymam słowa” jest w logice domyślne, dlatego w zdaniu A1 nie musimy go wypowiadać. Wynika z tego, że słówko „skłamię” nie jest domyślne i w zdaniu A2 musimy je wypowiedzieć (inaczej zdanie A2 będzie znaczyło zupełnie co innego).
Związek logiki dodatniej (bo Y) z logiką ujemną (bo ~Y).
Logika dodatnia to zanegowana logika ujemna
Y = ~(~Y)
Podstawiając A1 i A2 mamy prawo De Morgana dla spójnika „lub”(+) w logice dodatniej (bo Y):
Y = K+T = ~(~K*~T)
A3.
Nie może się zdarzyć ~(…), ze jutro nie pójdę do kina (~K) i nie pójdę do teatru (~T)
Y = K+T = ~(~K*~T)
Zdanie tożsame:
A3.
Dotrzymam słowa (Y=1) wtedy i tylko wtedy gdy nie zdarzy się ~(…), że jutro nie pójdę do kina (~K) i nie pójdę do teatru (~T)
Y = K+T = ~(~K*~T)
Zauważmy, że zdanie A3 jest zrozumiałe dla każdego 5-cio latka jednak sprytnie uniknęliśmy tu wartościowania dla ~K i ~T.
Dlaczego?
Punktem odniesienia w zdaniu A3 jest zdanie:
Y=K+T
co matematycznie oznacza:
Y=1 <=> K=1 lub T=1
stąd:
Wartościowania dla których zdanie A3 jest prawdziwe (dotrzymam słowa) są następujące:
1.
K=1, T=0
Y = K+T = ~(~K*~T) = 1+0 = ~[~(1)*~(0)] = ~[0*1] = ~[0] =1
2.
K=0, T=1
Y = K+T = ~(~K*~T) = 0+1 = ~[~(0)*~(1)] = ~[1*0] = ~[0] =1
3.
K=1, T=1
Y=K+T = ~(~K*~T) = 1+1 = ~[~(1)*~(1)] = ~[0*0] = ~[0] =1
Doskonale widać, że matematycznie w zdaniu A3 wszystko nam się genialnie zgadza pod warunkiem że rozumiemy jak należy wartościować zdanie A3.
Dla ostatniego wartościowania które nam zostało zdanie A3 musi być fałszywe (skłamaliśmy):
4.
K=0, T=0
Y = K+T = ~(~K*~T) = 0+0 = ~[~(0)*~(0)] = ~[1*1] = ~[1] =0
Związek logiki ujemnej (bo ~Y) z logiką dodatnią (bo Y).
Logika ujemna to zanegowana logika dodatnia
~Y=~(Y)
Podstawiając A2 i A1 mamy prawo De Morgana dla spójnika „lub”(+) w logice ujemnej (bo~ Y):
~Y = ~K*~T = ~(K+T)
A4.
Skłamię (~Y=1) wtedy i tylko wtedy gdy nie zdarzy się ~(…), ze jutro pójdę do kina (K) lub pójdę do teatru (T)
~Y = ~K*~T = ~(K+T)
Zdanie tożsame:
A4.
Prawdą jest (=1) że skłamię (~Y) wtedy i tylko wtedy gdy nie zdarzy się ~(…), że jutro pójdę do kina (K) lub pójdę do teatru (T)
~Y = ~K*~T = ~(K+T)
Punktem odniesienia w zdaniu A4 jest zdanie:
~Y=~K*~T
co matematycznie oznacza:
~Y=1 <=>~K=1 i ~T=1
stąd:
Warunkiem koniecznym dla poprawnego wartościowania zdania A4 jest sprowadzenie sygnałów wejściowych do wspólnego punktu odniesienia (~K, ~T) korzystając z prawa podwójnego przeczenia:
K= ~(~K)
T=~(~T)
Stąd nasze równanie A4 przybiera postać:
A4: ~Y = ~K*~T = ~[~(~K)+~(~T)]
Dopiero teraz możemy poprawnie wartościować zdanie A4:
1.
~K=1, ~T=1
A4: ~Y = ~K*~T = 1*1 =1
A4: ~Y = ~[~(~K)+~(~T)] = ~[~(1)+~(1)] = ~[0+0] = ~[0] = 1
Oczywiście w każdym innym przypadku zdanie A4 musi być fałszywe:
2.
~K=1, ~T=0
A4: ~Y = ~[~(~K)+~(~T)] = ~[~(1)+~(0)] = ~[0+1] = ~[1] = 0
3.
~K=0, ~T=1
A4: ~Y = ~[~(~K)+~(~T)] = ~[~(0)+~(1)] = ~[1+0] = ~[1] = 0
4.
~K=0, ~T=0
A4: ~Y = ~[~(~K)+~(~T)] = ~[~(0)+~(0)] = ~[1+1] = ~[1] = 0
cnd
3.7.2 Analiza zdania ze spójnikiem „i”(*)
Rozważmy wzorcowe zdanie ze spójnikiem „i”(*):
B1.
Jutro pójdę do kina i do teatru
Y=K*T
co matematycznie oznacza:
Y=1 <=> K=1 i T=1
Zdanie tożsame:
Dotrzymam słowa (Y=1) wtedy i tylko wtedy gdy jutro pójdę do kina (K=1) i do teatru (T=1)
Y=K*T
Czytamy:
Prawdą jest (=1), że dotrzymam słowa (Y) wtedy i tylko wtedy gdy jutro pójdę do kina (K=1) i do teatru (T=1)
Y=K*T
… a kiedy skłamię?
Przejście do logiki ujemnej poprzez negację zmiennych i wymianę spójników w zdaniu B1:
~Y=~K+~T
stąd:
B2.
Skłamię (~Y=1), wtedy i tylko wtedy gdy jutro nie pójdę do kina (~K=1) lub nie pójdę do teatru (~T=1)
~Y= ~K+~T
co matematycznie oznacza:
~Y=1 <=> ~K=1 lub ~T=1
Czytamy:
Prawdą jest (=1), że skłamię (~Y) wtedy i tylko wtedy gdy jutro nie pójdę do kina (~K=1) lub nie pójdę do teatru (~T=1)
~Y=~K+~T
Wystarczy że nie pójdę w dowolne miejsce (np. ~T=1) i już skłamałem (~Y=1), stan drugiego członu jest nieistotny.
Na mocy definicji spójnika „lub”(+) przypadki kiedy skłamię to:
1.
~K=1, ~T=0
~Y = ~K+~T = 1+0 =1
2.
~K=0, ~T=1
~Y = ~K+~T = 0+1 =1
3.
~K=1, ~T=1
~Y = ~K+~T = 1+1 =1
Ostatnia możliwa kombinacja ~K i ~T to jedyny przypadek w którym dotrzymam słowa:
4.
~K=0, ~T=0
~Y = ~K+~T =0
Patrz prawo Prosiaczka:
(~Y=0) = (Y=1)
Fałsz (=0) w logice ujemnej (bo ~Y) jest tożsamy z prawdą (=1) w logice dodatniej (bo Y)
Uwaga!
Słówko „dotrzymam słowa” jest w logice domyślne, dlatego w zdaniu B1 nie musimy go wypowiadać. Wynika z tego, że słówko „skłamię” nie jest domyślne i w zdaniu B2 musimy je wypowiedzieć (inaczej zdanie B2 będzie znaczyło zupełnie co innego).
Związek logiki dodatniej (bo Y) z logiką ujemną (bo ~Y).
Logika dodatnia to zanegowana logika ujemna
Y = ~(~Y)
Podstawiając B1 i B2 mamy prawo De Morgana dla spójnika „lub”(+) w logice dodatniej (bo Y):
Y = K*T = ~(~K+~T)
B3.
Nie może się zdarzyć ~(…), ze jutro nie pójdę do kina (~K) lub nie pójdę do teatru (~T)
Y = K*T = ~(~K+~T)
Zdanie tożsame:
B3.
Dotrzymam słowa (Y=1) wtedy i tylko wtedy gdy nie zdarzy się ~(…), że jutro nie pójdę do kina (~K) lub nie pójdę do teatru (~T)
Y = K*T = ~(~K+~T)
Zauważmy, że zdanie B3 jest zrozumiałe dla każdego 5-cio latka jednak sprytnie uniknęliśmy tu wartościowania dla ~K i ~T.
Dlaczego?
Punktem odniesienia w zdaniu B3 jest zdanie:
Y=K*T
co matematycznie oznacza:
Y=1 <=> K=1 i T=1
Stąd jedyne wartościowanie dla którego zdanie B3 będzie prawdziwe jest następujące:
1.
K=1, T=1
Y = K*T = ~(~K+~T) = 1*1 = ~[~(1)+~(1)] = ~[0+0] = ~[0] =1
Oczywiście dla pozostałych wartościowań K i T zdanie B3 będzie fałszywe.
2.
K=1, T=0
Y=K*T = ~(~K+~T) = 1*0 = ~[~(1) + ~(0)] = ~[0+1] =~[1] =0
3.
K=0, T=1
Y=K*T = ~(~K+~T) = 1*0 = ~[~(0) + ~(1)] = ~[1+0] =~[1] =0
4.
K=0, T=0
Y=K*T = ~(~K+~T) = 0*0 = ~[~(0) + ~(0)] = ~[1+1] =~[1] =0
Doskonale widać, że matematycznie w zdaniu B3 wszystko nam się genialnie zgadza pod warunkiem że rozumiemy jak należy wartościować zdanie B3.
Związek logiki ujemnej (bo ~Y) z logiką dodatnią (bo Y).
Logika ujemna to zanegowana logika dodatnia
~Y=~(Y)
Podstawiając B2 i B1 mamy prawo De Morgana dla spójnika „lub”(+) w logice ujemnej (bo~ Y):
~Y = ~K+~T = ~(K*T)
B4.
Skłamię (~Y=1) wtedy i tylko wtedy gdy nie zdarzy się ~(…), ze jutro pójdę do kina (K) i pójdę do teatru (T)
~Y = ~K+~T = ~(K*T)
Zdanie tożsame:
B4.
Prawdą jest (=1) że skłamię (~Y) wtedy i tylko wtedy gdy nie zdarzy się ~(…), że jutro pójdę do kina (K) i pójdę do teatru (T)
~Y = ~K+~T = ~(K*T)
Punktem odniesienia w zdaniu B4 jest zdanie:
~Y=~K+~T
co matematycznie oznacza:
~Y=1 <=>~K=1 lub ~T=1
stąd:
Warunkiem koniecznym dla poprawnego wartościowania zdania A4 jest sprowadzenie sygnałów wejściowych do wspólnego punktu odniesienia (~K, ~T) korzystając z prawa podwójnego przeczenia:
K= ~(~K)
T=~(~T)
Stąd nasze równanie B4 przybiera postać:
B4: ~Y = ~K+~T = ~[~(~K)*~(~T)]
Dopiero teraz możemy poprawnie wartościować zdanie B4:
1.
~K=1, ~T=1
B4: ~Y = ~K+~T = 1+1 =1
B4: ~Y = ~[~(~K)*~(~T)] = ~[~(1)*~(1)] = ~[0*0] = ~[0] = 1
2.
~K=1, ~T=0
B4: ~Y = ~K+~T = 1+0 =1
B4: ~Y = ~[~(~K)*~(~T)] = ~[~(1)*~(0)] = ~[0*1] = ~[0] = 1
3.
~K=0, ~T=1
B4: ~Y = ~K+~T = 0+1 =1
B4: ~Y = ~[~(~K)*~(~T)] = ~[~(0)*~(1)] = ~[1*0] = ~[0] = 1
Oczywiście w ostatnim możliwym przypadku zdanie B4 musi być fałszywe:
4.
~K=0, ~T=0
B4: ~Y = ~K+~T = 0+0 =0
B4: ~Y = ~[~(~K)*~(~T)] = ~[~(0)*~(0)] = ~[1*1] = ~[1] = 0
W ten oto sposób, wyprzedzając czas, poznaliśmy sedno naturalnej logiki człowieka w spójnikach „lub”(+) i „i”(*) opisanej matematycznie przez algebrę Kubusia.
4.0 Najważniejsze prawa algebry Boole’a
Definicja zero-jedynkowa operatora OR:
Kod: |
p+q Y=p+q
A: 1+1 =1
B: 1+0 =1
C: 0+1 =1
D: 0+0 =0
1 2 3
|
Prawa zero-jedynkowe wynikające z definicji operatora OR:
1+1 =1
1+0 =1
0+1 =1
0+0 =0
Prawa algebry Boole’a wynikające z definicji operatora OR:
p+0 =p
p+1 =1
p+p =p
p+~p =1
Dowody formalne:
Kod: |
p ~p 1 0 p+1 p+0 p+~p
A: 1 0 1 0 1 1 1
B: 0 1 1 0 1 0 1
1 2 3 4 5 6 7
|
Poprawność wszystkich praw algebry Boole’a widać jak na dłoni.
W szczególności:
p+0=p
czego dowodem jest tożsamość kolumn 1 i 6.
Definicja zero-jedynkowa operatora AND:
Kod: |
p*q Y=p*q
A: 1*1 =1
B: 1*0 =0
C: 0*1 =0
D: 0*0 =0
1 2 3
|
Prawa zero-jedynkowe wynikające z definicji operatora AND:
1*1 =1
1*0 =0
0*1 =0
0*0 =0
Prawa algebry Boole’a wynikające z definicji operatora AND:
p*1 =p
p*0 =0
p*p =p
p*~p=0
Dowody formalne:
Kod: |
p ~p 1 0 p*1 p*0 p*~p
A: 1 0 1 0 1 0 0
B: 0 1 1 0 0 0 0
1 2 3 4 5 6 7
|
Poprawność wszystkich praw algebry Boole’a widać jak na dłoni.
W szczególności:
p*1=p
czego dowodem jest tożsamość kolumn 1 i 5.
Fundament algebry Boole’a:
p*~p =0
p+~p =1
Przydatne prawa dodatkowe
Łączność:
p+(q+r) = (p+q)+r
p*(q*r)=(p*q)*r
Przemienność:
p+q=q+r
p*q=q*r
Mnożenie logiczne wielomianów:
(p+q)*(r+s) = p*r+p*s+q*r+q*s
Wyciąganie zmiennej przed nawias:
p*q+p*r = p*(q+r)
Najważniejszym prawem algebry Boole’a jest prawo przejścia do logiki przeciwnej.
Prawo przejścia do logiki przeciwnej:
Negujemy zmienne i wymieniamy spójniki na przeciwne
Przykład:
Y=p+q(r+~s)
Algorytm Wuja Zbója:
A.
Uzupełniamy brakujące nawiasy i spójniki
Y = p+[q*(r+~s)]
co matematycznie oznacza:
Y=1 <=> p=1 lub [q=1 i (r=1 lub ~s=1)]
B.
Negujemy zmienne i wymieniamy spójniki na przeciwne, „lub”(+) na „i”(*) i odwrotnie
~Y = ~p*[~q+(~r*s)]
C.
Opuszczamy zbędne nawiasy
~Y = ~p*(~q+~r*s)
co matematycznie oznacza:
~Y=1 <=> ~p=1 i (~q=1 lub ~r=1 i s=1)
Kolejność wykonywania działań zarówno w logice dodatniej jak i ujemnej:
Nawiasy, „i”(*), „lub”(+)
Związek logiki dodatniej i ujemnej:
Y=~(~Y)
Podstawiając A i C mamy prawo De Morgana dla naszej funkcji logicznej A.
Y = p+q*(r+~s) = ~[~p*(~q+~r*s)]
Przykład minimalizacji funkcji logicznej:
Y = p+q = p*q + p*~q + ~p*q
Dowód tożsamości:
0. Y = p*q + p*~q + ~p*q
1. Y = p(q+~q) + ~p*q
2. Y = p*1 + ~p*q
3. Y = p+~p*q
Wykorzystane prawa:
1. Wyciągniecie zmiennej p przed nawias
2. q+~q=1
3. p*1=p
Mamy:
3. Y=p+(~p*q)
Przejście do logiki ujemnej poprzez negacje zmiennych i wymianę spójników:
4. ~Y = ~p*(p+~q)
5. ~Y = p*~p + ~p*~q
6. ~Y = 0 + ~p*~q
7. ~Y = ~p*~q
Wykorzystane prawa
4. Przejście do logiki ujemnej
5. Mnożenie zmiennej ~p przez wielomian
6. p*~p=0
7. 0+x=x
Mamy funkcję minimalną w logice ujemnej (bo ~Y):
~Y=~p*~q
Przechodząc do logiki przeciwnej mamy funkcje minimalną w logice dodatniej (bo Y)
Y = p+q
cnd
Oczywiście układ równań minimalnych:
Y=p+q
~Y=~p*~q
to nic innego jak definicja operatora OR w algebrze Kubusia.
Twierdzenie przydatne w minimalizacji równań logicznych.
Twierdzenie:
Dowolny fragment funkcji logicznej wolno nam wydzielić i zapisać jako niezależną funkcję logiczną, którą po minimalizacji możemy z powrotem wstawić do układu.
Przydatność tego twierdzenia poznamy na przykładzie:
Zminimalizuj funkcję logiczną Y metodą równań algebry Boole’a:
A: Y = ~p*q*~r + ~p*~q*r + ~p*~q*~r
Rozwiązanie:
Y = ~p*q*~r + ~p*~q(r+~r) /wyciągnięcie ~p*~q przed nawias
Y = ~p*q*~r + ~p*~q /r+~r=1; ~p*~q*1 =~p*~q
Y = ~p(q*~r+~q) /wyciągnięcie ~p przed nawias
B: Y = ~p*(z) / Podstawienie: z=q*~r+~q
-----------------------------------------------------------------------------------
z=(q*~r) + ~q
Przejście do logiki ujemnej (bo ~z) poprzez negację zmiennych i wymianę spójników
~z = (~q+r)*q
~z = ~q*q + r*q /po wymnożeniu wielomianu
~z = r*q /~q*q=0; 0+r*p = r*p
~z = q*r
Powrót do logiki dodatniej poprzez negację zmiennych i wymianę spójników
z = ~q + ~r / Funkcja logiczna „z” po minimalizacji
------------------------------------------------------------------------------------
B: Y = ~p*(z) /Przepisanie równania B
C: Y = ~p*(~q + ~r) / Podstawienie zminimalizowanej funkcji „z”
Po wymnożeniu zmiennej przez wielomian mamy:
D: Y = ~p*~q + ~p*~r
Funkcje C i D to funkcje minimalne, których nie da się dalej minimalizować.
Przydatne sztuczki matematyczne:
1.
Y=p*q
Przejście do logiki przeciwnej poprzez negację zmiennych i wymianę spójników:
~Y = ~p+~q
2.
To samo inaczej:
Y = p*q
Prawo De Morgana:
p*q = ~(~p+~q)
stąd:
Y = ~(~p+~q)
Negujemy dwustronnie:
~Y = ~p+~q
Dowolny fragment funkcji logicznej możemy ująć w nawias poprzedzony negacją, zaś w środku nawiasu zanegować wszystkie zmienne i wymienić spójniki na przeciwne(prawo De Morgana)
3.
Prawo De Morgana:
Y = p*q = ~(~p+~q)
Prawo De Morgana dla dowolnie długiej funkcji logicznej:
Y = p+q*(r+~s)
Y = ~(~p*~q+~r*s)
Negujemy dwustronnie:
~Y = ~p*~q + ~r*s
4.
Prawo przejścia do logiki przeciwnej dla funkcji złożonej:
Y = p+~p*q*r
Y = p+~p*(q*r)
Przejście do logiki przeciwnej:
~Y = ~p*[p+~(q*r)]
Mnożenie zmiennej przez wielomian:
~Y = ~p*p + ~p*~(q*r)
~Y = ~p*~(q*r)
bo:
~p*p=0
0+x=x
Przejście do logiki przeciwnej:
Y = p+q*r - funkcja minimalna
Uwagi:
W miejscu (q*r) mogłaby być dowolnie złożona funkcja logiczna z dowolną ilością zmiennych, nawet nieskończona, to bez znaczenia.
Na zakończenie ciekawostka w postaci wyprowadzenia prawa De Morgana bez użycia rachunku zero-jedynkowego.
Definicja spójnika „lub”(+):
Y=p+q
co matematycznie oznacza:
Y=1 <=> p=1 lub q=1
Wystarczy że którykolwiek człon po prawej stronie przyjmie wartość 1 i już funkcja logiczna Y=1
Algorytm wyprowadzenia prawa De Morgana bez użycia rachunku zero-jedynkowego:
A.
Y=p+q
Wprowadzenie podwójnych negacji w dowolną linię operatora OR niczego nie zmieni na mocy prawa podwójnego przeczenia:
p = ~(~p)
Negujemy podwójnie wszystkie sygnały w powyższej definicji A:
~(~Y)=~(~p)+~(~q)
Podstawmy:
Z=~Y
r=~p
s=~q
Stąd mamy:
~Z = ~r+~s
Przejście do logiki przeciwnej poprzez negacje zmiennych i wymianę spójników:
Z=r*s
Przywracamy oryginalne zmienne:
B.
~Y=~p*~q
Związek logiki dodatniej i ujemnej:
Y = ~(~Y)
Podstawiając A i B mamy:
Y=p+q = ~(~p*~q)
Twierdzenie:
W algebrze Kubusia nie są potrzebne ani zero-jedynkowe definicje operatorów logicznych, ani rachunek zero-jedynkowy, bowiem wszystko można udowodnić w równaniach algebry Boole’a, izolowanych od definicji zero-jedynkowych i rachunku zero-jedynkowego.
Pytanie, co było pierwsze:
Tabele zero-jedynkowe, czy równania algebry Boole’a?
Jest pytaniem w stylu:
Co było pierwsze, jajko czy kura?
4.1 Tworzenie równań logicznych opisujących dowolną tabelę zero-jedynkową
Dowolną tabelę zero-jedynkową można opisać równaniami algebry Boole’a w spójnikach „lub”(+) oraz „i”(*).
Fundamentem algorytmu są definicje spójników „i”(*) i „lub”(+) oraz prawa Prosiaczka.
Definicja spójnika „lub”(+):
Y=p+q
co matematycznie oznacza:
Y=1 <=> p=1 lub q=1
Inaczej:
Y=0
Stąd tabela zero-jedynkowa spójnika „lub”(+):
Kod: |
p q Y=p+q
1+1 =1
1+0 =1
0+1 =1
0+0 =0
|
gdzie:
„+” - spójnik „lub” o definicji jak wyżej
Definicja spójnika „i”(*):
Y=p*q
Co matematycznie oznacza:
Y=1 <=> p=1 i q=1
inaczej:
Y=0
Stąd tabela zero-jedynkowa spójnika „i”(*):
Kod: |
p q Y=p*q
1*1 =1
1*0 =0
0*1 =0
0*0 =0
|
gdzie:
„*” - spójnik „i” o definicji jak wyżej
Algorytm tworzenia równania algebry Boole’a poznamy na przykładzie operatora OR.
Zero-jedynkowa definicja operatora OR:
Kod: |
p q Y=p+q
A: 1+1 =1 /Ya= p* q
B: 1+0 =1 /Yb= p*~q
C: 0+1 =1 /Yc=~p* q
D: 0+0 =0
1 2 3
|
W algebrze Boole’a dla dowolnej tabeli zero-jedynkowej możemy ułożyć dwa podstawowe i nie tożsame równania algebry Boole’a, jedno opisujące wynikowe jedynki i drugie, opisujące wynikowe zera. Kompletny algorytm to zaledwie trzy kroki.
Równania algebry Boole’a opisujące wynikowe jedynki.
1.
Spis z natury (opisujemy dokładnie to co widzimy):
A: Ya=1 <=> p=1 i q=1
lub
B: Yb=1 <=> p=1 i q=0
lub
C: Yc=1 <=> p=0 i q=1
2.
Korzystając z praw Prosiaczka:
(p=1) = (~p=0)
(p=0) = (~p=1)
Dokładniej korzystamy z tego:
Jeśli p=0 to ~p=1
Sprowadzamy wszystkie zmienne do jedynek:
A: Ya=1 <=> p=1 i q=1
lub
B: Yb=1 <=> p=1 i ~q=1
lub
C: Yc=1 <=> ~p=1 i q=1
3.
Stąd na podstawie definicji spójnika „i”(*) w poziomach i spójnika „lub”(+) w pionie mamy końcowe równanie algebry Boole’a opisujące wynikowe jedynki:
ABC123:
Y = Ya+Yb+Yc
Y = p*q + p*~q + ~p*q
co matematycznie oznacza:
Y=1 <=> (p=1 i q=1) lub (p=1 i ~q=1) lub (~p=1 i q=1)
Wynika to ze sposobu dojścia do równania algebry Boole’a, gdzie wszystkie zmienne sprowadzamy do jedynek na mocy prawa Prosiaczka.
ABC123:
Y = p*q + p*~q + ~p*q
Zminimalizujmy tą funkcję:
Y = p*(q+~q) + ~p*q ;Wyciągnięcie zmiennej p przed nawias
Y = p+(~p*q) ;Prawa algebry Boole’a: q+~q=1, p*1=p
Przejście do logiki ujemnej poprzez negację zmiennych i wymianę spójników
~Y = ~p*(p+~q)
~Y = ~p*p + ~p*~q ;Mnożenie zmiennej ~p przez wielomian
~Y=~p*~q
Powrót do logiki dodatniej poprzez negację zmiennych i wymianę spójników
Y = p+q
Ostatnie równanie opisuje wyłącznie wynikowe jedynki w powyżej tabeli.
ABC123:
Y=p+q
co matematycznie oznacza:
Y=1 <=> p=1 lub q=1
Wystarczy że którakolwiek zmienna po prawej stronie przyjmie wartość 1 (np. q=1) i już funkcja logiczna Y przyjmie wartość 1 (Y=1), stan drugiej zmiennej jest nieistotny.
Stąd mamy tożsamość matematyczną:
ABC123:
Y = p+q = p*q + p*~q + ~p*q
Powyższe równanie opisuje obszar ABC123 (wynikowe jedynki).
Równania algebry Boole’a opisujące wynikowe zera.
Zero-jedynkowa definicja operatora OR:
Kod: |
p q Y=p+q
A: 1+1 =1
B: 1+0 =1
C: 0+1 =1
D: 0+0 =0 /~Yd=~p*~q
1 2 3
|
Widzimy że:
~Y = ~Yd
bo jest tylko jedna linia z zerem w wyniku
Postępujemy identycznie jak wyżej.
1.
Spis z natury dla wynikowych zer:
Y=0 <=> p=0 i q=0
W tej tabeli mamy tylko jedną linię z zerami w wyniku, ale w ogólnym przypadku może być więcej takich linii.
2.
Korzystając z prawa Prosiaczka:
(p=0) = (~p=1)
Dokładniej korzystamy z tego:
Jeśli p=0 to ~p=1
Sprowadzamy wszystkie zmienne do jedynek:
~Y=1 <=> ~p=1 i ~q=1
3.
Na mocy definicji spójnika „i”(*) mamy równanie końcowe opisujące linię z zerem w wyniku:
D123:
~Y=~p*~q
co matematycznie oznacza:
~Y=1 <=> ~p=1 i ~q=1
Oczywiście, negując linię D123 musimy otrzymać funkcję logiczną opisującą wynikowe jedynki w powyższej tabeli (ABC123). W tym przypadku będzie to definicja spójnika „lub”(+), ale w ogólnym przypadku nie musi tak być.
Przejście z równaniem D123 do logiki przeciwnej poprzez negację zmiennych i wymianę spójników na przeciwne.
Mamy D123:
~Y=~p*~q
stąd w logice przeciwnej mamy:
ABC123:
Y=p+q
co matematycznie oznacza:
Y=1 <=> p=1 lub q=1
Nanieśmy nasze równania na definicję operatora OR:
Kod: |
Tabela |Tabela |Tabela „zero-jedynkowa”
zero-jedynkowa |symboliczna |dla równań cząstkowych
p q Y=p+q | |
A: 1+ 1 =1 | p* q = Ya | 1*1 =1
B: 1+ 0 =1 | p*~q = Yb | 1*1 =1
C: 0+ 1 =1 |~p* q = Yc | 1*1 =1
D: 0+ 0 =0 |~p*~q =~Yd | 1*1 =1
1 2 3 4 5 6 7 8 9
|
Y= Ya+Yb+Yc
A1: Y= p*q+p*~q+~p*q = p+q
A2: ~Y = ~Yd = ~p*~q
Użyteczną technikę tworzenia równania logicznego dla dowolnej linii w spójniku „i”(*) widać jak na dłoni.
1.
Jeśli na wybranej pozycji mamy 1 to przepisujemy nagłówek kolumny.
Jeśli na wybranej pozycji mamy 0 to przepisujemy zanegowany nagłówek kolumny
2.
Zmienne wejściowe p i q łączymy spójnikiem „i”(*), przyporządkowując im funkcję Yx=1 (jeśli w wierszu widzimy Y=1) albo ~Yx=1 (jeśli w wierszu widzimy Y=0).
Zauważmy, że w równaniach cząstkowych dla poszczególnych linii (ABCD456) mamy wszystkie zmienne sprowadzone do jedynek, zatem rzeczywista tabela „zero-jedynkowa” dla równań cząstkowych to same jedynki (obszar ABCD789).
Oznacza to, że równania algebry Boole’a są separowane od jakichkolwiek tabel zero-jedynkowych typu ABCD123, mamy tu logikę w 100% symboliczną bez żadnego ustalonego punktu odniesienia. W tabelach zero-jedynkowych zawsze mamy ustalony sztywny punkt odniesienia widniejący w nagłówku tabeli.
Wnioski:
1.
Kompletną tabelę zero-jedynkową operatora OR (wszystkie cztery linie) opisuje układ równań logicznych:
A1: Y=p+q
A2: ~Y=~p*~q
Związek logiki dodatniej (Y) i ujemnej (~Y):
Y=~(~Y)
Podstawiając A1 i A2 mamy prawo De Morgana:
Y = p+q = ~(~p*~q)
2.
Jeśli w powyższej definicji symbolicznej ABCD456 ustawimy punkt odniesienia na funkcji w logice ujemnej:
~Y=~p*~q
To musimy otrzymać tabelę zero-jedynkową operatora AND zgodnie z użytym tu spójnikiem.
Mamy:
~Y=~p*~q
co matematycznie oznacza:
~Y=1 <=> ~p=1 i ~q=1
Stąd mamy:
~p=1, p=0
~q=1, q=0
Zakodujmy zgodnie z tym punktem odniesienia tabelę symboliczną ABCD456:
Kod: |
Tabela |Tabela |Tabela „zero-jedynkowa”|Tabela
zero-jedynkowa |symboliczna |dla równań cząstkowych |zero-jedynkowa
dla Y=p+q | | |dla ~Y=~p*~q
p q Y=p+q | | |~p ~q ~Y=~p*~q
A: 1+ 1 =1 | p* q = Ya | 1*1 =1 | 0* 0 =0
B: 1+ 0 =1 | p*~q = Yb | 1*1 =1 | 0* 1 =0
C: 0+ 1 =1 |~p* q = Yc | 1*1 =1 | 1* 0 =0
D: 0+ 0 =0 |~p*~q =~Yd | 1*1 =1 | 1* 1 =1
1 2 3 4 5 6 7 8 9 | a b c
|
Doskonale widać zero-jedynkową definicję operatora AND w obszarze ABCDabc.
Równanie opisujące wynikowe jedynki w tabeli ABCD123 to:
ABC123:
Y = p+q = p*q + p*~q + ~p*q
Jeśli je zanegujemy dwustronnie korzystając z prawa przejścia do logiki przeciwnej:
Negujemy zmienne i wymieniamy spójniki na przeciwne
to otrzymamy równanie algebry Boole’a opisujące linię z zerem w wyniku (D123).
Algorytm Wuja Zbója:
A1.
Uzupełniamy nawiasy i brakujące spójniki:
ABC123:
Y = p+q = (p*q) + (p*~q) + (~p*q)
A2.
Negujemy zmienne i wymieniamy spójniki na przeciwne
D123:
~Y = ~p*~q = (~p+~q)*(~p+q)*(p+~q)
Oczywiście równania ABC123 i D123 nie są tożsame.
Y # ~Y
W technice układów cyfrowych oznacza to, że jeśli zbudujemy układy A1 i A2 w bramkach logicznych i połączymy wyjścia Y i ~Y to zobaczymy kupę dymu i smrodu, wszystko wyleci w powietrze.
Zauważmy, że w tożsamości A1 wystarczy że którakolwiek zmienna jest równa 1 i już funkcja logiczna przyjmuje wartość 1 (Y=1).
Rzeczywistą tabelę zero-jedynkową dla funkcji A1 widzimy w obszarze ABCD123.
A1.
Y = p+q = (p*q) + (p*~q) + (~p*q)
Dowód:
Załóżmy p=1
Lewa strona tożsamości:
Y=p+q = 1+q =1
Prawa strona tożsamości:
Y =(p*q) + (p*~q) + (~p*q) = (1*q) + (1*~q)+ (0*q) = (1*q) + (1*~q) = q+~q =1
Inaczej:
Y=0
Ten przypadek to:
p=0, q=0
co wymusza:
~p=1, ~q=1
Lewa strona tożsamości:
Y = p+q = 0+0=0
Prawa strona tożsamości:
Y =(p*q) + (p*~q) + (~p*q) = (0*0) + (0*1)+ (1*0) = (0) + (0) + (0) = 0
cnd
Podobnie, funkcja logiczna A2 ~Y=~p*~q przyjmie wartość 1 wtedy i tylko wtedy gdy obie zmienne zostaną ustawione na wartość 1:
~p=1 i ~q=1
Rzeczywistą tabelę zero-jedynkową dla funkcji A2 widzimy w obszarze ABCDabc
A2.
~Y = ~p*~q = (~p+~q)*(~p+q)*(p+~q)
Dowód:
Z założenia mamy:
~p=1, p=0
~q=1, q=0
stąd:
Lewa strona tożsamości:
~Y = ~p*~q =1*1=1
Prawa strona tożsamości:
~Y = (~p+~q)*(~p+q)*(p+~q) = (1+1)*(1+0)*(0+1) = 1*1*1 =1
cnd
Oczywiście dla dowolnych innych kombinacji ~p i ~q funkcja logiczna ~Y musi przyjąć wartość logiczną 0 (~Y=0), co łatwo sprawdzić.
Potwierdza to tabela zero-jedynkowa ABCDabc wyżej.
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
rafal3006
Opiekun Forum Kubusia
Dołączył: 30 Kwi 2006
Posty: 35368
Przeczytał: 20 tematów
Skąd: z innego Wszechświata Płeć: Mężczyzna
|
Wysłany: Nie 11:29, 22 Wrz 2013 Temat postu: |
|
|
4.2 Definicja symboliczna operatora OR
Fundamentem równań algebry Boole’a w spójnikach „lub’(+) i „i”(*) są zero-jedynkowe definicje operatorów OR i AND.
Definicja spójnika „lub”(+):
Y=p+q
co matematycznie oznacza:
Y=1 <=> p=1 lub q=1
Inaczej:
Y=0
Stąd tabela zero-jedynkowa spójnika „lub”(+):
Kod: |
p q Y=p+q
1+1 =1
1+0 =1
0+1 =1
0+0 =0
|
gdzie:
„+” - spójnik „lub” o definicji jak wyżej
Definicja spójnika „i”(*):
Y=p*q
Co matematycznie oznacza:
Y=1 <=> p=1 i q=1
inaczej:
Y=0
Stąd tabela zero-jedynkowa spójnika „i”(*):
Kod: |
p q Y=p*q
1*1 =1
1*0 =0
0*1 =0
0*0 =0
|
gdzie:
„*” - spójnik „i” o definicji jak wyżej
W algebrze Kubusia ta sama tabela zero-jedynkowa opisuje wiele fundamentalnie różnych funkcji logicznych wyrażonych spójnikami „lub”(+) i „i”(*).
Twierdzenie śfinii:
Dla funkcji logicznej o n-zmiennych wejściowych możliwe jest zapisanie 2^n różnych funkcji logicznych w logice dodatniej (bo Y) obsługiwanych przez identyczną tabelę zero-jedynkową w logice dodatniej (bo Y) oraz 2^n różnych funkcji logicznych w logice ujemnej (bo ~Y) obsługiwanych przez identyczną tabelę zero-jedynkową w logice ujemnej (bo ~Y).
Prześledźmy prawdziwość tego twierdzenia dla dwóch zmiennych wejściowych p i q na przykładzie operatora OR.
Kod: |
Tabela 1
D1:~p+~q Y=~p+~q ------------------------------------>|
C1:~p+ q Y=~p+ q ----------------------->| |
B1: p+~q Y= p+~q ----A1---->| B1 | C1 | D1
A1: p+ q Y= p+ q| p+ q Y=p+q| p+~q Y=p+~q|~p+ q Y=~p+q|~p+~q Y=~p+~q|
---------------------------------------------------------------------------
A: 1+ 1 =1 | p* q= Ya | p*~q= Ya |~p* q= Ya |~p*~q= Ya |1*1=1
B: 1+ 0 =1 | p*~q= Yb | p* q= Yb |~p*~q= Yb |~p* q= Yb |1*1=1
C: 0+ 1 =1 |~p* q= Yc |~p*~q= Yc | p* q= Yc | p*~q= Yc |1*1=1
D: 0+ 0 =0 |~p*~q=~Yd |~p* q=~Yd | p*~q=~Yd | p* q=~Yd |1*1=1
1 2 3 a b c d e f g h i j k l |4 5 6
|
Podstawowa, zero-jedynkowa definicja operatora OR to funkcja A1 z tabelą zero-jedynkową ABCD123 i tabelą symboliczną ABCDabc.
Zauważmy, że fundamentalnie różne funkcje logiczne A1, B1, C1 i D1 opisuje ta sama tabela zero-jedynkowa ABCD123 dla punktów odniesienia ustalonych w nagłówkach funkcji symbolicznych.
W funkcjach A1, B1, C1 i D1 wszystkie zmienne mamy sprowadzone do jedynek (tabela ABCD456) co oznacza, że w zerach i jedynkach nie ma tu żadnej logiki. Cała logika zakodowana jest w równaniach logicznych algebry Boole’a.
Użyteczny algorytm tworzenia dowolnej tabeli symbolicznej A1, B1, C1 i D1 z tabeli zero-jedynkowej ABCD123:
1.
Jeśli na wybranej pozycji w ABCD123 występuje 1 to przepisujemy nagłówek tabeli
2.
Jeśli na wybranej pozycji w ABCD123 występuje 0 to przepisujemy zanegowany nagłówek tabeli
3.
W odpowiedniej tabeli symbolicznej w wierszu używamy spójnika „i”(*), piony dla tych samych wynikowych wartości (0 albo 1) łączymy spójnikiem „lub”(+) otrzymując równanie algebry Boole’a jednoznacznie opisujące rozpatrywaną tabelę zero-jedynkową.
Doskonale widać również użyteczny algorytm odwrotny, tworzenia tabeli zero-jedynkowej ABCD123 z dowolnej tabeli symbolicznej A1, B1, C1, D1.
1.
Jeśli na wybranej pozycji w tabeli x1 występuje zgodność sygnałów z nagłówkiem to w tabeli zero-jedynkowej ABCD123 zapisujemy 1
2.
Jeśli na wybranej pozycji w tabeli x1 występuje niezgodność sygnałów z nagłówkiem to w tabeli zero-jedynkowej ABCD123 zapisujemy 0
3.
W tabeli zero-jedynkowej w wierszach używamy znaczka „+” bo taki widnieje w nagłówku tabeli symbolicznej.
Zastosujmy do powyższej tabeli prawo przejścia do logiki przeciwnej:
Negujemy zmienne i wymieniamy spójniki na przeciwne
Dla funkcji podstawowej A1 otrzymamy:
A1.
Y=p+q
… a kiedy zajdzie ~Y?
Przejście do logiki ujemnej poprzez negacje zmiennych i wymianę spójników:
~Y=~p*~q
Identycznie będzie dla pozostałych funkcji: B1, C1 i D1
Zauważmy, że w tabeli 1 w nagłówkach tabel symbolicznych mamy wyłącznie funkcje w logice dodatniej (bo Y). Z prawa przejścia do logiki przeciwnej wynika, że aby uzyskać odpowiednie funkcje w logice ujemnej musimy zanegować wszystkie sygnały i użyć spójnika „i”(*).
Nasza tabela 1 widziana w logice ujemnej przyjmie więc postać.
Kod: |
Tabela 2
D1: p* q ~Y= p* q ----------------------------------------->|
C1: p*~q ~Y= p*~q --------------------------->| |
B1:~p* q ~Y=~p* q ----A2------->| B2 | C2 | D2
A1:~p*~q ~Y=~p*~q|~p*~q ~Y=~p*~q|~p* q ~Y=~p*q| p*~q ~Y=p*~q| p* q ~Y=p*q|
---------------------------------------------------------------------------
A: 0* 0 =0 | p* q= Ya | p*~q= Ya |~p* q= Ya |~p*~q= Ya |1*1=1
B: 0* 1 =0 | p*~q= Yb | p* q= Yb |~p*~q= Yb |~p* q= Yb |1*1=1
C: 1* 0 =0 |~p* q= Yc |~p*~q= Yc | p* q= Yc | p*~q= Yc |1*1=1
D: 1* 1 =1 |~p*~q=~Yd |~p* q=~Yd | p*~q=~Yd | p* q=~Yd |1*1=1
1 2 3 a b c d e f g h i j k l |4 5 6
|
Jak widzimy, symboliczne funkcje logiczne są identyczne w tabeli 1 i w tabeli 2.
Zmiana punktu odniesienia na funkcję ujemną (bo ~Y) wygenerowała tabelę zero-jedynkową (ABCD123) operatora AND, co jest zgodne z prawem przejścia do logiki przeciwnej.
Algorytmy tworzenia zapisu symbolicznego z tabeli zero-jedynkowej ABCD123 i odwrotnie są identyczne w tabeli 1 i tabeli 2.
Tabelę 1 i 2 można zobrazować na wykresie czasowym:
Objaśnienia do wykresu czasowego w punkcie 2.4
Najprostszy algorytm rysowania funkcji Y i ~Y (wypełniania tabel zero-jedynkowych) widać tu jak na dłoni.
Weźmy przykładową funkcję:
Y=p+~q (zielona)
co matematycznie oznacza:
Y=1 <=> p=1 lub ~q=1
Oczywiście bierzemy tu pod uwagę wyłącznie zmienne wejściowe p i ~q.
.. a kiedy zajdzie ~Y?
Przejście do logiki przeciwnej poprzez negację zmiennych i wymianę spójników
~Y=~p*q (zielona)
co matematycznie oznacza:
~Y=1 <=> ~p=1 i q=1
W tym przypadku bierzemy pod uwagę wyłącznie zmienne wejściowe ~p i q
Definicja spójnika „lub”(+):
Kod: |
Definicja spójnika |Definicja spójnika
„lub”(+) w logice |”i”(*) w logice
dodatniej (bo Y) |ujemnej (bo ~Y)
p ~q Y=p+~q | ~p q ~Y=~p*q
1+ 1 =1 | 0* 0 =0
1+ 0 =1 | 0* 1 =0
0+ 1 =1 | 1* 0 =0
0+ 0 =0 | 1* 1 =1
|
Logika dodatnia (bo Y):
Definicja spójnika „lub”(+):
Y=p+~q
co matematycznie oznacza:
Y=1 <=> p=1 lub ~q=1
Inaczej:
Y=0
Szukamy jedynki w sygnale p lub ~q zaznaczając dla tego przypadku:
Y=p+~q =1
Pozostałe części wykresu (tabeli zero-jedynkowej) uzupełniamy 0.
… ale można prościej!
W spójniku „lub”(+) mamy:
Y=0 <=> p=0 i ~q=0
Inaczej:
Y=1
Szukamy zatem wspólnych zer w funkcjach wejściowych p i ~q dla których zaznaczamy:
Y=p+~q =0
Resztę przypadków uzupełniamy jedynkami nie wnikając w żadne szczegóły.
Logika ujemna (bo ~Y):
Najprostszy algorytm to szukamy wspólnych jedynek w zmiennych wejściowych ~p i q zaznaczając:
~Y=p*~q =1
Pozostałe pozycje uzupełniając zerami.
Oczywiście można sobie utrudnić:
W sygnałach ~p i q szukamy na każdej pozycji choćby jednego zera zaznaczając:
~Y=p*~q =0
Pozostałe pozycje uzupełniając jedynkami.
Funkcje A1, B1, C1 i D1 to fundamentalnie inne funkcje co widać w poniższych przykładach.
A1 ## B1 ## C1 ## D1
gdzie:
## - różne na mocy definicji
W języku mówionym są to cztery różne zdania pomiędzy którymi nie zachodzą żadne zależności matematyczne, czyli między dowolnymi dwoma zdaniami pochodzącymi różnych źródeł (A1, B1, C1, D1) nie zachodzi prawo przejścia do logiki przeciwnej, a tym samym nie zachodzi prawo De Morgana.
Doskonale to widać w poniższych przykładach.
A1.
Y=p+q
… a kiedy zajdzie ~Y?
Przejście do logiki ujemnej poprzez negacje zmiennych i wymianę spójników:
~Y=~p*~q
Przykład:
A1.
Jutro pójdę do kina lub do teatru
Y=K+T
co matematycznie oznacza:
Y=1 <=> K=1 lub T=1
Wystarczy że pójdę w jedno miejsce i już dotrzymam słowa
… a kiedy skłamię?
Przejście do logiki ujemnej poprzez negacje zmiennych i wymianę spójników:
~Y=~K*~T
A2.
Skłamię (~Y=1) wtedy i tylko wtedy gdy jutro nie pójdę do kina i nie pójdę do teatru
~Y=~K*~T
co matematycznie oznacza:
~Y=1 <=> ~K=1 i ~T=1
Związek logiki dodatniej i ujemnej:
Y = ~(~Y)
Podstawiając A1 i A2 mamy prawo De Morgana:
Y = K+T = ~(~K*~T)
B1.
Y=~p+q
… a kiedy zajdzie ~Y?
Przejście do logiki ujemnej poprzez negacje zmiennych i wymianę spójników:
~Y=p*~q
Przykład:
B1.
Jutro nie pójdę do kina lub pójdę do teatru
Y=~K+T
co matematycznie oznacza:
Y=1 <=> ~K=1 lub T=1
Wystarczy że nie pójdę do kina (~K=1) lub pójdę do teatru (T=1) i już dotrzymam słowa.
… a kiedy skłamię?
Przejście do logiki ujemnej poprzez negacje zmiennych i wymianę spójników:
~Y=K*~T
B2.
Skłamię (~Y=1) wtedy i tylko wtedy gdy jutro pójdę do kina i nie pójdę do teatru
~Y=K*~T
co matematycznie oznacza:
~Y=1 <=> K=1 i ~T=1
Związek logiki dodatniej i ujemnej:
Y = ~(~Y)
Podstawiając B1 i B2 mamy prawo De Morgana:
Y = ~K+T = ~(K*~T)
C1.
Y=p+~q
… a kiedy zajdzie ~Y?
Przejście do logiki ujemnej poprzez negacje zmiennych i wymianę spójników:
~Y=~p*q
Przykład:
C1.
Jutro pójdę do kina lub nie pójdę do teatru
Y=K+~T
co matematycznie oznacza:
Y=1 <=> K=1 lub ~T=1
Wystarczy że pójdę do kina (K=1) lub nie pójdę do teatru (~T=1) i już dotrzymam słowa
… a kiedy skłamię?
Przejście do logiki ujemnej poprzez negacje zmiennych i wymianę spójników:
~Y=~K*T
C2.
Skłamię (~Y=1) wtedy i tylko wtedy gdy jutro nie pójdę do kina i pójdę do teatru
~Y=~K*T
co matematycznie oznacza:
~Y=1 <=> ~K=1 i T=1
Związek logiki dodatniej i ujemnej:
Y = ~(~Y)
Podstawiając C1 i C2 mamy prawo De Morgana:
Y = K+~T = ~(~K*T)
D1.
Y=~p+~q
… a kiedy zajdzie ~Y?
Przejście do logiki ujemnej poprzez negacje zmiennych i wymianę spójników:
~Y=p*q
Przykład:
D1.
Jutro nie pójdę do kina lub nie pójdę do teatru
Y=~K+~T
co matematycznie oznacza:
Y=1 <=> ~K=1 lub ~T=1
Wystarczy że nie pójdę do kina (~K=1) lub nie pójdę do teatru (~T=1) i już dotrzymam słowa
… a kiedy skłamię?
Przejście do logiki ujemnej poprzez negacje zmiennych i wymianę spójników:
~Y=K*T
D2.
Skłamię (~Y=1) wtedy i tylko wtedy gdy jutro pójdę do kina i pójdę do teatru
~Y=K*T
co matematycznie oznacza:
~Y=1 <=> K=1 i T=1
Związek logiki dodatniej i ujemnej:
Y = ~(~Y)
Podstawiając D1 i D2 mamy prawo De Morgana:
Y = ~K+~T = ~(K*T)
Na mocy powyższego możemy sformułować symboliczną definicję operatora OR niezależną od jakichkolwiek tabel zero-jedynkowych.
Definicja symboliczna operatora OR:
Kod: |
Kiedy wystąpi Y?
(Y - dotrzymam słowa)
Funkcja w logice dodatniej bo Y
W: Y=p+q
W: Y=p*q+p*~q+~p*q
A: p* q= Ya
B: p*~q= Yb
C: ~p* q= Yc
Kiedy wystąpi ~Y?
(~Y - skłamię)
Przejście do logiki ujemnej poprzez negację zmiennych i wymianę spójników
Funkcja w logice ujemnej bo ~Y
U: ~Y=~p*~q
D: ~p*~q=~Y
|
Definicja operatora OR:
Operator OR to złożenie spójnika „lub”(+) w logice dodatniej (bo Y) ze spójnikiem „i”(*) w logice ujemnej (bo ~Y):
W: Y=p+q = p*q + p*~q + ~p*q - wyłącznie obszar ABC123
U: ~Y = ~p*~q - wyłącznie linia D123
Zdania W i U to zdania różne (Y#~Y) pomiędzy którymi zachodzi prawo przejścia do logiki przeciwnej.
W.
Y=p+q
co matematycznie oznacza:
Y=1 <=> p=1 lub q=1
inaczej:
Y=0
Przejście do logiki przeciwnej poprzez negację zmiennych i wymianę spójników
U.
~Y=~p*~q
co matematycznie oznacza:
~Y=1 <=> ~p=1 i ~q=1
inaczej:
~Y=0
Związek logiki dodatniej (bo Y) i ujemnej (bo ~Y):
Y = ~(~Y) - prawo podwójnego przeczenia
Podstawiając W i U mamy prawo De Morgana:
Y = p+q = `(~p*~q)
W tabeli symbolicznej operatora OR zmienne wejściowe p i q mogą występować w dowolnych przeczeniach, nie ma to wpływu na tabelę zero-jedynkową operatora OR co pokazaliśmy wyżej. Funkcja wyjściowa Y musi pozostać dokładnie jak wyżej, nie wolno jej negować.
Dla punktu odniesienia ustawionym na zdaniu W otrzymujemy zero-jedynkową definicję operatora OR w logice dodatniej (bo Y):
W.
Y=p+q
co matematycznie oznacza:
Y=1 <=> p=1 lub q=1
Stąd otrzymujemy:
p=1, ~p=0
q=1, ~q=0
Y=1, ~Y=0
Zero-jedynkowa definicja operatora OR w logice dodatniej (bo Y):
Kod: |
Tabela 1
Definicja symboliczna OR |Definicja zero-jedynkowa spójnika „lub”(+)
Punkt odniesienia Y=p+q |w logice dodatniej (bo Y)
p q Y=p+q | p q Y=p+q
----------------------------------------------------------
A: p* q = Ya | 1+ 1 =1
B: p*~q = Yb | 1+ 0 =1
C:~p* q = Yc | 0+ 1 =1
D:~p*~q =~Y | 0+ 0 =0
1 2 3 4 5 6
|
Przykładowe algorytmy tworzenia tabeli zero-jedynkowej ABCD456 z tabeli symbolicznej ABCD123 i odwrotnie.
Algorytm I
Najprostszy algorytm tworzenia tabeli zero-jedynkowej ABCD456 z tabeli symbolicznej ABCD123 to zastąpienie symboli w tabeli ABCD123 odpowiednimi zerami i jedynkami zgodnie z przyjętym punktem odniesienia, tu:
p=1, ~p=0
q=1, ~q=0
Y=1, ~Y=0
Wiersze w tabeli zero-jedynkowej łączymy spójnikiem „lub”(+).
Algorytm odwrotny jest identyczny jak w algorytmie II
Algorytm II
Użyteczny algorytm tworzenia tabeli zero-jedynkowej ABCD456 z definicji symbolicznej ABCD123:
1.
Jeśli na danej pozycji występuje zgodność sygnału z nagłówkiem to zapisujemy 1
2.
Jeśli na danej pozycji występuje niezgodność sygnału z nagłówkiem to zapisujemy 0
3.
W wierszach tabeli zero-jedynkowej używamy spójnika „lub”(+)
Algorytm odwrotny jest oczywisty.
Algorytm tworzenia definicji symbolicznej ABCD123 na podstawie tabeli zero-jedynkowej ABCD456:
1.
Jeśli na danej pozycji występuje 1 to przepisujemy nagłówek tabeli
2.
Jeśli na danej pozycji występuje 0 to przepisujemy zanegowany nagłówek tabeli
3.
Zmienne wejściowe łączymy spójnikiem „i”(*)
Tabela ABCD456 to zero-jedynkowa definicja operatora OR.
Dla punktu odniesienia ustawionego na zdaniu U otrzymujemy zero-jedynkową definicję operatora AND w logice ujemnej (bo ~Y).
U: ~Y=~p*~q
~p=1, p=0
~q=1, q=0
~Y=1, Y=0
Zero-jedynkowa definicja operatora AND w logice ujemnej (bo ~Y)
Kod: |
Tabela 2
Definicja symboliczna OR |Definicja zero-jedynkowa AND
Punkt odniesienia ~Y=~p*~q |dla punktu odniesienia ~Y=~p*~q
~p ~q ~Y=~p*~q |~p ~q ~Y=~p*~q
-----------------------------------------------------------
A: p* q = Ya | 0* 0 =0
B: p*~q = Yb | 0* 1 =0
C:~p* q = Yc | 1* 0 =0
D:~p*~q =~Y | 1* 1 =1
1 2 3 4 5 6
|
Zauważmy, że definicja symboliczna operatora OR jest identyczna w tabeli 1 i tabeli 2 (obszar ABCD123).
Dla punktu odniesienia ustawionym na zdaniu w logice ujemnej (bo ~Y) otrzymujemy zero-jedynkową definicję operatora AND w logice ujemnej (bo ~Y). Algorytmy tworzenia tabeli zero-jedynkowej ABCD456 z tabeli symbolicznej ABCD123 i odwrotnie są tu identyczne jak w tabeli 1.
Przykład przedszkolaka:
W.
Jutro pójdę do kina lub do teatru
Y = K+T
co matematycznie oznacza:
Y=1 <=> K=1 lub T=1
... a kiedy skłamię?
Przejście do logiki ujemnej poprzez negację zmiennych i wymianę spójników
~Y=~K*~T
U.
Skłamię (~Y=1) wtedy i tylko wtedy gdy jutro nie pójdę do kina (~K=1) i nie pójdę do teatru (~T=1)
~Y=~K*~T
co matematycznie oznacza:
~Y=1 <=> ~K=1 i ~T=1
Czytamy!
Prawdą jest (=1), że skłamię (~Y) wtedy i tylko wtedy gdy jutro nie pójdę do kina (~K=1) i nie pójdę do teatru (~T=1)
Analiza równoważna:
Pełna definicja spójnika „lub”(+) w logice dodatniej (bo Y):
Y= p+q = p*q + p*~q +~p*q
Dla naszego zdania mamy:
W.
Jutro pójdę do kina lub do teatru
Y=K+T - logika dodatnia (bo Y)
Zdanie wypowiedziane W znaczy dokładnie to samo co:
Y=K*T + K*~T + ~K*T
Dotrzymam słowa (Y=1) wtedy i tylko wtedy gdy:
A: K*T=1*1=1 - jutro pójdę do kina (K=1) i do teatru (T=1)
lub
B: K*~T=1*1=1 - jutro pójdę do kina (K=1) i nie pójdę do teatru (~T=1)
lub
C: ~K*T=1*1=1 - jutro nie pójdę do kina (~K=1) i pójdę do teatru (T=1)
... a kiedy skłamię?
Przejście ze zdaniem W do logiki ujemnej (bo ~Y)
~Y=~K*~T
U.
Skłamię (~Y=1) wtedy i tylko wtedy gdy:
D: ~K*~T=1*1=1 - jutro nie pójdę do kina (~K=1) i nie pójdę do teatru (~T=1)
4.3 Definicja symboliczna operatora AND
Fundamentem równań algebry Boole’a w spójnikach „lub’(+) i „i”(*) są zero-jedynkowe definicje operatorów OR i AND.
Definicja spójnika „lub”(+):
Y=p+q
co matematycznie oznacza:
Y=1 <=> p=1 lub q=1
Inaczej:
Y=0
Stąd tabela zero-jedynkowa spójnika „lub”(+):
Kod: |
p q Y=p+q
1+1 =1
1+0 =1
0+1 =1
0+0 =0
|
gdzie:
„+” - spójnik „lub” o definicji jak wyżej
Definicja spójnika „i”(*):
Y=p*q
Co matematycznie oznacza:
Y=1 <=> p=1 i q=1
inaczej:
Y=0
Stąd tabela zero-jedynkowa spójnika „i”(*):
Kod: |
p q Y=p*q
1*1 =1
1*0 =0
0*1 =0
0*0 =0
|
gdzie:
„*” - spójnik „i” o definicji jak wyżej
W algebrze Kubusia ta sama tabela zero-jedynkowa opisuje wiele fundamentalnie różnych funkcji logicznych wyrażonych spójnikami „lub”(+) i „i”(*).
Twierdzenie śfinii:
Dla funkcji logicznej o n-zmiennych wejściowych możliwe jest zapisanie 2^n różnych funkcji logicznych w logice dodatniej (bo Y) obsługiwanych przez identyczną tabelę zero-jedynkową w logice dodatniej (bo Y) oraz 2^n różnych funkcji logicznych w logice ujemnej (bo ~Y) obsługiwanych przez identyczną tabelę zero-jedynkową w logice ujemnej (bo ~Y).
Prześledźmy prawdziwość tego twierdzenia dla dwóch zmiennych wejściowych p i q na przykładzie operatora AND.
Kod: |
Tabela 1
D1:~p*~q Y=~p*~q ------------------------------------>|
C1:~p* q Y=~p* q ----------------------->| |
B1: p*~q Y= p*~q ----A1---->| B1 | C1 | D1
A1: p* q Y= p* q| p* q Y=p*q| p*~q Y=p*~q|~p* q Y=~p*q|~p*~q Y=~p*~q|
---------------------------------------------------------------------------
A: 1* 1 =1 | p* q= Ya | p*~q= Ya |~p* q= Ya |~p*~q= Ya |1*1=1
B: 0* 0 =0 |~p*~q=~Yb |~p* q=~Yb | p*~q=~Yb | p* q=~Yb |1*1=1
C: 0* 1 =0 |~p* q=~Yc |~p*~q=~Yc | p* q=~Yc | p*~q=~Yc |1*1=1
D: 1* 0 =0 | p*~q=~Yd | p* q=~Yd |~p*~q=~Yd |~p* q=~Yd |1*1=1
1 2 3 a b c d e f g h i j k l |4 5 6
|
Podstawowa, zero-jedynkowa definicja operatora AND to funkcja A1 z tabelą zero-jedynkową ABCD123 i tabelą symboliczną ABCDabc.
Zauważmy, że fundamentalnie różne funkcje logiczne A1, B1, C1 i D1 opisuje ta sama tabela zero-jedynkowa ABCD123 dla punktów odniesienia ustalonych w nagłówkach funkcji symbolicznych.
W funkcjach A1, B1, C1 i D1 wszystkie zmienne mamy sprowadzone do jedynek (tabela ABCD456) co oznacza, że w zerach i jedynkach nie ma tu żadnej logiki. Cała logika zakodowana jest w równaniach logicznych algebry Boole’a.
Użyteczny algorytm tworzenia dowolnej tabeli symbolicznej A1, B1, C1 i D1 z tabeli zero-jedynkowej ABCD123:
1.
Jeśli na wybranej pozycji w ABCD123 występuje 1 to przepisujemy nagłówek tabeli
2.
Jeśli na wybranej pozycji w ABCD123 występuje 0 to przepisujemy zanegowany nagłówek tabeli
3.
W odpowiedniej tabeli symbolicznej w wierszu używamy spójnika „i”(*), piony dla tych samych wynikowych wartości (0 albo 1) łączymy spójnikiem „lub”(+) otrzymując równanie algebry Boole’a jednoznacznie opisujące rozpatrywaną tabelę zero-jedynkową.
Doskonale widać również użyteczny algorytm odwrotny, tworzenia tabeli zero-jedynkowej ABCD123 z dowolnej tabeli symbolicznej A1, B1, C1, D1.
1.
Jeśli na wybranej pozycji w tabeli x1 występuje zgodność sygnałów z nagłówkiem to w tabeli zero-jedynkowej ABCD123 zapisujemy 1
2.
Jeśli na wybranej pozycji w tabeli x1 występuje niezgodność sygnałów z nagłówkiem to w tabeli zero-jedynkowej ABCD123 zapisujemy 0
3.
W tabeli zero-jedynkowej w wierszach używamy znaczka „*” bo taki widnieje w nagłówku tabeli symbolicznej.
Zastosujmy do powyższej tabeli prawo przejścia do logiki przeciwnej:
Negujemy zmienne i wymieniamy spójniki na przeciwne
Dla funkcji podstawowej A1 otrzymamy:
A1.
Y=p*q
… a kiedy zajdzie ~Y?
Przejście do logiki ujemnej poprzez negacje zmiennych i wymianę spójników:
~Y=~p+~q
Identycznie będzie dla pozostałych funkcji: B1, C1 i D1
Zauważmy, że w tabeli 1 w nagłówkach tabel symbolicznych mamy wyłącznie funkcje w logice dodatniej (bo Y). Z prawa przejścia do logiki przeciwnej wynika, że aby uzyskać odpowiednie funkcje w logice ujemnej musimy zanegować wszystkie sygnały i użyć spójnika „i”(+).
Nasza tabela 1 widziana w logice ujemnej przyjmie więc postać.
Kod: |
Tabela 2
D1: p+ q ~Y= p+ q ----------------------------------------->|
C1: p+~q ~Y= p+~q --------------------------->| |
B1:~p+ q ~Y=~p+ q ----A2------->| B2 | C2 | D2
A1:~p+~q ~Y=~p+~q|~p+~q ~Y=~p+~q|~p+ q ~Y=~p+q| p+~q ~Y=p+~q| p+ q ~Y=p+q|
---------------------------------------------------------------------------
A: 0+ 0 =0 | p* q= Ya | p*~q= Ya |~p* q= Ya |~p*~q= Ya |1*1=1
B: 1+ 1 =1 |~p*~q=~Yb |~p* q=~Yb | p*~q=~Yb | p* q=~Yb |1*1=1
C: 1+ 0 =1 |~p* q= Yc |~p*~q= Yc | p* q= Yc | p*~q= Yc |1*1=1
D: 0+ 1 =1 | p*~q= Yd | p* q= Yd |~p*~q= Yd |~p* q= Yd |1*1=1
1 2 3 a b c d e f g h i j k l |4 5 6
|
Jak widzimy, symboliczne funkcje logiczne są identyczne w tabeli 1 i w tabeli 2.
Zmiana punktu odniesienia na funkcję ujemną (bo ~Y) wygenerowała tabelę zero-jedynkową (ABCD123) operatora OR, co jest zgodne z prawem przejścia do logiki przeciwnej.
Algorytmy tworzenia zapisu symbolicznego z tabeli zero-jedynkowej ABCD123 i odwrotnie są identyczne w tabeli 1 i tabeli 2.
Tabelę 1 i 2 można zobrazować na wykresie czasowym:
Objaśnienia do wykresu czasowego w punkcie 2.4
Najprostszy algorytm rysowania funkcji Y i ~Y (wypełniania tabel zero-jedynkowych) widać tu jak na dłoni.
Weźmy przykładową funkcję:
Y=p*~q (zielona)
co matematycznie oznacza:
Y=1 <=> p=1 i ~q=1
Oczywiście bierzemy tu pod uwagę wyłącznie zmienne wejściowe p i ~q.
.. a kiedy zajdzie ~Y?
Przejście do logiki przeciwnej poprzez negację zmiennych i wymianę spójników
~Y=~p+q (zielona)
co matematycznie oznacza:
~Y=1 <=> ~p=1 lub q=1
W tym przypadku bierzemy pod uwagę wyłącznie zmienne wejściowe ~p i q
Definicja spójnika „i”(*):
Kod: |
Definicja spójnika |Definicja spójnika
„i”(*) w logice |”lub”(+) w logice
dodatniej (bo Y) |ujemnej (bo ~Y)
p ~q Y=p*~q | ~p q ~Y=~p+q
1* 1 =1 | 0+ 0 =0
0* 0 =0 | 1+ 1 =1
0* 1 =0 | 1+ 0 =1
1* 0 =0 | 0+ 1 =1
|
Logika dodatnia (bo Y):
Definicja spójnika „i”(*):
Y=p*~q
co matematycznie oznacza:
Y=1 <=> p=1 i ~q=1
Inaczej:
Y=0
Szukamy jedynki w sygnale p lub ~q zaznaczając dla tego przypadku:
Y=p*~q =1
Pozostałe części wykresu (tabeli zero-jedynkowej) uzupełniamy 0.
Logika ujemna (bo ~Y):
W sygnałach ~p i q szukamy na każdej pozycji choćby jednej jedynki zaznaczając:
~Y=p+~q =1
Pozostałe pozycje uzupełniając zerami.
Oczywiście można prościej:
W sygnałach ~p i q szukamy samych zer zaznaczając:
~Y=p+~q =0
Pozostałe pozycje uzupełniamy jedynkami nie wnikając w szczegóły.
Funkcje A1, B1, C1 i D1 to fundamentalnie inne funkcje co widać w poniższych przykładach.
A1 ## B1 ## C1 ## D1
gdzie:
## - różne na mocy definicji
W języku mówionym są to cztery różne zdania pomiędzy którymi nie zachodzą żadne zależności matematyczne, czyli między dowolnymi dwoma zdaniami pochodzącymi różnych źródeł (A1, B1, C1, D1) nie zachodzi prawo przejścia do logiki przeciwnej, a tym samym nie zachodzi prawo De Morgana.
Doskonale to widać w poniższych przykładach.
A1.
Y=p*q
… a kiedy zajdzie ~Y?
Przejście do logiki ujemnej poprzez negacje zmiennych i wymianę spójników:
~Y=~p+~q
Przykład:
A1.
Jutro pójdę do kina i do teatru
Y=K*T
co matematycznie oznacza:
Y=1 <=> K=1 i T=1
Dotrzymam słowa jeśli pójdę i do kina i do teatru
… a kiedy skłamię?
Przejście do logiki ujemnej poprzez negacje zmiennych i wymianę spójników:
~Y=~K+~T
A2.
Skłamię (~Y=1) wtedy i tylko wtedy gdy jutro nie pójdę do kina lub nie pójdę do teatru
~Y=~K+~T
co matematycznie oznacza:
~Y=1 <=> ~K=1 lub ~T=1
Związek logiki dodatniej i ujemnej:
Y = ~(~Y)
Podstawiając A1 i A2 mamy prawo De Morgana:
Y = K*T = ~(~K+~T)
B1.
Y=~p*q
… a kiedy zajdzie ~Y?
Przejście do logiki ujemnej poprzez negacje zmiennych i wymianę spójników:
~Y=p+~q
Przykład:
B1.
Jutro nie pójdę do kina i pójdę do teatru
Y=~K*T
co matematycznie oznacza:
Y=1 <=> ~K=1 i T=1
Dotrzymam słowa (Y=1) wtedy i tylko wtedy gdy jutro nie pójdę do kina (~K=1) i pójdę do teatru (T=1)
… a kiedy skłamię?
Przejście do logiki ujemnej poprzez negacje zmiennych i wymianę spójników:
~Y=K+~T
B2.
Skłamię (~Y=1) wtedy i tylko wtedy gdy jutro pójdę do kina (K=1) lub nie pójdę do teatru (~T=1)
~Y=K+~T
co matematycznie oznacza:
~Y=1 <=> K=1 lub ~T=1
Związek logiki dodatniej i ujemnej:
Y = ~(~Y)
Podstawiając B1 i B2 mamy prawo De Morgana:
Y = ~K*T = ~(K+~T)
C1.
Y=p*~q
… a kiedy zajdzie ~Y?
Przejście do logiki ujemnej poprzez negacje zmiennych i wymianę spójników:
~Y=~p+q
Przykład:
C1.
Jutro pójdę do kina i nie pójdę do teatru
Y=K*~T
co matematycznie oznacza:
Y=1 <=> K=1 i ~T=1
Dotrzymam słowa (Y=1) wtedy i tylko wtedy gdy jutro pójdę do kina (K=1) i nie pójdę do teatru (~T=1)
… a kiedy skłamię?
Przejście do logiki ujemnej poprzez negacje zmiennych i wymianę spójników:
~Y=~K+T
C2.
Skłamię (~Y=1) wtedy i tylko wtedy gdy jutro nie pójdę do kina (~K=1) lub pójdę do teatru (T=1)
~Y=~K+T
co matematycznie oznacza:
~Y=1 <=> ~K=1 lub T=1
Związek logiki dodatniej i ujemnej:
Y = ~(~Y)
Podstawiając C1 i C2 mamy prawo De Morgana:
Y = K*~T = ~(~K+T)
D1.
Y=~p*~q
… a kiedy zajdzie ~Y?
Przejście do logiki ujemnej poprzez negacje zmiennych i wymianę spójników:
~Y=p+q
Przykład:
D1.
Jutro nie pójdę do kina i nie pójdę do teatru
Y=~K*~T
co matematycznie oznacza:
Y=1 <=> ~K=1 i ~T=1
Dotrzymam słowa (Y=1) wtedy i tylko wtedy gdy jutro nie pójdę do kina (~K=1) i nie pójdę do teatru (~T=1)
… a kiedy skłamię?
Przejście do logiki ujemnej poprzez negacje zmiennych i wymianę spójników:
~Y=K+T
D2.
Skłamię (~Y=1) wtedy i tylko wtedy gdy jutro pójdę do kina (K=1) lub pójdę do teatru (T=1)
~Y=K+T
co matematycznie oznacza:
~Y=1 <=> K=1 lub T=1
Związek logiki dodatniej i ujemnej:
Y = ~(~Y)
Podstawiając D1 i D2 mamy prawo De Morgana:
Y = ~K*~T = ~(K+T)
Na mocy powyższego możemy sformułować symboliczną definicję operatora AND niezależną od jakichkolwiek tabel zero-jedynkowych.
Definicja symboliczna operatora AND:
Kod: |
Kiedy wystąpi Y?
(Y - dotrzymam słowa)
Funkcja w logice dodatniej bo Y
W: Y=p*q
A: p* q= Y
Kiedy wystąpi ~Y?
(~Y - skłamię)
Przejście do logiki ujemnej poprzez negację zmiennych i wymianę spójników
Funkcja w logice ujemnej bo ~Y
U:~Y=~p+~q
U:~Y=~p*~q+~p*q+p*~q
B: ~p*~q=~Yb
C: ~p* q=~Yc
D: p*~q=~Yd
|
Definicja symboliczna operatora AND:
Operator AND to złożenie spójnika „i”(*) w logice dodatniej (bo Y) ze spójnikiem „lub”(+) w logice ujemnej (bo ~Y):
Y=p*q - wyłącznie linia A
~Y = ~p+~q = ~p*~q + ~p*q + p*~q - wyłącznie linie B, C, D
W.
Y=p*q
co matematycznie oznacza:
Y=1 <=> p=1 i q=1
inaczej:
Y=0
Przejście do logiki przeciwnej poprzez negację zmiennych i wymianę spójników
U.
~Y=~p+~q
co matematycznie oznacza:
~Y=1 <=> ~p=1 lub ~q=1
inaczej:
~Y=0
Związek logiki dodatniej (bo Y) i ujemnej (bo ~Y):
Y = ~(~Y) - prawo podwójnego przeczenia
Podstawiając W i U mamy prawo De Morgana:
Y = p*q = ~(~p+~q)
W tabeli symbolicznej operatora AND zmienne wejściowe p i q mogą występować w dowolnych przeczeniach, nie ma to wpływu na tabelę zero-jedynkową operatora OR co pokazaliśmy wyżej. Funkcja wyjściowa Y musi pozostać dokładnie jak wyżej, nie wolno jej negować.
Dla punktu odniesienia ustawionym na zdaniu W otrzymamy zero-jedynkową definicję operatora AND.
W: Y=p*q
p=1, ~p=0
q=1, ~q=0
Y=1, ~Y=0
Zero-jedynkowa definicja operatora AND w logice dodatniej (bo Y)
Kod: |
Tabela 1
Definicja symboliczna AND|Definicja zero-jedynkowa spójnika „i”(*)
Punkt odniesienia Y=p*q |w logice dodatniej (bo Y)
p q Y=p*q | p q Y=p*q
-------------------------------------------------------------------
A: p* q = Y | 1* 1 =1
B:~p*~q =~Yb | 0* 0 =0
C:~p* q =~Yc | 0* 1 =0
D: p*~q =~Yd | 1* 0 =0
1 2 3 4 5 6
|
Przykładowe algorytmy tworzenia tabeli zero-jedynkowej ABCD456 z tabeli symbolicznej ABCD123 i odwrotnie.
Algorytm I
Najprostszy algorytm tworzenia tabeli zero-jedynkowej ABCD456 z tabeli symbolicznej ABCD123 to zastąpienie symboli w tabeli ABCD123 odpowiednimi zerami i jedynkami zgodnie z przyjętym punktem odniesienia, tu:
p=1, ~p=0
q=1, ~q=0
Y=1, ~Y=0
Wiersze w tabeli zero-jedynkowej łączymy spójnikiem „*”(*).
Algorytm odwrotny jest identyczny jak w algorytmie II
Algorytm II
Użyteczny algorytm tworzenia tabeli zero-jedynkowej ABCD456 z definicji symbolicznej ABCD123:
1.
Jeśli na danej pozycji występuje zgodność sygnału z nagłówkiem to zapisujemy 1
2.
Jeśli na danej pozycji występuje niezgodność sygnału z nagłówkiem to zapisujemy 0
3.
W wierszach tabeli zero-jedynkowej używamy spójnika „i”(*), zgodnie z nagłówkiem tabeli zero-jedynkowej.
Algorytm odwrotny jest oczywisty.
Algorytm tworzenia definicji symbolicznej ABCD123 na podstawie tabeli zero-jedynkowej ABCD456:
1.
Jeśli na danej pozycji występuje 1 to przepisujemy nagłówek tabeli
2.
Jeśli na danej pozycji występuje 0 to przepisujemy zanegowany nagłówek tabeli
3.
Zmienne wejściowe łączymy spójnikiem „i”(*)
Tabela ABCD456 to zero-jedynkowa definicja operatora AND.
Dla punktu odniesienia ustawionego na zdaniu U otrzymujemy zero-jedynkową definicję operatora OR w logice ujemnej (bo ~Y).
U: ~Y=~p+~q
~p=1, p=0
~q=1, q=0
~Y=1, Y=0
Zero-jedynkowa definicja operatora OR w logice ujemnej (bo ~Y)
Kod: |
Tabela 2
Definicja symboliczna AND |Definicja zero-jedynkowa spójnika „lub”(+)
Punkt odniesienia ~Y=~p+~q |w logice ujemnej (bo ~Y)
~p ~q ~Y=~p+~q |~p ~q ~Y=~p+~q
-------------------------------------------------------------------
A: p* q = Y | 0+ 0 =0
B:~p*~q =~Yb | 1+ 1 =1
C:~p* q =~Yc | 1+ 0 =1
D: p*~q =~Yd | 0+ 1 =1
1 2 3 4 5 6
|
Zauważmy, że definicja symboliczna operatora AND jest identyczna w tabeli 1 i tabeli 2 (obszar ABCD123).
Dla punktu odniesienia ustawionym na zdaniu w logice ujemnej (bo ~Y) otrzymujemy zero-jedynkową definicję operatora OR w logice ujemnej (bo ~Y). Algorytmy tworzenia tabeli zero-jedynkowej ABCD456 z tabeli symbolicznej ABCD123 i odwrotnie są tu identyczne jak w tabeli 1.
Przykład przedszkolaka
W.
Jutro pójdę do kina i do teatru
Y = K*T
... a kiedy skłamię?
Przejście do logiki ujemnej poprzez negację zmiennych i wymianę spójników
~Y=~K+~T
Skłamię (~Y=1) wtedy i tylko wtedy gdy jutro nie pójdę do kina (~K=1) lub nie pójdę do teatru (~T=1)
~Y=1 <=> ~K=1 lub ~T=1
Czytamy!
Prawdą jest (=1), że skłamię (~Y) wtedy i tylko wtedy gdy jutro nie pójdę do kina (~K=1) lub nie pójdę do teatru (~T=1)
Analiza równoważna:
Pełna definicja spójnika „lub”(+) w logice ujemnej (bo ~Y):
~Y = ~p+~q = ~p*~q + ~p*q + p*~q
Dla naszego zdania mamy:
W.
Jutro pójdę do kina i do teatru
Y=K*T - logika dodatnia (bo Y)
Dotrzymam słowa (Y=1) wtedy i tylko wtedy gdy:
A: K*T =1*1=1 - jutro pójdę do kina (K=1) i pójdę do teatru (T=10
... a kiedy skłamię?
Przejście ze zdaniem W do logiki ujemnej (bo ~Y)
U: ~Y=~K+~T
U: ~Y=~K*~T+~K*T+K*~T
Skłamię (~Y=1) wtedy i tylko wtedy gdy:
B: ~K*~T=1*1=1 - jutro nie pójdę do kina (~K=1) i nie pójdę do teatru (~T=1)
lub
C: ~K*T=1*1=1 - jutro nie pójdę do kina (~K=1) i pójdę do teatru (T=1)
lub
D: K*~T=1*1=1 - jutro pójdę do kina (K=1) i nie pójdę do teatru (~T=1)
4.4 Logika człowieka w spójnikach „lub”(+) i „i”(*)
Definicja naturalnej logiki człowieka w spójnikach „lub”(+) i „i”(*):
Naturalną logiką człowieka są postaci: alternatywna, koniunkcyjna, alternatywno-koniunkcyjna
Postać alternatywna:
Y = A1+A2+ … An
co matematycznie oznacza:
Y=1 <=> A1=1 lub A2=1 lub … An=1
Postać koniunkcyjna:
Y = A1*A2* … An
co matematycznie oznacza:
Y=1 <=> A1=1 i A2=1 i … An=1
Postać alternatywno-koniunkcyjna to suma logiczna iloczynów cząstkowych:
Y = p*q + p*~q + ~p*q
co matematycznie oznacza:
Y=1 <=> (p*q)=1 lub (p*~q)=1 lub (~p*q)=1
Aksjomat:
W naturalnej logice człowieka domyśla kolejność spójników to:
„i”(*), „lub”(+)
Definicja logiki sprzecznej z naturalną logiką człowieka w spójnikach „lub”(+) i „i”(*):
Logiką sprzeczną z naturalną logiką człowieka jest postać koniunkcyjno-alternatywna.
Postać koniunkcyjno-alternatywna to iloczyny logiczne sum cząstkowych:
Y = (p+q)*(r+~q)
co matematycznie oznacza:
Y=1 <=> (p+q)=1 i (r+~q)=1
Twierdzenie:
Przejście z postaci koniunkcyjno-alternatywnej do postaci alternatywno-koniunkcyjnej to po prostu wymnożenie wielomianów.
Przykład:
Y = (p+q)*(r+~q)
Y = p*r + p*~q + q*r + q*~q
Y = p*r + p*~q + q*r
Prawa algebry Boole’a:
q*~q=0
x+0 =x
Dowód sprzeczności poprzez znalezienie kontrprzykładu.
Rozważmy zdanie:
W.
Jutro pójdę do kina lub na basen i do parku
Y = K+B*P
co matematycznie oznacza:
Y=1 <=> K=1 lub (B*P)=1
Wystarczy że którykolwiek składnik sumy logicznej zostanie ustawiony na jeden i już dotrzymałem słowa, wartości logicznej drugiego składnika nie musimy sprawdzać.
… a kiedy skłamię?
Przechodzimy ze zdaniem W do logiki ujemnej poprzez negację zmiennych i wymianę spójników
U.
~Y = ~K*(~B+~P)
Mnożymy zmienną przez wielomian:
~Y = ~K*~B + ~K*~P
Ostatnie równanie to postać alternatywno-koniunkcyjną, naturalna logika człowieka.
Stąd:
U.
Skłamię (~Y=1) wtedy i tylko wtedy gdy jutro nie pójdę do kina i nie pójdę na basem lub nie pójdę do kina i nie pójdę do parku
~Y = ~K*~B + ~K*~P
co matematycznie oznacza:
~Y=1 <=> (~K*~B)=1 lub (~K*~P)=1
Wystarczy że którykolwiek składnik sumy logicznej zostanie ustawiony na jeden i już dotrzymałem słowa, drugiego składnika nie musimy sprawdzać.
Załóżmy że jest pojutrze i zaszło:
~Y = ~K*~B = 1*1 =1 - nie byłem w kinie (~K=1) i nie byłem na basenie (~B=1)
czyli:
Skłamałem (~Y=1), drugiego członu alternatywy nie muszę sprawdzać
Natomiast postać koniunkcyjno-alternatywna, mimo że prosta, dla normalnego człowieka będzie niezrozumiała.
U1.
~Y=~K*(~B+~P)
Dowód:
U2.
Skłamię (~Y=1) jeśli jutro nie pójdę do kina (~K=1) i nie pójdę na basen (~B=1) lub nie pójdę do parku (~P=1)
W naturalnej logice człowieka domyśla kolejność spójników to:
„i”(*), „lub”(+)
Każdy normalny człowiek słysząc zdanie U2 zrozumie i zapisze je jako:
~Y=~K*~B + ~P
Dostaliśmy zapis kompletnie inny niż w równaniu U1, co jest dowodem sprzeczności postaci koniunkcyjno-alternatywnej z naturalną logiką człowieka.
cnd
Nawet jak wstawimy tu nawiasy kwadratowe:
U2.
Skłamię (~Y=1) jeśli jutro nie pójdę do kina (~K=1) i [nie pójdę na basen lub nie pójdę do parku (~B+~P)=1]
~Y = ~K*[~B+~P]
… to i tak żaden normalny człowiek tego nie zrozumie, mimo że funkcja jest banalnie prosta.
Jeśli zdanie U2 przekształcimy do postaci U poprzez wymnożenie zmiennej przez wielomian to zrozumie je każdy 5-cio latek.
Rozważmy problem postaci alternatywno-koniunkcyjnej i koniunkcyjno-alternatywnej na przykładzie ogólnym, gdzie w tabeli zero-jedynkowej występuje więcej niż jedna linia z jedynkami w wyniku i więcej niż jedna linia z zerami w wyniku.
Zadanie:
Znaleźć wszystkie możliwe postaci funkcji logicznej:
A: Y=p+q*r
Krok 1
Wszystkie możliwe funkcje minimalne:
A: Y=p+q*r - postać alternatywno-koniunkcyjna w logice dodatniej (bo Y)
Przechodzimy do logiki ujemnej poprzez negację zmiennych i wymianę spójników
D: ~Y=~p*(~q+~r) - postać koniunkcyjno-alternatywna w logice ujemnej (bo ~Y)
Mnożąc zmienną ~p przez wielomian otrzymujemy:
C: ~Y = ~p*~q + ~p*~r - postać alternatywno-koniunkcyjna w logice ujemnej (bo ~Y)
Wyłącznie postaci alternatywno-koniunkcyjne są doskonale rozumiana przez każdego człowieka.
Z równaniem C przechodzimy z powrotem do logiki dodatniej otrzymując minimalną postać koniunkcyjno- alternatywną, oczywiście sprzeczną z logiką człowieka.
B: Y = (p+q)*(p+r)
Matematycznie zachodzą tożsamości w postaciach minimalnych:
Y = Y
A: Y = p+q*r = B: Y = (p+q)*(p+r)
~Y = ~Y
C: ~Y = ~p*~q + ~p*~r = D: ~Y = ~p*(~q+~r)
A i C to postaci alternatywno-koniunkcyjne.
B i D to postaci koniunkcyjno-alternatywne
Dowód sprzeczności równania B z naturalną logiką człowieka:
A.
Jutro pójdę do kina lub pójdę na basen i do parku
Y = K+B*P
To rozumie każdy 5-cio latek.
Zdanie matematycznie tożsame:
B.
Y = (K+B)*(K+P)
Wypowiedzmy zdanie B w naturalnej logice człowieka:
B1.
Jutro pójdę do kina lub pójdę na basen i pójdę do kina lub pójdę do parku
Kolejność spójników w naturalnej logice człowieka to:
„i”(*), „lub”(+)
Stąd każdy normalny człowiek zrozumie i zapisze zdanie jako:
B1: Y = K + B*K + P
Oczywiście funkcja logiczna B1 to zupełnie co innego niż funkcja B co jest dowodem sprzeczności postaci koniunkcyjnej z naturalną logiką człowieka
cnd
Podsumowując, postaci minimalne dla naszej funkcji logicznej A to:
A: Y = p+q*r - postać alternatywno-koniunkcyjna (naturalna logika człowieka)
B: Y = (p+q)*(p+r) - postać koniunkcyjno- alternatywna (funkcja sprzeczna z naturalną logiką człowieka)
Postaci minimalne dla naszej funkcji A w logice ujemnej (bo ~Y):
C: ~Y = ~p*~q + ~p*~r - postać alternatywno koniunkcyjna (naturalna logika człowieka)
D: ~Y = ~p*(~q+~r) - postać koniunkcyjno- alternatywna (funkcja sprzeczna z naturalną logiką człowieka)
Naturalna logika człowieka
Zbudujmy tabelę zero-jedynkową dla naszej funkcji logicznej w naturalnej logice człowieka:
A: Y = p+q*r
Kod: |
p q r q*r Y=p+q*r
A: 1 1 1 1 1 / Ya= p* q* r
B: 1 1 0 0 1 / Yb= p* q*~r
C: 1 0 1 0 1 / Yc= p*~q* r
D: 1 0 0 0 1 / Yd= p*~q*~r
E: 0 1 1 1 1 / Ye=~p* q* r
F: 0 1 0 0 0 /~Yf=~p* q*~r
G: 0 0 1 0 0 /~Yg=~p*~q* r
H: 0 0 0 0 0 /~Yh=~p*~q*~r
1 2 3 4 5
|
Algorytm tworzenia równań cząstkowych w naturalnej logice człowieka:
1.
Korzystając z praw Prosiaczka:
(p=0) = (~p=1)
(~p=0) = (p=1)
Dokładniej korzystamy z tego:
Jeśli p=0 to ~p=1
Sprowadzamy wszystkie zmienne do jedynek
2.
Funkcje cząstkowe w wierszach łączymy spójnikiem „i”(*), natomiast odpowiednie funkcje cząstkowe w pionach łączmy spójnikiem „lub”(+).
Naszą tabelę w naturalnej logice człowieka opisuje układ równań logicznych:
ABCDE123:
Y=Ya+Yb+Yc+Yd+Ye
Y = p*q*r + p*q*~r + p*~q*r + p*~q*~r + ~p*q*r
FGH123
~Y = ~Yf + ~Yg+~Yh
~Y = ~p*q*~r + ~p*~q*r + ~p*~q*~r
Twierdzenie Żabki:
Dla dowolnej funkcji logicznej, równanie logiczne z nagłówka tabeli zero-jedynkowej jest tożsame z układem równań poziomych opisujących wynikowe jedynki.
Dowód na przykładzie:
Nasze równanie z nagłówka tabeli zero-jedynkowej opisuje wyłącznie obszar ABCDE123.
A: Y=p+q*r
Dowód:
ABCDE123:
Y = p*q*r + p*q*~r + p*~q*r + p*~q*~r + ~p*q*r
Y=p*q*(r+~r) + p*~q(r+~r) + ~p*q*r
Y = p*q + p*~q + ~p*q*r
Y = p*(q+~q) + ~p*q*r
Y = p+~p*q*r
~Y = ~p*(p+~q+~r)
~Y = ~p*p+~p*~q + ~p*~r
C: ~Y = ~p*~q + ~p*~r
D: ~Y = ~p*(~q+~r)
Przejście z równaniem D do logiki przeciwnej:
A: Y = p+q*r
Przejście z równaniem C do logiki przeciwnej:
B: Y = (p+q)*(p+r)
cnd
Jak widzimy, wszystko nam się bombowo zgadza, równania A i B wyprowadziliśmy wcześniej nie potrzebując tabeli zero-jedynkowej.
Natomiast równania w logice ujemnej opisują wyłącznie obszar FGH123 w naszej tabeli zero-jedynkowej.
C: ~Y = ~p*~q + ~p*~r
D: ~Y=~p*(~q+~r)
Dowód:
FGH123:
~Y = ~p*q*~r + ~p*~q*r + ~p*~q*~r
~Y = ~p*q*~r + ~p*~q(r+~r)
~Y = ~p*q*~r + ~p*~q
~Y = ~p(q*~r+~q)
~Y = ~p*(z)
z=(q*~r) + ~q
~z = (~q+r)*q
~z = ~q*q + r*q
~z = r*q
~z = q*r
z = ~q + ~r
~Y = ~p*(z)
D: ~Y = ~p*(~q + ~r)
Po wymnożeniu zmiennej przez wielomian mamy:
C: ~Y = ~p*~q + ~p*~r
cnd
Tu również wszystko genialnie się zgadza, równania C i D wyprowadziliśmy wcześniej bez pomocy tabeli zero-jedynkowej.
Nasz przykład:
W.
Jutro pójdę do kina lub na basen i do parku
Y=K+B*P
Zauważmy, że w zdaniu tym mamy totalny brak determinizmu, nie mamy pojęcia jakie wartości logiczne przyjmą w tym zdaniu zmienne K, B i P w dniu jutrzejszym, dlatego są to zmienne logiczne a nie stałe symboliczne.
Definicje:
1.
Zmienna logiczna (binarna):
Zmienna logiczna to zmienna która w funkcji czasu może przyjmować dowolne wartości 0 albo 1
Przykłady: K, B, P
2.
Stała symboliczna:
Stała symboliczna to symboliczna nazwa konkretnej wartości logicznej znanej z góry która nigdy nie może być zmieniona.
Załóżmy, że jest pojutrze i znamy już wartości logiczne wszystkich zmiennych np.
K=0 - wczoraj nie byłem w kinie
B=0 - wczoraj nie byłem na basenie
P=1 - wczoraj byłem w parku
Czasu nie można cofnąć, zmienne K, B, i P z przedwczoraj przeszły w stałe symboliczne dzisiaj.
Niemożliwa jest jakakolwiek zmiana stałej symbolicznej.
Najprostsze rozstrzygnięcie czy wczoraj dotrzymałem słowa/skłamałem otrzymamy bezpośrednio ze zdania wypowiedzianego (nagłówek tabeli):
Y = K + B*P = 0 + 0*1 = 0+0 =0
Y=0 - skłamałem w logice dodatniej (bo Y)
Zauważmy że w świecie zdeterminowanym (pojutrze) zachodzi:
K=0, ~K=1
K=0 - fałszem jest (=0), że wczoraj byłem w kinie (K)
~K=1 - prawdą jest (=1), że wczoraj nie byłem w kinie (~K)
Doskonale widać, że powyższe zdania są tożsame (prawo Prosiaczka)
(K=0) = (~K=1)
etc
Zapis:
K=0, ~K=1
To skrócony zapis prawa Prosiaczka, który będzie standardem w tym podręczniku.
|
|
Powrót do góry |
|
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach
|
fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
|