|
Ś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: 35963
Przeczytał: 15 tematów
Skąd: z innego Wszechświata Płeć: Mężczyzna
|
Wysłany: Nie 12:56, 08 Wrz 2013 Temat postu: Algebra Kubusia - beta 4.0 z dn. 08-09-2013 |
|
|
… 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.
Największą tragedią Ziemian w logice matematycznej jest grzebanie się non-stop w tabelach zero-jedynkowych, podczas gdy cały świat w programowaniu komputerów już wieki temu uciekł do symbolicznej algebry Boole’a. W programowaniu komputerów człowiek myślał w zerach i jedynkach przez mgnienie oka, praktycznie natychmiast skopiował działanie własnego mózgu uciekając do języków symbolicznych, izolowanych od idiotycznych zer i jedynek. Fundamentem wszelkich języków wysokiego poziomu w programowaniu komputerów jest język asemblera, będący w swej istocie 100% symboliczną algebrą Boole’a, czyli algebrą Kubusia. Poza tym każdy człowiek, od 5-cio latka po profesora biegle posługuje się logiką dodatnią i ujemną w algebrze Boole’a, o czym Ziemianie nie mają bladego pojęcia.
Algebra Kubusia to matematyka pod którą podlega cały nasz Wszechświat, żywy i martwy, człowiek nie jest tu wyjątkiem. Fundamentem algebry Kubusia jest nowa teoria zbiorów. Z punktu widzenia dwuargumentowych operatorów logicznych teoria zbiorów to zaledwie dwa zbiory p i q we wszystkich możliwych wzajemnych położeniach z których wynikają zero-jedynkowe definicje znanych człowiekowi operatorów logicznych.
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.
W nowej teorii zbiorów znaczenie zer i jedynek wewnątrz operatorów logicznych jest inne niż w aktualnej logice matematycznej Ziemian zwanej Klasyczny Rachunek Zdań (KRZ). Żadne pojęcie i żadna definicja z KRZ nie pasuje do algebry Kubusia, wszystko mamy totalnie odwrotne. Z tego powodu praktycznie niemożliwa jest dyskusja na rzeczowe argumenty. Warunkiem koniecznym zrozumienia nowej teorii zbiorów i algebry Kubusia jest odłożenie na półkę wszelkiej wiedzy z logiki matematycznej uczonej w ziemskich szkołach i zaczęcie wszystkiego od zera.
Spis treści:
Część I
Fundamenty matematyczne
1.0 Notacja
1.1 Trzęsienie ziemi w logice
2.0 Matematyczne fundamenty algebry Kubusia
2.1 Pełna lista operatorów dwuargumentowych w algebrze Boole’a
2.2 Rachunek zero-jedynkowy
2.3 Prawa De Morgana
2.4 Związek rachunku zero-jedynkowego z naturalną logiką człowieka
2.5 Najważniejsze prawa algebry Boole’a
2.6 Prawa Prosiaczka
2.7 Wykresy czasowe w algebrze Kubusia
2.8 Tworzenie równań logicznych z tabel zero-jedynkowych
2.9 Definicja symboliczna operatora OR
2.10 Definicja symboliczna operatora AND
1.0 Notacja
Znaczenie 0 i 1 w matematycznych fundamentach algebry Kubusia:
1 - prawda
0 - fałsz
Zera i jedynki w nowej teorii zbiorów (NTZ) oznaczają:
1 - zbiór niepusty (zbiór istnieje)
0 - zbiór pusty (zbiór nie istnieje)
~ - symbol negacji
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
= - tożsamość
Zbiory:
p=q - zbiór p jest tożsamy ze zbiorem q
Prawami tożsamościowymi w logice matematycznej są prawa De Morgana:
Y = p+q = ~(~p*~q)
Y = p*q = ~(~p+~q)
Zbiory p+q i ~(~p*~q) to zbiory tożsame.
Zbiory p*q i ~(~p+q) to również zbiory tożsame.
Każda tożsamość to automatycznie równoważność.
Prawa De Morgana możemy zatem zapisać w formie równoważności:
p+q <=> ~(~p*~q)
p*q <=> ~(~p+~q)
# - różne
Zbiory:
p#q - zbiór p jest różny od zbioru q (zbiory rozłączne)
Definicja operatora OR w układzie równań logicznych:
A: Y=p+q
B: ~Y=~p*~q
Matematycznie zachodzi:
Y=p+q # ~Y=~p*~q
# - kolumny wynikowe w tabelach zero-jedynkowych są różne
Po obu stronach znaku # musimy mieć to samo p i q
Związek logiki dodatniej (bo Y) i ujemnej (bo ~Y):
Y = ~(~Y) - prawo podwójnego przeczenia
Podstawiając A i B mamy prawo De Morgana dla spójnika „lub”(+):
Y = p+q = ~(~p*~q)
Definicja operatora AND w układzie równań logicznych:
A: Y=p*q
B: ~Y=~p+~q
Matematycznie zachodzi:
Y=p*q # ~Y=~p+~q
# - kolumny wynikowe w tabelach zero-jedynkowych są różne
Po obu stronach znaku # musimy mieć to samo p i q
Związek logiki dodatniej (bo Y) i ujemnej (bo ~Y):
Y = ~(~Y) - prawo podwójnego przeczenia
Podstawiając A i B mamy prawo De Morgana dla spójnika „i”(*):
Y = p*q = ~(~p+~q)
## - różne na mocy definicji
Operator OR ## Operator AND
Y = p+q # ~Y=~p*~q ## Y=p*q # ~Y=~p+~q
Po obu stronach znaku ## możemy mieć dowolne p i q.
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)
Prawo przejścia do logiki przeciwnej:
Negujemy zmienne i wymieniamy spójniki na przeciwne
Przykład:
Y = p+q - logika dodatnia bo Y
Przejście do logiki przeciwnej poprzez negację zmiennych i wymianę spójników:
~Y = ~p*~q - logika ujemna bo ~Y
Zastosowanie:
Jeśli wiem kiedy dotrzymam słowa (Y=1) to automatycznie na mocy prawa przejścia do logiki przeciwnej wiem kiedy skłamię (~Y=1) i odwrotnie.
Mamy tu wynikanie w dwie strony, zatem zachodzi równoważność:
Y<=>~Y = (Y=>~Y)*(~Y=>Y)
Spełniona jest tu definicja dziedziny:
Y+~Y =1 - zdarzenie (zbiór) ~Y jest uzupełnieniem do dziedziny dla zdarzenia Y
Y*~Y=0 - zdarzenia Y i ~Y są rozłączne
Tej równoważności nie możemy zapisać w postaci tożsamości.
Tożsamość wynika tu z prawa podwójnego przeczenia:
Y = ~(~Y)
Y = Y
Oczywiście każda tożsamość to automatycznie równoważność:
Y<=>Y
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 ~~>
Definicja znaczka => (warunek wystarczający, gwarancja matematyczna):
=> - zbiór na podstawie wektora => musi zawierać się w zbiorze wskazywanym przez strzałkę wektora =>
Definicja znaczka ~> (warunek konieczny):
~> - zbiór na podstawie wektora ~> musi zawierać w sobie zbiór wskazywany przez strzałkę wektora ~>
Definicja implikacji prostej:
p=>q = ~p~>~q
p=>q
Zbiór p zawiera się w zbiorze q i nie jest tożsamy ze zbiorem q
Po obu stronach tożsamości p i q muszą być tymi samymi parametrami
Definicja implikacji odwrotnej:
p~>q = ~p=>~q
p~>q
Zbiór p zawiera w sobie zbiór q i nie jest tożsamy ze zbiorem q
Po obu stronach tożsamości p i q muszą być tymi samymi parametrami
Na mocy definicji zachodzi:
Implikacja prosta ## Implikacja odwrotna
p=>q = ~p~>~q ## p~>q = ~p=>~q
gdzie:
## - różne na mocy definicji
Po obu stronach znaku ## mamy do czynienia z dwoma niezależnymi układami logicznymi pomiędzy którymi nie zachodzą żadne związki tożsamościowe. Parametry p i q po obu stronach znaku ## mogą być absolutnie dowolne, w szczególności mogą być zamienione miejscami.
Definicje implikacji prostej i odwrotnej to jednocześnie prawa Kubusia.
Prawa Kubusia:
p=>q = ~p~>~q
p~>q = ~p=>~q
Definicja równoważności:
p<=>q = (p=>q)*(~p=>~q)
p=>q
Zbiór p zawiera się w zbiorze q i jest tożsamy ze zbiorem q
Tożsamość zbiorów p=q wymusza tożsamość zbiorów ~p=~q
W równoważności musi zachodzić definicja dziedziny:
p+~p =1 - zbiór ~p jest uzupełnieniem do dziedziny dla zbioru p
p*~p =0 - zbiory p i ~p są rozłączne
Uwaga:
Zbiory p i ~p musza być niepuste
Dowód:
Jest fizycznie niemożliwe abyśmy znając definicję p nie wiedzieli co to jest ~p
Przykład:
p = pies
~p = ~[pies] = [słoń, kura, wąż ..]
W równoważności zachodzą prawa kontrapozycji:
~p=>~q = q=>p
p=>q = ~q=>~p
Stąd mamy najpopularniejszą definicję równoważności:
p<=>q = (p=>q)*(q=>p)
1.1 Trzęsienie ziemi w logice
Każda rewolucja powinna zaczynać się od trzęsienia ziemi, czyli zniszczenia starego porządku, by na gruzach budować nowe.
Dowód wewnętrznej sprzeczności systemu logicznego zwanego Klasycznym Rachunkiem Zdań.
Twierdzenie o prawdziwości zdania p=>q:
Jeśli zajdzie p to na pewno => zajdzie q
p=>q
Zdanie p=>q jest prawdziwe wtedy i tylko wtedy gdy zbiór na podstawie wektora => zawiera się w zbiorze wskazywanym przez strzałkę wektora =>.
Stąd:
W przełożeniu na teorię zbiorów mamy:
p=>q = p*q =p
Wtedy i tylko wtedy zdanie p=>q jest prawdziwe.
Doskonale widać że zbiór ~p nie ma nic do prawdziwości zdania p=>q.
Dowód:
Zdanie p=>q wyrażone kwantyfikatorem dużym przybiera postać:
/\x p(x) => q(x)
Dla każdego elementu x, jeśli x należy do zbioru p(x) to na pewno => x należy do zbioru q(x).
Aby obalić to twierdzenie musimy znaleźć kontrprzykład.
Kontrprzykład to znalezienie jednego elementu należącego do zbioru p(x) i nie należącego do zbioru q(x).
Definicja kontrprzykładu w zbiorach:
p~~>~q =p*~q =1
gdzie:
~~> - wystarczy pokazać jeden element wspólny zbiorów p i ~q
Oczywiście to jest sprzeczne z definicją zdania p=>q wyrażonego kwantyfikatorem dużym, zatem nie mamy żadnych szans na znalezienie kontrprzykładu.
cnd
Powyższy dowód jest poprawny zarówno w KRZ jak i AK, bowiem zachodzi tożsamość matematyczna kwantyfikatorów dużych w obu tych systemach co za chwilę udowodnimy.
Dowód wewnętrznej sprzeczności KRZ:
Załóżmy, że zbiór p jest zbiorem pustym:
p=[]
Na podstawie twierdzenia o prawdziwości zdania p=>q mamy:
p=>q = p*q = []*q = []
Zauważmy, że w tym przypadku następnik jest kompletnie bez znaczenia. Takie zdanie jest fałszywe bo wynik iloczynu logicznego poprzednika i następnika w zbiorach jest zbiorem pustym, czyli całe zdanie jest fałszywe.
Twierdzenie o prawdziwości zdania p=>q jest dowodem wewnętrznej sprzeczności całego KRZ. Zauważmy bowiem, że jeśli w poprzedniku mamy zbiór pusty (p=[]) to zdanie p=>q jest fałszywe bez względu na zawartość następnika co jest w jawnej sprzeczności z tym, co twierdzi KRZ: „z fałszu wynika cokolwiek”
cnd
Dlaczego KRZ działa?
KRZ działa bo zachodzi tożsamość matematyczna kwantyfikatorów dużego i małego w AK i KRZ. Definicje kwantyfikatorów małych w obu systemach są identyczne, istotna różnica jest w kwantyfikatorze dużym.
Definicja kwantyfikatora dużego w AK i KRZ:
/\x p(x) => q(x)
Dla każdego elementu x, jeśli należy on do zbioru p(x) to na pewno => należy do zbioru q(x).
KRZ iteruje tu po wszystkich obiektach p(x) i ~p(x), natomiast w algebrze Kubusia iterujemy wyłącznie po obiektach p(x).
Twierdzenie o tożsamości kwantyfikatorów:
Kwantyfikator duży z KRZ = kwantyfikator duży w AK
Dowód:
Matematycznie kwantyfikator duży z AK jest tożsamy z kwantyfikatorem dużym z KRZ bowiem oba te kwantyfikatory wypluwają identyczne rozstrzygnięcia o prawdziwości/fałszywości zdania p=>q.
Zauważmy, że w KRZ, w dowodzie prawdziwości zdania p=>q możemy zignorować wszelkie zdania w których poprzednik jest fałszem (p=0), bowiem dla p=0 forma zdaniowa zwróci nam prawdę niezależnie od wartości logicznej następnika. Takie zdania możemy natychmiast wyrzucać do kosza bo nie mają one żadnego wpływu na prawdziwość/fałszywość zdania p=>q.
Jeśli z góry wiemy iż dla p=0 zawsze dostaniemy prawdę bez wzglądu na wartość logiczną następnika q, to bez sensu jest pytać formę zdaniową o prawdziwość/fałszywość takiego zdania.
Wniosek:
Zachodzi matematyczna tożsamość:
Kwantyfikator duży z KRZ = kwantyfikator duży w AK
cnd
Twierdzenie o matematycznym żółtodziobie:
Matematyk, który rozumie jak działa kwantyfikator duży w KRZ i mimo wszystko iteruje po obiektach ~p(x) w celu udowodnienia prawdziwości zdania p=>q jest matematycznym żółtodziobem.
Dowód wyżej.
Przykład:
Weźmy klasyczną implikację prostą prawdziwą.
A.
Jeśli liczba jest podzielna przez 8 to na pewno=> jest podzielna przez 2
P8=>P2
Zdanie tożsame zapisane kwantyfikatorowo:
/\x p(x)=>q(x)
Dla każdego x jeśli x należy do zbioru p(x) to na pewno =>x należy do zbioru q(x)
Nasz przykład:
/\x P8(x) =>P2(x)
Dla każdego x jeśli x należy do zbioru P8 to na pewno => x należy do zbioru P2
Aby obalić to twierdzenie z reguły szukamy kontrprzykładu, bo to najprostsze.
Definicja kontrprzykładu w zbiorach:
P8~~>~P2 =P8*~P2 =0
Szukamy jednej liczby należącej do zbioru P8 i nie należącej do zbioru P2
Oczywiście tu kontrprzykładu nie znajdziemy co oznacza, że zbiór P8 zawiera się w P2.
W ten sposób wyskoczyła nam poprawna definicja znaczka => w zbiorach:
=> - zbiór na podstawie wektora => musi zawierać się w zbiorze wskazywanym przez strzałkę wektora =>
Stąd mamy równanie prawdziwości zdania P8=>P2:
P8=>P2 = P8*P2 = P8
Zauważmy że liczby niepodzielne przez 8 (~P8 ) nie maja nic do prawdziwości zdania P8=>P2.
W definicji znaczka => istotne jest aby zbiór P8 zawierał się w zbiorze P2, wszystko inne jest bez znaczenia.
Stąd mamy kluczową definicję o prawdziwości zdania p=>q.
Zdanie p=>q jest prawdziwe wtedy i tylko wtedy gdy zachodzi poniższe równanie w zbiorach:
p=>q = p*q =p
Zbiór ~p nas kompletnie nie interesuje bo nie ma nic do prawdziwości zdania p=>q
2.0 Matematyczne fundamenty algebry Kubusia
Aksjomat to założenie które przyjmuje się bez dowodu.
Aksjomatyka algebry Kubusia to zero-jedynkowe definicje operatorów logicznych plus banalne zasady rachunku zero-jedynkowego. Symboliczna algebra Boole’a (algebra Kubusia) to zero-jedynkowe definicje operatorów logicznych zapisane w równaniach algebry Boole’a.
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
~ - symbol przeczenia NIE
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
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
2.1 Pełna lista operatorów dwuargumentowych w algebrze Boole’a
Definicja operatora logicznego w technicznej algebrze 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
|
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.
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.
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.
Definicja logiki w algebrze Kubusia = definicja algebry Kubusia:
Logika to przewidywanie przyszłości lub rozwiązywanie nieznanego np. nieznanej przeszłości.
Wbrew pozorom przeszłość może być nieznana np. poszukiwanie mordercy
Matematyka:
Logika to formułowanie i udowadnianie twierdzeń matematycznych
Maszynowa definicja operatora logicznego (algebra Boole’a):
Operator logiczny to odpowiedź układu na wszystkie możliwe kombinacje 0 i 1 na wejściach p i q
Symboliczna definicja operatora logicznego (algebra Kubusia):
Operator logiczny to odpowiedź układu na wszystkie możliwe przeczenia p i q
Prawo Sowy:
W świecie totalnie zdeterminowanym, gdzie znamy z góry wartości logiczne p i q, dowolny operator logiczny ulega redukcji do operatora AND.
Prawo Sowy wynika bezpośrednio z symbolicznej definicji operatora logicznego.
Definicje operatorów logicznych zapisane są dla świata totalnie niezdeterminowanego, gdzie nie znamy z góry wartości logicznej ani p, ani q. Wynika to bezpośrednio z symbolicznej definicji operatora i prawa Sowy.
2.2 Rachunek zero-jedynkowy
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. Dla potrzeb rachunku zero-jedynkowego w spójnikach „lub”(+) i „i”(*) konieczne i wystarczające są zero-jedynkowe prawa algebry Boole’a wynikłe bezpośrednio z definicji operatorów OR i AND. Wynika z tego, że 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.
Szczegółowe znaczenie zer i jedynek wewnątrz operatorów logicznych poznamy po zapoznaniu się z podstawowymi prawami algebry Boole’a. Znajomość tych praw jest niezbędna dla zrozumienia wewnętrznej budowy dowolnego operatora. Banalne zasady rachunku zero-jedynkowego w algebrze Boole’a najlepiej poznać na przykładach.
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
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, inaczej jest w symbolicznej algebrze Boole’a.
Definicja operatora logicznego OR w symbolicznej algebrze Boole’a:
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 dowolną tabelę zero-jedynkową, 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
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 symbolicznej algebrze Boole’a.
Definicja operatora logicznego AND w symbolicznej algebrze Boole’a:
Operator logiczny 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
2.3 Prawa De Morgana
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
A2: ~Y=~p*~q - funkcja logiczna w logice ujemnej (bo ~Y)
Związek logiki dodatniej i ujemnej:
Y = ~(~Y) - prawo podwójnego przeczenia
Podstawiając A1 i A2 mamy prawo De Morgana dla spójnika „lub”(+)”
Y = p+q = ~(~p*~q)
Dowodem formalnym w tabeli zero-jedynkowej jest tu tożsamość kolumn wynikowych ABCD3 i ABCD8
Twierdzenie:
Prawo De Morgana zachodzi wtedy i tylko wtedy, gdy zachodzi prawo przejścia do logiki przeciwnej, bowiem prawo De Morgana mówi o związku logiki dodatniej (bo Y) z logiką ujemną (bo ~Y):
Y = ~(~Y) - logika dodatnia Y to zanegowana logika ujemna ~Y
~Y = ~(Y) - logika ujemna ~Y to zanegowana logika dodatnia 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.
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)
Związek logiki dodatniej i ujemnej:
Y = ~(~Y) - prawo podwójnego przeczenia
Podstawiając B1 i B2 mamy prawo De Morgana dla spójnika „i”(*)”
Y = p*q = ~(~p+~q)
Dowodem formalnym w tabeli zero-jedynkowej jest tu tożsamość kolumn wynikowych ABCD3 i ABCD8
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):
Y = ~(~Y) - logika dodatnia Y to zanegowana logika ujemna ~Y
~Y = ~(Y) - logika ujemna ~Y to zanegowana logika dodatnia 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.
Prawo przejścia do logiki przeciwnej:
B1: Y=p*q
B2: ~Y=~p+~q
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, że nie zachodzą żadne tożsamości matematyczne pomiędzy tabelami 1 i 2 w postaci tożsamości kolumn wynikowych. Dokładnie to samo uzyskujemy w poniższym podsumowaniu algebry Kubusia w spójnikach „lub”(+) i „i”(*).
Algebra Kubusia:
Kod: |
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
Związek logiki dodatniej (bo Y) i ujemnej (bo ~Y) opisuje prawo podwójnego przeczenia :
Y=~(~Y)
Podstawiając A1 i A2 mamy prawo De Morgana dla spójnika „lub”(+):
Y = p+q = ~(~p*~q) - ok.
Podstawiając B1 i B2 mamy prawo De Morgana dla spójnika „i”(*):
Y = p*q = ~(~p+~q) - ok.
W algebrze Kubusia nie zachodzą ŻADNE związki między funkcjami logicznymi rozdzielonymi znakami ## (różne na mocy definicji), bo nie zachodzą prawa De Morgana.
Dowód:
Prawa De Morgana to związek logiki dodatniej i ujemnej
Y = ~(~Y)
W tabeli wyżej mamy tylko dwie możliwości krzyżowe wiążące obie strony znaku ##.
Podstawiając A1 i B2 mamy:
Y = p+q # ~(~p+~q) - prawo De Morgana nie zachodzi
Podstawiając B1 i A2 mamy:
Y = p*q # ~(~p*~q) - prawo De Morgana nie zachodzi
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
2.4 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 które wkrótce poznamy:
(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
Rozważmy 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 i ujemnej:
Y = ~(~Y)
Podstawiając A1 i A2 mamy prawo De Morgana dla spójnika „lub”(+):
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:
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?
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 dowolny człon po prawej stronie (np. q=1) i już dotrzymaliśmy słowa, stan drugiego członu spójnika „lub”(+) jest bez znaczenia.
Punktem odniesienia w zdaniu A3 jest logika dodatnia (bo Y) i sygnały K oraz T.
Wartościowania dla których zdanie A3 jest prawdziwe (dotrzymam słowa) są następujące:
A3: Y=K+T = ~(~K*~T)
A.
K=1, T=0
Y = K+T = ~(~K*~T) = 1+0 = ~[~(1)*~(0)] = ~[0*1] = ~[0] =1
B.
K=0, T=1
Y = K+T = ~(~K*~T) = 0+1 = ~[~(0)*~(1)] = ~[1*0] = ~[0] =1
C.
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):
D.
K=0, T=0
Y = K+T = ~(~K*~T) = 0+0 = ~[~(0)*~(0)] = ~[1*1] = ~[1] =0
Rozważmy 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:
A.
~K=1, ~T=0
~Y = ~K+~T = 1+0 =1
B.
~K=0, ~T=1
~Y = ~K+~T = 0+1 =1
C.
~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:
D.
~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 i ujemnej:
Y = ~(~Y)
Podstawiając B1 i B2 mamy prawo De Morgana dla spójnika „i”(*):
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:
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?
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 dowolny człon po prawej stronie (np. q=1) i już dotrzymaliśmy słowa, stan drugiego członu spójnika „lub”(+) jest bez znaczenia.
Punktem odniesienia w zdaniu B3 jest logika dodatnia (bo Y) i sygnały K oraz T.
Jedyne wartościowanie dla którego zdanie B3 będzie prawdziwe wynika z definicji spójnika „i”(*):
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:
A.
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.
B.
K=1, T=0
Y=K*T = ~(~K+~T) = 1*0 = ~[~(1) + ~(0)] = ~[0+1] =~[1] =0
C.
K=0, T=1
Y=K*T = ~(~K+~T) = 1*0 = ~[~(0) + ~(1)] = ~[1+0] =~[1] =0
D.
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.
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.
2.5 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.
Dowód w punkcie 2.8
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?
2.6 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
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:
Skłamię (Y=0) wtedy i tylko wtedy gdy jutro nie pójdę do kina (K=0)
Y=0 <=> K=0
Szczegółowo czytamy:
Fałszem jest (=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.7 Wykresy czasowe w algebrze Kubusia
Prawo Prosiaczka można ładnie przedstawić na wykresie czasowym:
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 mieliśmy sytuację gdzie o dotrzymaniu słowa/skłamaniu decydowała pewna chwila w skali nieskończonego czasu - jutro.
Wyobraźmy sobie teraz 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.
|
|
Powrót do góry |
|
|
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
rafal3006
Opiekun Forum Kubusia
Dołączył: 30 Kwi 2006
Posty: 35963
Przeczytał: 15 tematów
Skąd: z innego Wszechświata Płeć: Mężczyzna
|
Wysłany: Nie 12:57, 08 Wrz 2013 Temat postu: |
|
|
2.8 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.
2.9 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.7
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)
|
|
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
|