Forum ŚFiNiA Strona Główna Ś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.
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   GalerieGalerie   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Śmieci

 
Napisz nowy temat   Odpowiedz do tematu    Forum ŚFiNiA Strona Główna -> Metodologia / Forum Kubusia
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
rafal3006
Opiekun Forum Kubusia



Dołączył: 30 Kwi 2006
Posty: 23721
Przeczytał: 47 tematów

Skąd: z innego Wszechświata
Płeć: Mężczyzna

PostWysłany: Wto 14:49, 18 Lut 2020    Temat postu: Śmieci

Algebra Kubusia - matematyka języka potocznego
2020-04-01

Autor:
Kubuś ze 100-milowego lasu

Rozszyfrowali:
Rafal3006 i przyjaciele

Dziękuję wszystkim, którzy dyskutując z Rafałem3006 przyczynili się do odkrycia algebry Kubusia:
Wuj Zbój, Miki, Volrath, Macjan, Irbisol, Makaron czterojajeczny, Quebab, Windziarz, Fizyk, Idiota, Sogors, Fiklit, Yorgin, Pan Barycki, Zbigniewmiller, Mar3x, Wookie, Prosiak, Lucek, Andy72, Michał Dyszyński, Szaryobywatel i inni.
Kluczowi przyjaciele Kubusia, dzięki którym algebra Kubusia została rozszyfrowana to (cytuje w kolejności zaistnienia):
1.
Rafał3006
2.
Wuj Zbój - dzięki któremu Rafal3006 poznał istotę implikacji od strony czysto matematycznej.
3.
Fiklit - który poświęcił 8 lat życia na cierpliwe tłumaczenie Rafałowi3006 jak wygląda otaczający nas świat z punktu widzenia Klasycznego Rachunku Zdań
Bez fiklita o rozszyfrowaniu algebry Kubusia moglibyśmy wyłącznie pomarzyć
4.
Irbisol - znakomity tester końcowej wersji algebry Kubusia, za wszelką cenę usiłujący ją obalić.
Czyż można sobie wymarzyć lepszego testera?


Miejsce narodzin algebry Kubusia ze szczegółowo udokumentowaną historią jej odkrycia:
Algebra Kubusia - historia odkrycia 2006-2020





Wstęp
Najtrudniejsze są początki, czyli najtrudniejsza do zrozumienia jest zero-jedynkowa algebra Boole’a. Chodzi tu przed wszystkim o minimalizację złożonych funkcji logicznych, gdzie włącznie mnożenie wielomianów i przemienność argumentów w spójnikach „i”(*) i „lub”(+) są identyczne jak matematyce klasycznej. Jednak wymnożyć wielomian logiczny to jedno, a zminimalizować go to drugie.
Algebra Kubusia zawiera w sobie algebrę Boole’a, ale chodzi w niej przede wszystkim o spójniki „i”(*) i „lub”(+) z języka potocznego. W języku potocznym człowiek w naturalny sposób minimalizuje wszelkie funkcje logiczne do postaci minimalnych, zatem w obsłudze języka potocznego minimalizacja funkcji logicznych nie będzie nam potrzebna.
Dokładnie z tego powodu można pominąć algebrę Boole’a (punkt 1.0) nie tracąc zdolności zrozumienia najważniejszej, pozostałej części podręcznika.

W algebrze Kubusia wszelkie zdania którym da się przypisać wartość logiczną 1 (prawda) albo 0 (fałsz) przekładalne są na symboliczną logikę matematyczną (algebrę Kubusia) w przełożeniu 1:1, czyli jak mówimy tak matematycznie zapisujemy.
Co zmieni algebra Kubusia w myśleniu człowieka?
Nic nie zmieni, bo to jest tylko matematyczny opis języka potocznego człowieka - tylko tyle i aż tyle.
Logika matematyczna to przede wszystkim matematyczna obsługa zdań warunkowych „Jeśli p to q”, zdecydowanie ciekawsza i łatwiejsza niż klasyczna algebra Boole’a.


1. Elementarz algebry Boole’a
3.0 Kubusiowa teoria zbiorów
4.0 Rachunek zbiorów i zdarzeń
5.0 Operator równoważności |<=>
6.0 Operator implikacji prostej |=>
7.0 Operator implikacji odwrotnej |~>
8.0 Operator chaosu |~~>
9.0 Dowód poprawności Kubusiowej teorii zbiorów na gruncie KRZ

Spis treści
1.0 Algebra Boole’a 2
1.1 Zmienna binarna i stała binarna 2
1.2 Fundamenty algebry Boole’a 4
1.2.1 Wyrażenie logiczne i funkcja logiczna 5
1.2.2 Rodzaje funkcji logicznych 6
1.3 Prawa Prosiaczka 6
1.3.1 Dowody praw Prosiaczka w przykładach 6
1.4 Minimalna aksjomatyka algebry Boole’a 8
1.5 Algorytm Wuja Zbója 10
1.5.1 Alternatywne przejście do logiki przeciwnej 12
1.6 Definicja operatora OR(|+) 13
1.7 Definicja operatora AND(|*) 15



1.0 Algebra Boole’a

Algebra Kubusia to matematyczny opis języka potocznego, zatem tylko z tego punktu widzenia będziemy patrzeć na algebrę Boole’a.

Algebra Kubusia zawiera w sobie algebrę Boole’a mówiącą wyłącznie o spójnikach „i”(*) i „lub”(+) z języka potocznego człowieka.
Innymi słowy:
Algebra Boole’a w ogóle nie zajmuje się kluczową i najważniejszą częścią logiki matematycznej, czyli obsługą zdań warunkowych „Jeśli p to q”.

Definicja algebry Boole’a:
Algebra Boole’a to algebra dwuelementowa akceptująca zaledwie pięć znaczków:
0, 1, (~), (*), (+)
Algebra Boole’a to dwa wyróżnione elementy (zwykle [1,0]) o znaczeniu:
1 = prawda
0 = fałsz
oraz trzy spójniki logiczne zgodne z językiem potocznym:
(~) - negacja (zaprzeczenie), słówko „NIE” w języku potocznym
„i”(*) - spójnik „i”(*) w języku potocznym
„lub”(+) - spójnik „lub”(+) w języku potocznym

1.1 Zmienna binarna i stała binarna

Definicja zmiennej binarnej:
Zmienna binarna to symbol mogący w osi czasu przyjmować tylko i wyłącznie dwie wartości logiczne 1 i 0.

W programach komputerowych są to wszystkie zmienne jednobitowe na przykład wskaźnik przeniesienia CY.
Zdefiniujmy następującą operację dodawania dwóch liczb binarnych 8-bitowych:
A:=A+B - do liczby A dodaj liczbę B i zapisz wynik w A
Wskaźnik przeniesienia CY oznacza tu co następuje:
CY=1 - wystąpiło przepełnienie 8-bitowego rejestru A
CY=0 - przepełnienie nie wystąpiło

Zapiszmy sensowny program z wykorzystaniem zmiennej binarnej CY.

Program dodawania:
1: A:=A+B - wykonaj operację dodawania.
2: JP C,ET2 - jeśli CY=1 skocz do ET2, inaczej wykonaj rozkazy niżej
---------------
Co oznacz rozkaz 2?
Jeśli CY=1 (przepełnienie wystąpiło) to skocz do procedury ET2 obsługującej przepełnienie
Inaczej wykonaj ciąg instrukcji umieszczonych bezpośrednio pod rozkazem 2
Koniec najprostszego, sensownego programu.

Definicja stałej binarnej:
Stała binarna to symbol mający w osi czasu stałą wartość logiczną 1 albo 0.

Przykład:
Zdefiniujmy na początku programy symbol CY jako stałą binarną przypisując mu wartość logiczną 1.
CY=1
Stała binarna CY nie może być w żaden sposób zmieniona przez program, bo to jest z definicji stała binarna której program nie jest w stanie zmienić.
Oczywistym jest. że w tym momencie nasz „program dodawania” przestaje działać poprawnie bowiem przy absolutnie każdym wykonaniu rozkazu 2 wykonany zostanie skok do etykiety E2.

Wniosek 1.
Sensowny program komputerowy można napisać tylko i wyłącznie z użyciem zmiennych binarnych

Wniosek 2.
Żadna logia, w tym logika matematyczna, nie ma prawa działać na stałych binarnych, bo po prostu wtedy nie ma żadnej logiki matematycznej.

Przykład:
Pani w I klasie SP mówi:
Jutro pójdziemy do kina
Y=K
Dopóki nie minie cały jutrzejszy dzień zmienne binarna Y może przyjąć dwie wartości logiczne:
Y=1 - gdy pani dotrzyma jutro słowa
Y=0 - gdy pani nie dotrzyma słowa (=skłamie)
Załóżmy teraz, że jest pojutrze i dzieci nie były wczoraj w kinie (nieistotne z jakiego powodu - kwestię zwolnienia z danej obietnicy pomijamy).
Pojutrze przychodzi do klasy Jaś który wczoraj nie był w szkole bo był z mamą na badaniach lekarskich i pyta Zuzię:
Jaś:
Czy byliście wczoraj w kinie?
Zuzia:
Nie byliśmy.
Jaś:
To znaczy że nasza pani jest kłamczucha
Zuzia:
Tak

Doskonale tu widać, że logika matematyczna działa także w stosunku do zdeterminowanej przeszłości, ale wtedy i tylko wtedy, gdy tej przeszłości nie znamy.
Pani oczywiście nie ma najmniejszych szans by cofnąć czas i spowodować by jednak dzieci były wczoraj w kinie, co nie zmienia faktu, że logika matematyczna wśród osób które tego nie wiedzą dalej działa, czyli sensowne jest pytanie:
Czy dzieci wczoraj były w kinie?

Z chwilą gdy Jaś poznał prawdę jego ponowne pytanie:
Czy byliście wczoraj w kinie?
ma identyczny sens jak stwierdzenie:
Kopernik była kobietą.

Definicja logiki dodatniej i ujemnej:
Dowolny symbol binarny zapisany jest w logice dodatniej wtedy i tylko wtedy gdy nie jest zanegowany (bo p) inaczej jest symbolem binarnym w logice ujemnej (bo ~p)

W logice dodatniej i ujemnej mogą być zapisane zarówno zmienne binarne jak i stałe binarne.

Przykład:
Stała binarna „pies” zapisana jest w logice dodatniej (bo p) wtedy i tylko wtedy gdy nie jest zaprzeczona.
p = pies
Stała binarna „pies” zapisana jest w logice ujemnej (bo ~p) wtedy i tylko wtedy gdy jest zaprzeczona.
~p=nie pies

1.2 Fundamenty algebry Boole’a

Definicja przeczenia NIE (~) dla zer i jedynek
1=~0
0=~1

Prawo podwójnego przeczenia:
p=~(~p)
Gdzie:
p - zmienna binarna mogąca przyjmować wyłącznie dwie wartości logiczne [0,1]

Przykład:
Jestem uczciwy = nie jestem nie uczciwy
U = ~(~U)

Prawo podwójnego przeczenia dla zer i jedynek:
~(~1) =~(0) =1
~(~0)=~(1) =0

Definicja spójnika „i”(*) dla zer i jedynek:
p*q =1 <=> p=1 i q=1
Inaczej:
p*q =0
Tabela zero-jedynkowa z tej definicji wynikająca jest następująca:
Kod:

Definicja spójnika „i”(*) dla zer i jedynek:
p*q =1 <=> p=1 i q=1
Inaczej:
p*q =0
Tabela zero-jedynkowa z tej definicji wynikająca jest następująca:
   p  q  p*q
A: 1* 1  =1
B: 1* 0  =0
C: 0* 1  =0
D: 0* 0  =0


Definicja spójnika „lub”(+) dla zer i jedynek:
p+q =1 <=> p=1 lub q=1
Inaczej:
p+q =0
Tabela zero-jedynkowa z tej definicji wynikająca jest następująca:
Kod:

Definicja spójnika „i”(*) dla zer i jedynek:
p+q =1 <=> p=1 lub q=1
Inaczej:
p+q =0
Tabela zero-jedynkowa z tej definicji wynikająca jest następująca:
   p  q  p+q
A: 1+ 1  =1
B: 1+ 0  =1
C: 0+ 1  =1
D: 0+ 0  =0

Kolejność wykonywania działań:
nawiasy, ~, „i”(*), „lub”(+)

1.2.1 Wyrażenie logiczne i funkcja logiczna

Definicja wyrażenia logicznego w algebrze Boole’a:
Wyrażenie logiczne to dowolna ilość zmiennych binarnych połączonych spójnikami „i”(*) i „lub”(+)

Przykład:
p+q*(r+s)
Kolejność wykonywania działań w spójnikach „i”(*) i „lub”(+):
nawiasy, „i”(*), „lub”(+)

Pojęcia podstawowe:
Alternatywa = suma logiczna zmiennych binarnych
Koniunkcja = iloczyn logiczny zmiennych binarnych

Przykład:
p+q+r - alternatywa (suma logiczna)
p*q*s - koniunkcja (iloczyn logiczny)

Definicja funkcji logicznej w algebrze Boole’a:
Funkcja logiczna Y w algebrze Boole’a to funkcja logiczna zmiennych binarnych połączonych spójnikami „i”(*) i „lub”(+)

Przykład:
Y = p*q+~p*~q - funkcja logiczna dwóch zmiennych binarnych [p,q]

Zwyczajowo dla funkcji logicznej zarezerwowana jest w logice matematycznej duża litera Y.
Zwyczajowo w logice matematycznej zmienne binarne mają nazwy p, q, r
Powyższy standard obowiązuje w teorii logiki matematycznej, w praktyce zarówno funkcja logiczna jak i zmienne binarne mogą mieć dowolnie długie nazwy.

1.2.2 Rodzaje funkcji logicznych

Rozróżniamy cztery rodzaje funkcji logicznych:
1.
Y = p*q*s - to jest koniunkcja wielu zmiennych binarnych
2.
Y= p+q+s - to jest alternatywa wielu zmiennych binarnych
3.
Y = (p+q)*(r+s) - to jest funkcja koniunkcyjno-alternatywna (koniunkcja alternatyw)
4.
Y = p*q+r*s - to jest funkcja alternatywno-koniunkcyjna (alternatywa koniunkcji)


1.3 Prawa Prosiaczka

Prawa Prosiaczka wiążą zmienną binarną w logice dodatniej (bo p) ze zmienną binarną w logice ujemnej (bo ~p).
Prawa Prosiaczka możemy stosować wybiórczo w stosunku do dowolnej zmiennej binarnej.

I Prawo Prosiaczka:
Prawda (=1) w logice dodatniej (bo p) jest tożsama z fałszem (=0) w logice ujemnej (bo ~p)
(p=1) = (~p=0)
##
II Prawo Prosiaczka:
Prawda (=1) w logice ujemnej (bo ~p) jest tożsama z fałszem (=0) w logice dodatniej (bo p)
(~p=1) = (p=0)
Gdzie:
## - różne na mocy definicji

1.3.1 Dowody praw Prosiaczka w przykładach

Dowód 1
Rozważmy sterowanie żarówką jednym przyciskiem A
Kod:

Schemat 1
Przykład ilustracji praw Prosiaczka w fizyce:
             S               A
       -------------       ______
  -----|  Żarówka  |-------o    o-----
  |    -------------                 |
  |                                  |
______                               |
 ___    U (źródło napięcia)          |
  |                                  |
  |                                  |
  ------------------------------------

Przyjmijmy znaczenie symboli:
S - żarówka świeci
~S - żarówka nie świeci
Równie dobrze można by przyjąć odwrotnie, ale nie byłoby to zgodne z naturalną logiką człowieka, gdzie symbol przeczenia (~) oznacza w języku potocznym słówko „NIE”.

Dowód I prawa Prosiaczka na przykładzie:
S - żarówka świeci
Co matematycznie oznacza:
S=1 - prawdą jest (=1) że żarówka świeci (S)
Zdanie matematycznie tożsame na mocy prawa Prosiaczka:
(S=1)=(~S=0)
Czytamy:
~S=0 - fałszem jest (=0) że żarówka nie świeci (~S)
Prawdziwość I prawa Prosiaczka widać tu jak na dłoni:
(S=1) = (~S=0)

Dowód II prawa Prosiaczka na przykładzie:
~S - żarówka nie świeci
Co matematycznie oznacza:
~S=1 - prawdą jest (=1) że żarówka nie świeci (~S)
Zdanie matematycznie tożsame na mocy prawa Prosiaczka:
(~S=1)=(S=0)
Czytamy:
S=0 - fałszem jest (=0) że żarówka świeci (S)
Prawdziwość II prawa Prosiaczka widać tu jak na dłoni:
(~S=1) = (S=0)

Zauważmy, że prawa Prosiaczka wiążą ze sobą pojęcia prawdy i fałszu w języku potocznym.

Dowód 2

Dla zrozumienie praw Prosiaczka nie są potrzebne żadne definicje bo to jest matematyczny poziom 3-latka.

I Prawo Prosiaczka:
Prawda (=1) w logice dodatniej (bo p) jest tożsama z fałszem (=0) w logice ujemnej (bo ~p)
(p=1) = (~p=0)
##
II Prawo Prosiaczka:
Prawda (=1) w logice ujemnej (bo ~p) jest tożsama z fałszem (=0) w logice dodatniej (bo p)
(~p=1) = (p=0)
Gdzie:
## - różne na mocy definicji

Prawa Prosiaczka doskonale znają w praktyce wszyscy ludzie na ziemi, od 3-latka poczynając na prof. matematyki kończąc.

Tata i synek Jaś (lat 3) na spacerze w ZOO

Jaś pokazując paluszkiem słonia mówi:
A.
Popatrz tata, to jest słoń!
S=1
Matematycznie:
Prawdą jest (=1) że to jest słoń (S)

Tata:
… a może to nie jest słoń?
Jaś:
B.
Fałszem jest (=0) że to nie jest słoń (~S)
~S=0

Zdania A i B są matematycznie tożsame o czym wie każdy 3-latek, który genialnie posługuje się w praktyce prawami Prosiaczka.
I prawo Prosiaczka:
A: (S=1) = B: (~S=0)

Jaś pokazuje paluszkiem kozę i mówi:
C.
Popatrz tata, to nie jest słoń
~S=1
Matematycznie:
Prawdą jest (=1), że to nie jest słoń

Tata:
… a może to jednak słoń?
Jaś:
D.
Fałszem jest (=0) że to jest słoń
S=0
Zdania C i D są matematycznie tożsame o czym wie każdy 3-latek, który genialnie posługuje się w praktyce prawami Prosiaczka.
II prawo Prosiaczka
C: (~S=1) = D: (S=0)


1.4 Minimalna aksjomatyka algebry Boole’a

Definicja minimalnej aksjomatyki algebry Boole’a:
Aksjomatyka minimalna algebry Boole’a to minimalny zestaw praw algebry Boole’a koniecznych i wystarczających do poruszania się po równaniach algebry Boole’a.
Chodzi tu głównie o minimalizację równań algebry Boole’a, której w języku potocznym prawie nie ma bo nasz mózg to naturalny ekspert algebry Kubusia tzn. z reguły operuje na funkcjach minimalnych które nie wymagają zewnętrznej minimalizacji.

Wynika z tego, że tabele zero-jedynkowe w takiej aksjomatyce nas kompletnie nie interesują.
Jak zobaczymy za chwilę, minimalna aksjomatyka algebry Boole’a to zaledwie osiem punktów które trzeba znać na pamięć.

Znaczenie 1 i 0 w algebrze Boole’a:
1 = prawda
0 = fałsz
Znaczenie spójników „i”(*) i „lub”(+):
(*) - spójnik „i”(*) z języka potocznego człowieka
(+) - spójnik „lub”(+) z języka potocznego człowieka

Najważniejsze prawa algebry Boole’a (aksjomatyka minimalna) to:
1.
1=~(0)=~0 - prawda (1) to zaprzeczenie (~) fałszu
0=~(1)=~1 - fałsz (0) to zaprzeczenie (~) prawdy
2.
Elementem neutralnym w spójniku „i”(*) jest jedynka
p*1=p (łatwe do zapamiętania przez analogię do zwykłego mnożenia: x*1=x)
p+1=1 (to jedyny wyjątek nie mający odpowiednika w zwykłym dodawaniu)
3.
Elementem neutralnym w spójniku „lub”(+) jest zero
p*0=0 (łatwe do zapamiętania poprzez analogię do zwykłego mnożenia: x*0=0)
p+0=p (łatwe do zapamiętania poprzez analogię do zwykłego dodawania: x+0=0)
4.
Definicja dziedziny w zdarzeniach:
p+~p=1 - zdarzenie ~p jest uzupełnieniem do dziedziny (D=1) dla zdarzenia p
p*~p=0 - zdarzenia p i ~p są rozłączne (p*~p=[]=0), stąd ich iloczyn logiczny to 0
5.
Spójniki „i”(*) i „lub”(+) są przemienne
p*q=q*p
p+q=q+p
6.
Prawo redukcji/powielania zmiennych:
p*p=p
p+p=p
7.
Prawa De Morgana:
p+q = ~(~p*~q)
p*q = ~(~p+~q)
8.
Obsługa wielomianów logicznych jest identyczna jak wielomianów klasycznych pod warunkiem przyjęcia analogii:
Spójnik „lub”(+) to odpowiednik sumy klasycznej (+) np. x+y
Spójnik „i”(*) to odpowiednik iloczynu klasycznego (*) np. x*y
Stąd mamy kolejność wykonywania działań w wielomianach logicznych:
nawiasy, „i”(*), „lub”(+)
bo robimy analogię do wielomianów klasycznych.

Przykład mnożenia wielomianów logicznych:
Dane jest wyrażenie logiczne:
(p+~q)*(~p+q) - postać koniunkcyjno-alternatywna (koniunkcja alternatyw)
Minimalizujemy:
(p+~q)*(~p+q) = p*~p + p*q +~q*~p + ~q*q = 0 + p*q + ~q*~p + 0 = p*q + ~p*~q
Wykorzystane prawa algebry Boole’a:
p*~p=0
p+0 =p
Przemienność:
~q*~p = ~p*~q
Stąd:
Nasze wyrażenie po minimalizacji przybiera postać:
(p+~q)*(~p+q) = p*q + ~p*~q - funkcja alternatywno-koniunkcyjna (alternatywa koniunkcji)

Inny przykład wykorzystania praw algebry Boole’a.
Udowodnij prawo algebry Boole’a:
p + p*q =p
Dowód:
p + p*q = p*1+p*q = p*(1+q) = p*1 =p
Wykorzystane prawa algebry Boole’a:
p=p*1
Wyciągnięcie zmiennej p przed nawias identyczne jak w wielomianach klasycznych
1+q=1
p*1=p
cnd


1.5 Algorytm Wuja Zbója

Algorytm Wuja Zbója poznamy na przykładzie z życia wziętym, korzystając z definicji równoważności „wtedy i tylko wtedy” p<=>q wyrażonej spójnikami „i”(*) i „lub”(+) opisanej równaniem algebry Boole’a:
Y = p<=>q = p*q + ~p*~q
Co w logice matematycznej oznacza:
Y=1 <=> p=1 i q=1 lub ~p=1 i ~q=1

Przykład:
Pani w przedszkolu wypowiada obietnicę bezwarunkową:
1.
Jutro pójdziemy do kina wtedy i tylko wtedy gdy pójdziemy do teatru
K<=>T
Podstawmy celem skrócenia zapisów:
Y = K<=>T
Definicja równoważności w spójnikach „i”(*) i „lub”(+):
Y = K*T +~K*~T - funkcja alternatywno-koniunkcyjna (alternatywa koniunkcji)
co w logice matematycznej oznacza:
Y=1 <=> K=1 i T=1 lub ~K=1 i ~T=1
Przyjmijmy następujące znaczenie symbolu Y:
Y - pani dotrzyma słowa (Y)
~Y - pani nie dotrzyma słowa (~Y), czyli pani skłamie
Czytamy:
Prawdą jest (=1) że pani dotrzyma słowa (Y) wtedy i tylko wtedy gdy:
K*T=1*1 =1 - jutro pójdziemy do kina (K=1) i do teatru (T=1)
LUB
~K*~T=1*1=1 - jutro nie pójdziemy do kina (~K=1) i nie pójdziemy do teatru (~T=1)

W każdym innym przypadku, pani skłamie:
(~Y=1)=(Y=0) - prawo Prosiaczka
Dla każdego człowieka odpowiedź kiedy pani dotrzyma słowa (Y=1) jest intuicyjnie zrozumiała.

Prawo algebry Boole’a:
Każda funkcja alternatywno-koniunkcyjna ma swój tożsamy odpowiednik w postaci funkcji koniunkcyjno-alternatywnej

Dowód tego prawa na naszym przykładzie jest trywialny o ile skorzystamy z algorytmu przejścia do logiki przeciwnej autorstwa Wuja Zbója.

Przejdźmy z naszym przykładem na postać ogólną podstawiając:
K=p
T=q
Stąd mamy:
1.
Y = p*q + ~p*~q
W technicznej algebrze Boole’a często pomija się spójnik „i”(*) traktując go jako spójnik domyślny.
Stąd mamy funkcję matematycznie tożsamą:
1.
Y = pq+~p~q

Algorytm Wuja Zbója przejścia do logiki przeciwnej:
1.
Uzupełniamy brakujące nawiasy i spójniki:
Y = (p*q)+(~p*~q) - postać alternatywno-koniunkcyjna (alternatywa koniunkcji)
2.
Przejście do logiki ujemnej (bo ~Y) poprzez negację zmiennych i wymianę spójników
~Y = (~p+~q)*(p+q) - postać koniunkcyjno-alternatywna (koniunkcja alternatyw)
Koniec algorytmu Wuja Zbója

Zauważmy że:
Jeśli wymnożymy wielomian 2 to otrzymamy tożsamą do niego postać alternatywno-koniunkcyjną.
Zróbmy to:
~Y = (~p+~q)*(p+q) = ~p*p + ~p*q + ~q*p + ~q*q = 0 + ~p*q + p*~q + 0 = p*~q + ~p*q
3.
~Y = p*~q + ~p*q - postać alternatywno-koniunkcyjna (alternatywa koniunkcji)

Dla funkcji logicznej 3 ponownie korzystamy z algorytmu Wuja przechodząc do logiki dodatniej:
Mamy:
3.
~Y = (p*~q) + (~p*q)
Przejście do logiki dodatniej (bo Y) poprzez negację zmiennych i wymianę spójników:
4.
Y = (~p+q)*(p+~q) - funkcja koniunkcyjno-alternatywna (koniunkcja alternatyw)

Oczywistym jest, że zachodzą matematyczne tożsamości:
Y - pani dotrzyma słowa:
1: Y = p*q + ~p*~q [=] 4: Y=(p+~q)*(~p+q)
oraz:
~Y - pani skłamie
3: ~Y = p*~q + ~p*q [=] 2: ~Y = (~p+~q)*(p+q)
W tak bajecznie prosty sposób udowodniliśmy nasze twierdzenie logiki matematycznej.

Zauważmy, że odpowiedź kiedy pani skłamie (~Y) zapisana w formie funkcji alternatywno-koniunkcyjnej również jest intuicyjnie zrozumiała dla każdego ucznia I klasy LO.

Nasz przykład:
3.
~Y=K*~T + ~K*T
co matematycznie oznacza:
~Y=1 <=> K=1 i ~T=1 lub ~K=1 i T=1
Czytamy:
Prawdą jest (=1), że pani skłamie (~Y) wtedy i tylko wtedy gdy:
K*~T=1*1=1 - jutro pójdziemy do kina (K=1) i nie pójdziemy do teatru (~T=1)
LUB
~K*T =1*1 =1 - jutro nie pójdziemy do kina (~K=1) i pójdziemy do teatru (T=1)

Zauważmy że, żadna z funkcji koniunkcyjno-alternatywnych nie jest zrozumiała dla człowieka.
Weźmy przykładowo odpowiedź na pytanie „kiedy pani dotrzyma słowa” (Y=1) opisaną równaniem koniunkcyjno-alternatywnym 4.
Nasz przykład:
4.
Y = (K+~T)*(~K+T) - postać koniunkcyjno-alternatywna
Czytamy:
Pani dotrzyma słowa (Y) wtedy i tylko wtedy gdy:
(K+~T) - jutro pójdziemy do kina (K) lub nie pójdziemy do teatru (~T)
„i”(*)
(~K+T) - jutro nie pójdziemy do kina (~K) lub pójdziemy do teatru (T)

Jak widzimy stało się coś strasznego!
Powyższe zdanie to twardy dowód iż w języku potocznym postaci koniunkcyjno-alternatywnej żaden człowiek nie rozumie.

1.5.1 Alternatywne przejście do logiki przeciwnej

Mamy naszą funkcję logiczną w postaci alternatywno-koniunkcyjnej:
1.
Y = (p*q) + (~p*~q)
W logice matematycznej dowolną funkcję logiczną możemy dwustronnie zanegować:
~Y = ~((p*q)+(~p*~q))
Korzystamy z prawa De Morgana dla nawiasu zewnętrznego otrzymując:
~Y = ~(p*q) * ~(~p*~q)
Ponownie korzystamy z prawa De Morgana dla pozostałych nawiasów:
~Y = (~p+~q)*(p+q)
To co wyżej to przejście do logiki ujemnej (bo ~Y) „na piechotę” z wykorzystaniem praw De Morgana.
To „na piechotę” przy długich funkcjach logicznych będzie koszmarem trudnym do ogarnięcia.
Natomiast algorytm przejścia do logiki przeciwnej Wuja Zbója jest trywialny dla dowolnie długiej funkcji logicznej Y
Doskonale widać, że algorytm Wuja Zbója jest odpowiednikiem wzorów skróconego mnożenia znanych z wielomianów klasycznych.

Trudne (tzn. do pominięcia w czytaniu):
Zminimalizujmy teraz funkcję logiczną podaną w zadaniu na matematyce.pl
[link widoczny dla zalogowanych]

Zadanie:
Zminimalizuj poniższe wyrażenie logiczne:
(q=>r*p)+~r

W poniższej minimalizacji korzystamy z definicji znaczka =>:
p=>q = ~p+q

Rozwiązanie:
Zapiszmy nasze wyrażenie w postaci funkcji logicznej Y:
Y = (q=>r*p) + ~r = ~q+r*p + ~r
Uzupełniamy brakujące nawiasy bo kolejność wykonywania działań w logice to:
nawiasy, “i”(*), “lub”(+)
stąd mamy:
Y = ~q+(r*p)+~r
Zdefiniujmy funkcję cząstkową Y1:
Y1=(r*p)+~r
Przejście do logiki ujemnej (bo ~Y1) poprzez negację zmiennych i wymianę spójników na przeciwne:
~Y1 = (~r+~p)*r
Po wymnożeniu wielomianu logicznego mamy:
~Y1 = ~r*r + ~p*r = ~p*r
~Y1=r*~p
Powrót do logiki dodatniej (bo Y1) poprzez negację zmiennych i wymianę spójników na przeciwne:
Y1=~r+p
Odtwarzając podstawienie mamy:
Y = ~q+~r+p
Stąd w zapisie p=>q mamy:
Y = q=>(~r+p)
Stąd mamy tożsamość matematyczną:
Y = (q=>r*p)+~r = q=>(~r+p)
cnd


1.6 Definicja operatora OR(|+)

Operator OR(|+) odpowiada na pytania:
1.
Co może się wydarzyć jeśli zajdzie Y?
Y=p+q
co w logice jedynek oznacza:
Y=1 <=> p=1 lub q=1
2.
Co może się wydarzyć jeśli zajdzie ~Y?
Przejście z 1 do logiki przeciwnej poprzez negację zmiennych i wymianę spójników
~Y=~p*~q
co w logice jedynek oznacza:
~Y=1 <=> ~p=1 i ~q=1

Zauważmy że matematycznie zachodzi:
Operator OR(|+) ## Y=p+q # ~Y=~p*~q
Gdzie:
## - różne na mocy definicji (stąd do logiki matematycznej musimy wprowadzić znaczek „|+”)
# - różne w znaczeniu iż jedna strona jest negacją drugiej strony

Spójnik „i”(*) zawsze opisuje jedno, jedyne zdarzenie które może zajść:
~Y=~p*~q

Natomiast w spójniku „lub”(+):
1: Y=p+q
wszystkie możliwe rozłączne zdarzenia cząstkowe jakie mogą zajść to (wszystkie z wyjątkiem ~p*~q):
1’: Y = A: p*q+ B: p*~q+ C: ~p*q
co w logice jedynek oznacza:
Y=1 <=> A: p=1 i q=1 lub B: p=1 i ~q=1 lub C: ~p=1 i q=1

Stąd mamy serię zdarzeń cząstkowych Yx wchodzących w skład spójnika „lub”(+):
Ya=p*q
lub
Yb=p*~q
lub
Yc=~p*q

Pozostaje nam udowodnić czy zachodzi tożsamość funkcji logicznych 1=1’:
1’
Y=p*q+p*~q+~p*q
Minimalizujemy:
Y = p*(q+~q) + ~p*q
Y=p+(~p*q)
Przejście do logiki ujemnej (bo ~Y) poprzez negację zmiennych i wymianę spójników:
~Y=~p*(p+~q)
~Y=~p*p+~p*~q
~Y=~p*~q
Powrót do logiki dodatniej poprzez negację zmiennych i wymianę spójników:
Y = p+q
cnd

Stąd mamy rozszerzoną definicję spójnika „lub”(+) definiującą trzy zdarzenia rozłączne A,B,C:
p+q = A: p*q+ B: p*~q+ C: ~p*q
Dowód iż zdarzenia A, B i C są rozłączne:
Iloczyn logiczny każdego zdarzenia z każdym jest równy 0.
A*B = (p*q)*(p*~q) =0
A*C= (p*q)*(~p*q) =0
B*C = (p*~q)*(~p*q) =0
cnd

Uwaga:
Warto zapamiętać rozszerzoną definicję spójnika „lub”(+) bowiem w praktyce jest ona często wykorzystywana:
p+q = A: p*q+ B: p*~q+ C: ~p*q

Przykład z przedszkola.
Pani:
Jutro pójdziemy do kina lub do teatru
Y=K+T
co w logice jedynek oznacza:
Y=1 <=> K=1 lub T=1
Przyjmujemy standard zgodny z językiem potocznym człowieka:
Y=1 - pani dotrzyma słowa (Y)
~Y=1 - pani NIE(~) dotrzyma słowa (=pani skłamie)

Operator OR(|+) odpowiada na dwa pytania:

1.
Kiedy pani dotrzyma słowa?

1.
Pani dotrzyma słowa (Y=1) wtedy i tylko wtedy gdy jutro pójdziemy do kina lub pójdziemy do teatru
Y=K+T
co w logice jedynek oznacza:
Y=1 <=> K=1 lub T=1

Uwaga:
Jeśli chcemy znać szczegółowo trzy zdarzenia rozłączne jakie jutro mogą wystąpić to korzystamy z rozszerzonej definicji spójnika „lub”(+)
p+q = p*q + p*~q + ~p*q
Nasz przykład:
Y= A: K*T + B: K*~T + C: ~K*T
Co w logice jedynek oznacza:
Y=1 <=> A: K=1 i T=1 lub B: K=1 i ~T=1 lub C: ~K=1 i T=1

Stąd mamy rozszerzoną odpowiedź kiedy jutro pani dotrzyma słowa (Y=1):
Pani dotrzyma słowa (Y=1) wtedy i tylko wtedy gdy:
Ya = K*T=1*1 =1 - jutro pójdziemy do kina (K=1) i do teatru (T=1)
lub
Yb=K*~T=1*1 =1 - jutro pójdziemy do kina (K=1) i nie pójdziemy do teatru (~T=1)
lub
Yc=~K*T =1*1 =1 - jutro nie pójdziemy do kina (~K=1) i pójdziemy do teatru (T=1)

2.
Kiedy pani skłamie (~Y=1)?


Przejście z równaniem 1 do logiki ujemnej (bo ~Y) poprzez negację zmiennych i wymianę spójników:
~Y=~K*~T
co w logice jedynek oznacza:
~Y=1 <=> ~K=1 i ~T=1

Czytamy:
Pani skłamie (~Y=1) wtedy i tylko wtedy gdy:
~Y=~K*~T=1*1 =1 - jutro nie pójdziemy do kina (~K=1) i nie pójdziemy do teatru (~T=1)


1.7 Definicja operatora AND(|*)

Operator AND(|*) odpowiada na pytania:
1.
Co może się wydarzyć jeśli zajdzie Y?
Y=p*q
co w logice jedynek oznacza:
Y=1 <=> p=1 i q=1
2.
Co może się wydarzyć jeśli zajdzie ~Y?
Przejście z 1 do logiki przeciwnej poprzez negację zmiennych i wymianę spójników
~Y=~p+~q
co w logice jedynek oznacza:
~Y=1 <=> ~p=1 lub ~q=1

Zauważmy że matematycznie zachodzi:
Operator AND(|*) ## Y=p*q # ~Y=~p+~q
Gdzie:
## - różne na mocy definicji (stąd do logiki matematycznej musimy wprowadzić znaczek „|*”)
# - różne w znaczeniu iż jedna strona jest negacją drugiej strony

Spójnik „i”(*) zawsze opisuje jedno, jedyne zdarzenie które może zajść:
Y=p*q

Natomiast w spójniku „lub”(+) w swojej rozszerzonej wersji opisuje trzy rozłączne zdarzenia:
p+q = A: p*q + B: p*~q + C: ~p*q
Obliczenie zdarzeń rozłącznych dla ~p i ~q polega na negacji wszystkich zmiennych w definicji wyżej:
~p+~q = A: ~p*~q + B: ~p*q + C: p*~q
cnd

Stąd mamy serię zdarzeń cząstkowych ~Yx wchodzących w skład spójnika „lub”(+):
~Ya=~p*~q
lub
~Yb=~p*q
lub
~Yc=p*~q

Przykład z przedszkola.
Pani:
Jutro pójdziemy do kina i do teatru
Y=K*T
co w logice jedynek oznacza:
Y=1 <=> K=1 i T=1
Przyjmujemy standard zgodny z językiem potocznym człowieka:
Y=1 - pani dotrzyma słowa (Y)
~Y=1 - pani NIE(~) dotrzyma słowa (=pani skłamie)

Operator AND(|*) odpowiada na dwa pytania:

1.
Kiedy pani dotrzyma słowa?

1.
Pani dotrzyma słowa (Y=1) wtedy i tylko wtedy gdy jutro pójdziemy do kina i pójdziemy do teatru
Y=K*T
co w logice jedynek oznacza:
Y=1 <=> K=1 i T=1

2.
Kiedy pani skłamie (~Y=1)?


Przejście z równaniem 1 do logiki ujemnej (bo ~Y) poprzez negację zmiennych i wymianę spójników:
~Y=~K+~T
co w logice jedynek oznacza:
~Y=1 <=> ~K=1 lub ~T=1

Czytamy:
Pani skłamie (~Y=1) wtedy i tylko wtedy gdy jutro nie pójdziemy do kina (~K=1) lub nie pójdziemy do teatru (~T=1)
~Y=~K+~T
co w logice jedynek oznacza:
~Y=1 <=> ~K=1 lub ~T=1

Uwaga:
Jeśli chcemy znać szczegółowo trzy zdarzenia rozłączne jakie jutro mogą wystąpić to korzystamy z rozszerzonej definicji spójnika „lub”(+)
p+q = p*q + p*~q + ~p*q
Nasz przykład dla ~K i ~T (w powyższej definicji negujemy wszędzie zmienne p i q):
Y= A: ~K*~T + B: ~K*T + C: K*~T
Co w logice jedynek oznacza:
~Y=1 <=> A: ~K=1 i ~T=1 lub B: ~K=1 i T=1 lub C: K=1 i ~T=1

Stąd mamy rozszerzoną odpowiedź kiedy jutro pani NIE dotrzyma słowa (~Y=1) (skłamie):
Pani skłamie (~Y=1) wtedy i tylko wtedy gdy:
~Ya = ~K*~T=1*1 =1 - jutro nie pójdziemy do kina (~K=1) i nie pójdziemy do teatru (~T=1)
lub
~Yb=~K*T=1*1 =1 - jutro nie pójdziemy do kina (~K=1) i pójdziemy do teatru (T=1)
lub
~Yc=K*~T =1*1 =1 - jutro pójdziemy do kina (K=1) i nie pójdziemy do teatru (~T=1)

************************************************


Zauważmy, że prawa Prosiaczka wiążą ze sobą pojęcia prawdy i fałszu w języku potocznym.

Dowód 2

Dla zrozumienie praw Prosiaczka nie są potrzebne żadne definicje bo to jest matematyczny poziom 3-latka.

I Prawo Prosiaczka:
Prawda (=1) w logice dodatniej (bo p) jest tożsama z fałszem (=0) w logice ujemnej (bo ~p)
(p=1) = (~p=0)
##
II Prawo Prosiaczka:
Prawda (=1) w logice ujemnej (bo ~p) jest tożsama z fałszem (=0) w logice dodatniej (bo p)
(~p=1) = (p=0)
Gdzie:
## - różne na mocy definicji

Prawa Prosiaczka doskonale znają w praktyce wszyscy ludzie na ziemi, od 3-latka poczynając na prof. matematyki kończąc.

Tata i synek Jaś (lat 3) na spacerze w ZOO

Jaś pokazując paluszkiem słonia mówi:
A.
Popatrz tata, to jest słoń!
S=1
Matematycznie:
Prawdą jest (=1) że to jest słoń (S)

Tata:
… a może to nie jest słoń?
Jaś:
B.
Fałszem jest (=0) że to nie jest słoń (~S)
~S=0

Zdania A i B są matematycznie tożsame o czym wie każdy 3-latek, który genialnie posługuje się w praktyce prawami Prosiaczka.
I prawo Prosiaczka:
A: (S=1) = B: (~S=0)

Jaś pokazuje paluszkiem kozę i mówi:
C.
Popatrz tata, to nie jest słoń
~S=1
Matematycznie:
Prawdą jest (=1), że to nie jest słoń

Tata:
… a może to jednak słoń?
Jaś:
D.
Fałszem jest (=0) że to jest słoń
S=0
Zdania C i D są matematycznie tożsame o czym wie każdy 3-latek, który genialnie posługuje się w praktyce prawami Prosiaczka.
II prawo Prosiaczka
C: (~S=1) = D: (S=0)


1.4 Minimalna aksjomatyka algebry Boole’a

Definicja minimalnej aksjomatyki algebry Boole’a:
Aksjomatyka minimalna algebry Boole’a to minimalny zestaw praw algebry Boole’a koniecznych i wystarczających do poruszania się po równaniach algebry Boole’a.
Chodzi tu głównie o minimalizację równań algebry Boole’a, której w języku potocznym prawie nie ma bo nasz mózg to naturalny ekspert algebry Kubusia tzn. z reguły operuje na funkcjach minimalnych które nie wymagają zewnętrznej minimalizacji.

Wynika z tego, że tabele zero-jedynkowe w takiej aksjomatyce nas kompletnie nie interesują.
Jak zobaczymy za chwilę, minimalna aksjomatyka algebry Boole’a to zaledwie osiem punktów które trzeba znać na pamięć.

Znaczenie 1 i 0 w algebrze Boole’a:
1 = prawda
0 = fałsz
Znaczenie spójników „i”(*) i „lub”(+):
(*) - spójnik „i”(*) z języka potocznego człowieka
(+) - spójnik „lub”(+) z języka potocznego człowieka

Najważniejsze prawa algebry Boole’a (aksjomatyka minimalna) to:
1.
1=~(0)=~0 - prawda (1) to zaprzeczenie (~) fałszu
0=~(1)=~1 - fałsz (0) to zaprzeczenie (~) prawdy
2.
Elementem neutralnym w spójniku „i”(*) jest jedynka
p*1=p (łatwe do zapamiętania przez analogię do zwykłego mnożenia: x*1=x)
p+1=1 (to jedyny wyjątek nie mający odpowiednika w zwykłym dodawaniu)
3.
Elementem neutralnym w spójniku „lub”(+) jest zero
p*0=0 (łatwe do zapamiętania poprzez analogię do zwykłego mnożenia: x*0=0)
p+0=p (łatwe do zapamiętania poprzez analogię do zwykłego dodawania: x+0=0)
4.
Definicja dziedziny w zdarzeniach:
p+~p=1 - zdarzenie ~p jest uzupełnieniem do dziedziny (D=1) dla zdarzenia p
p*~p=0 - zdarzenia p i ~p są rozłączne (p*~p=[]=0), stąd ich iloczyn logiczny to 0
5.
Spójniki „i”(*) i „lub”(+) są przemienne
p*q=q*p
p+q=q+p
6.
Prawo redukcji/powielania zmiennych:
p*p=p
p+p=p
7.
Prawa De Morgana:
p+q = ~(~p*~q)
p*q = ~(~p+~q)
8.
Obsługa wielomianów logicznych jest identyczna jak wielomianów klasycznych pod warunkiem przyjęcia analogii:
Spójnik „lub”(+) to odpowiednik sumy klasycznej (+) np. x+y
Spójnik „i”(*) to odpowiednik iloczynu klasycznego (*) np. x*y
Stąd mamy kolejność wykonywania działań w wielomianach logicznych:
nawiasy, „i”(*), „lub”(+)
bo robimy analogię do wielomianów klasycznych.

Przykład mnożenia wielomianów logicznych:
Dane jest wyrażenie logiczne:
(p+~q)*(~p+q) - postać koniunkcyjno-alternatywna (koniunkcja alternatyw)
Minimalizujemy:
(p+~q)*(~p+q) = p*~p + p*q +~q*~p + ~q*q = 0 + p*q + ~q*~p + 0 = p*q + ~p*~q
Wykorzystane prawa algebry Boole’a:
p*~p=0
p+0 =p
Przemienność:
~q*~p = ~p*~q
Stąd:
Nasze wyrażenie po minimalizacji przybiera postać:
(p+~q)*(~p+q) = p*q + ~p*~q - funkcja alternatywno-koniunkcyjna (alternatywa koniunkcji)

Inny przykład wykorzystania praw algebry Boole’a.
Udowodnij prawo algebry Boole’a:
p + p*q =p
Dowód:
p + p*q = p*1+p*q = p*(1+q) = p*1 =p
Wykorzystane prawa algebry Boole’a:
p=p*1
Wyciągnięcie zmiennej p przed nawias identyczne jak w wielomianach klasycznych
1+q=1
p*1=p
cnd


1.5 Algorytm Wuja Zbója

Algorytm Wuja Zbója poznamy na przykładzie z życia wziętym, korzystając z definicji równoważności „wtedy i tylko wtedy” p<=>q wyrażonej spójnikami „i”(*) i „lub”(+) opisanej równaniem algebry Boole’a:
Y = p<=>q = p*q + ~p*~q
Co w logice matematycznej oznacza:
Y=1 <=> p=1 i q=1 lub ~p=1 i ~q=1

Przykład:
Pani w przedszkolu wypowiada obietnicę bezwarunkową:
1.
Jutro pójdziemy do kina wtedy i tylko wtedy gdy pójdziemy do teatru
K<=>T
Podstawmy celem skrócenia zapisów:
Y = K<=>T
Definicja równoważności w spójnikach „i”(*) i „lub”(+):
Y = K*T +~K*~T - funkcja alternatywno-koniunkcyjna (alternatywa koniunkcji)
co w logice matematycznej oznacza:
Y=1 <=> K=1 i T=1 lub ~K=1 i ~T=1
Przyjmijmy następujące znaczenie symbolu Y:
Y - pani dotrzyma słowa (Y)
~Y - pani nie dotrzyma słowa (~Y), czyli pani skłamie
Czytamy:
Prawdą jest (=1) że pani dotrzyma słowa (Y) wtedy i tylko wtedy gdy:
K*T=1*1 =1 - jutro pójdziemy do kina (K=1) i do teatru (T=1)
LUB
~K*~T=1*1=1 - jutro nie pójdziemy do kina (~K=1) i nie pójdziemy do teatru (~T=1)

W każdym innym przypadku, pani skłamie:
(~Y=1)=(Y=0) - prawo Prosiaczka
Dla każdego człowieka odpowiedź kiedy pani dotrzyma słowa (Y=1) jest intuicyjnie zrozumiała.

Prawo algebry Boole’a:
Każda funkcja alternatywno-koniunkcyjna ma swój tożsamy odpowiednik w postaci funkcji koniunkcyjno-alternatywnej

Dowód tego prawa na naszym przykładzie jest trywialny o ile skorzystamy z algorytmu przejścia do logiki przeciwnej autorstwa Wuja Zbója.

Przejdźmy z naszym przykładem na postać ogólną podstawiając:
K=p
T=q
Stąd mamy:
1.
Y = p*q + ~p*~q
W technicznej algebrze Boole’a często pomija się spójnik „i”(*) traktując go jako spójnik domyślny.
Stąd mamy funkcję matematycznie tożsamą:
1.
Y = pq+~p~q

Algorytm Wuja Zbója przejścia do logiki przeciwnej:
1.
Uzupełniamy brakujące nawiasy i spójniki:
Y = (p*q)+(~p*~q) - postać alternatywno-koniunkcyjna (alternatywa koniunkcji)
2.
Przejście do logiki ujemnej (bo ~Y) poprzez negację zmiennych i wymianę spójników
~Y = (~p+~q)*(p+q) - postać koniunkcyjno-alternatywna (koniunkcja alternatyw)
Koniec algorytmu Wuja Zbója

Zauważmy że:
Jeśli wymnożymy wielomian 2 to otrzymamy tożsamą do niego postać alternatywno-koniunkcyjną.
Zróbmy to:
~Y = (~p+~q)*(p+q) = ~p*p + ~p*q + ~q*p + ~q*q = 0 + ~p*q + p*~q + 0 = p*~q + ~p*q
3.
~Y = p*~q + ~p*q - postać alternatywno-koniunkcyjna (alternatywa koniunkcji)

Dla funkcji logicznej 3 ponownie korzystamy z algorytmu Wuja przechodząc do logiki dodatniej:
Mamy:
3.
~Y = (p*~q) + (~p*q)
Przejście do logiki dodatniej (bo Y) poprzez negację zmiennych i wymianę spójników:
4.
Y = (~p+q)*(p+~q) - funkcja koniunkcyjno-alternatywna (koniunkcja alternatyw)

Oczywistym jest, że zachodzą matematyczne tożsamości:
Y - pani dotrzyma słowa:
1: Y = p*q + ~p*~q [=] 4: Y=(p+~q)*(~p+q)
oraz:
~Y - pani skłamie
3: ~Y = p*~q + ~p*q [=] 2: ~Y = (~p+~q)*(p+q)
W tak bajecznie prosty sposób udowodniliśmy nasze twierdzenie logiki matematycznej.

Zauważmy, że odpowiedź kiedy pani skłamie (~Y) zapisana w formie funkcji alternatywno-koniunkcyjnej również jest intuicyjnie zrozumiała dla każdego ucznia I klasy LO.

Nasz przykład:
3.
~Y=K*~T + ~K*T
co matematycznie oznacza:
~Y=1 <=> K=1 i ~T=1 lub ~K=1 i T=1
Czytamy:
Prawdą jest (=1), że pani skłamie (~Y) wtedy i tylko wtedy gdy:
K*~T=1*1=1 - jutro pójdziemy do kina (K=1) i nie pójdziemy do teatru (~T=1)
LUB
~K*T =1*1 =1 - jutro nie pójdziemy do kina (~K=1) i pójdziemy do teatru (T=1)

Zauważmy że, żadna z funkcji koniunkcyjno-alternatywnych nie jest zrozumiała dla człowieka.
Weźmy przykładowo odpowiedź na pytanie „kiedy pani dotrzyma słowa” (Y=1) opisaną równaniem koniunkcyjno-alternatywnym 4.
Nasz przykład:
4.
Y = (K+~T)*(~K+T) - postać koniunkcyjno-alternatywna
Czytamy:
Pani dotrzyma słowa (Y) wtedy i tylko wtedy gdy:
(K+~T) - jutro pójdziemy do kina (K) lub nie pójdziemy do teatru (~T)
„i”(*)
(~K+T) - jutro nie pójdziemy do kina (~K) lub pójdziemy do teatru (T)

Jak widzimy stało się coś strasznego!
Powyższe zdanie to twardy dowód iż w języku potocznym postaci koniunkcyjno-alternatywnej żaden człowiek nie rozumie.

1.5.1 Alternatywne przejście do logiki przeciwnej

Mamy naszą funkcję logiczną w postaci alternatywno-koniunkcyjnej:
1.
Y = (p*q) + (~p*~q)
W logice matematycznej dowolną funkcję logiczną możemy dwustronnie zanegować:
~Y = ~((p*q)+(~p*~q))
Korzystamy z prawa De Morgana dla nawiasu zewnętrznego otrzymując:
~Y = ~(p*q) * ~(~p*~q)
Ponownie korzystamy z prawa De Morgana dla pozostałych nawiasów:
~Y = (~p+~q)*(p+q)
To co wyżej to przejście do logiki ujemnej (bo ~Y) „na piechotę” z wykorzystaniem praw De Morgana.
To „na piechotę” przy długich funkcjach logicznych będzie koszmarem trudnym do ogarnięcia.
Natomiast algorytm przejścia do logiki przeciwnej Wuja Zbója jest trywialny dla dowolnie długiej funkcji logicznej Y
Doskonale widać, że algorytm Wuja Zbója jest odpowiednikiem wzorów skróconego mnożenia znanych z wielomianów klasycznych.

Trudne (tzn. do pominięcia w czytaniu):
Zminimalizujmy teraz funkcję logiczną podaną w zadaniu na matematyce.pl
[link widoczny dla zalogowanych]

Zadanie:
Zminimalizuj poniższe wyrażenie logiczne:
(q=>r*p)+~r

W poniższej minimalizacji korzystamy z definicji znaczka =>:
p=>q = ~p+q

Rozwiązanie:
Zapiszmy nasze wyrażenie w postaci funkcji logicznej Y:
Y = (q=>r*p) + ~r = ~q+r*p + ~r
Uzupełniamy brakujące nawiasy bo kolejność wykonywania działań w logice to:
nawiasy, “i”(*), “lub”(+)
stąd mamy:
Y = ~q+(r*p)+~r
Zdefiniujmy funkcję cząstkową Y1:
Y1=(r*p)+~r
Przejście do logiki ujemnej (bo ~Y1) poprzez negację zmiennych i wymianę spójników na przeciwne:
~Y1 = (~r+~p)*r
Po wymnożeniu wielomianu logicznego mamy:
~Y1 = ~r*r + ~p*r = ~p*r
~Y1=r*~p
Powrót do logiki dodatniej (bo Y1) poprzez negację zmiennych i wymianę spójników na przeciwne:
Y1=~r+p
Odtwarzając podstawienie mamy:
Y = ~q+~r+p
Stąd w zapisie p=>q mamy:
Y = q=>(~r+p)
Stąd mamy tożsamość matematyczną:
Y = (q=>r*p)+~r = q=>(~r+p)
cnd


1.6 Definicja operatora OR(|+)

Operator OR(|+) odpowiada na pytania:
1.
Co może się wydarzyć jeśli zajdzie Y?
Y=p+q
co w logice jedynek oznacza:
Y=1 <=> p=1 lub q=1
2.
Co może się wydarzyć jeśli zajdzie ~Y?
Przejście z 1 do logiki przeciwnej poprzez negację zmiennych i wymianę spójników
~Y=~p*~q
co w logice jedynek oznacza:
~Y=1 <=> ~p=1 i ~q=1

Zauważmy że matematycznie zachodzi:
Operator OR(|+) ## Y=p+q # ~Y=~p*~q
Gdzie:
## - różne na mocy definicji (stąd do logiki matematycznej musimy wprowadzić znaczek „|+”)
# - różne w znaczeniu iż jedna strona jest negacją drugiej strony

Spójnik „i”(*) zawsze opisuje jedno, jedyne zdarzenie które może zajść:
~Y=~p*~q

Natomiast w spójniku „lub”(+):
1: Y=p+q
wszystkie możliwe rozłączne zdarzenia cząstkowe jakie mogą zajść to (wszystkie z wyjątkiem ~p*~q):
1’: Y = A: p*q+ B: p*~q+ C: ~p*q
co w logice jedynek oznacza:
Y=1 <=> A: p=1 i q=1 lub B: p=1 i ~q=1 lub C: ~p=1 i q=1

Stąd mamy serię zdarzeń cząstkowych Yx wchodzących w skład spójnika „lub”(+):
Ya=p*q
lub
Yb=p*~q
lub
Yc=~p*q

Pozostaje nam udowodnić czy zachodzi tożsamość funkcji logicznych 1=1’:
1’
Y=p*q+p*~q+~p*q
Minimalizujemy:
Y = p*(q+~q) + ~p*q
Y=p+(~p*q)
Przejście do logiki ujemnej (bo ~Y) poprzez negację zmiennych i wymianę spójników:
~Y=~p*(p+~q)
~Y=~p*p+~p*~q
~Y=~p*~q
Powrót do logiki dodatniej poprzez negację zmiennych i wymianę spójników:
Y = p+q
cnd

Stąd mamy rozszerzoną definicję spójnika „lub”(+) definiującą trzy zdarzenia rozłączne A,B,C:
p+q = A: p*q+ B: p*~q+ C: ~p*q
Dowód iż zdarzenia A, B i C są rozłączne:
Iloczyn logiczny każdego zdarzenia z każdym jest równy 0.
A*B = (p*q)*(p*~q) =0
A*C= (p*q)*(~p*q) =0
B*C = (p*~q)*(~p*q) =0
cnd

Uwaga:
Warto zapamiętać rozszerzoną definicję spójnika „lub”(+) bowiem w praktyce jest ona często wykorzystywana:
p+q = A: p*q+ B: p*~q+ C: ~p*q

Przykład z przedszkola.
Pani:
Jutro pójdziemy do kina lub do teatru
Y=K+T
co w logice jedynek oznacza:
Y=1 <=> K=1 lub T=1
Przyjmujemy standard zgodny z językiem potocznym człowieka:
Y=1 - pani dotrzyma słowa (Y)
~Y=1 - pani NIE(~) dotrzyma słowa (=pani skłamie)

Operator OR(|+) odpowiada na dwa pytania:

1.
Kiedy pani dotrzyma słowa?

1.
Pani dotrzyma słowa (Y=1) wtedy i tylko wtedy gdy jutro pójdziemy do kina lub pójdziemy do teatru
Y=K+T
co w logice jedynek oznacza:
Y=1 <=> K=1 lub T=1

Uwaga:
Jeśli chcemy znać szczegółowo trzy zdarzenia rozłączne jakie jutro mogą wystąpić to korzystamy z rozszerzonej definicji spójnika „lub”(+)
p+q = p*q + p*~q + ~p*q
Nasz przykład:
Y= A: K*T + B: K*~T + C: ~K*T
Co w logice jedynek oznacza:
Y=1 <=> A: K=1 i T=1 lub B: K=1 i ~T=1 lub C: ~K=1 i T=1

Stąd mamy rozszerzoną odpowiedź kiedy jutro pani dotrzyma słowa (Y=1):
Pani dotrzyma słowa (Y=1) wtedy i tylko wtedy gdy:
Ya = K*T=1*1 =1 - jutro pójdziemy do kina (K=1) i do teatru (T=1)
lub
Yb=K*~T=1*1 =1 - jutro pójdziemy do kina (K=1) i nie pójdziemy do teatru (~T=1)
lub
Yc=~K*T =1*1 =1 - jutro nie pójdziemy do kina (~K=1) i pójdziemy do teatru (T=1)

2.
Kiedy pani skłamie (~Y=1)?


Przejście z równaniem 1 do logiki ujemnej (bo ~Y) poprzez negację zmiennych i wymianę spójników:
~Y=~K*~T
co w logice jedynek oznacza:
~Y=1 <=> ~K=1 i ~T=1

Czytamy:
Pani skłamie (~Y=1) wtedy i tylko wtedy gdy:
~Y=~K*~T=1*1 =1 - jutro nie pójdziemy do kina (~K=1) i nie pójdziemy do teatru (~T=1)


1.7 Definicja operatora AND(|*)

Operator AND(|*) odpowiada na pytania:
1.
Co może się wydarzyć jeśli zajdzie Y?
Y=p*q
co w logice jedynek oznacza:
Y=1 <=> p=1 i q=1
2.
Co może się wydarzyć jeśli zajdzie ~Y?
Przejście z 1 do logiki przeciwnej poprzez negację zmiennych i wymianę spójników
~Y=~p+~q
co w logice jedynek oznacza:
~Y=1 <=> ~p=1 lub ~q=1

Zauważmy że matematycznie zachodzi:
Operator AND(|*) ## Y=p*q # ~Y=~p+~q
Gdzie:
## - różne na mocy definicji (stąd do logiki matematycznej musimy wprowadzić znaczek „|*”)
# - różne w znaczeniu iż jedna strona jest negacją drugiej strony

Spójnik „i”(*) zawsze opisuje jedno, jedyne zdarzenie które może zajść:
Y=p*q

Natomiast w spójniku „lub”(+) w swojej rozszerzonej wersji opisuje trzy rozłączne zdarzenia:
p+q = A: p*q + B: p*~q + C: ~p*q
Obliczenie zdarzeń rozłącznych dla ~p i ~q polega na negacji wszystkich zmiennych w definicji wyżej:
~p+~q = A: ~p*~q + B: ~p*q + C: p*~q
cnd

Stąd mamy serię zdarzeń cząstkowych ~Yx wchodzących w skład spójnika „lub”(+):
~Ya=~p*~q
lub
~Yb=~p*q
lub
~Yc=p*~q

Przykład z przedszkola.
Pani:
Jutro pójdziemy do kina i do teatru
Y=K*T
co w logice jedynek oznacza:
Y=1 <=> K=1 i T=1
Przyjmujemy standard zgodny z językiem potocznym człowieka:
Y=1 - pani dotrzyma słowa (Y)
~Y=1 - pani NIE(~) dotrzyma słowa (=pani skłamie)

Operator AND(|*) odpowiada na dwa pytania:

1.
Kiedy pani dotrzyma słowa?

1.
Pani dotrzyma słowa (Y=1) wtedy i tylko wtedy gdy jutro pójdziemy do kina i pójdziemy do teatru
Y=K*T
co w logice jedynek oznacza:
Y=1 <=> K=1 i T=1

2.
Kiedy pani skłamie (~Y=1)?


Przejście z równaniem 1 do logiki ujemnej (bo ~Y) poprzez negację zmiennych i wymianę spójników:
~Y=~K+~T
co w logice jedynek oznacza:
~Y=1 <=> ~K=1 lub ~T=1

Czytamy:
Pani skłamie (~Y=1) wtedy i tylko wtedy gdy jutro nie pójdziemy do kina (~K=1) lub nie pójdziemy do teatru (~T=1)
~Y=~K+~T
co w logice jedynek oznacza:
~Y=1 <=> ~K=1 lub ~T=1

Uwaga:
Jeśli chcemy znać szczegółowo trzy zdarzenia rozłączne jakie jutro mogą wystąpić to korzystamy z rozszerzonej definicji spójnika „lub”(+)
p+q = p*q + p*~q + ~p*q
Nasz przykład dla ~K i ~T (w powyższej definicji negujemy wszędzie zmienne p i q):
Y= A: ~K*~T + B: ~K*T + C: K*~T
Co w logice jedynek oznacza:
~Y=1 <=> A: ~K=1 i ~T=1 lub B: ~K=1 i T=1 lub C: K=1 i ~T=1

Stąd mamy rozszerzoną odpowiedź kiedy jutro pani NIE dotrzyma słowa (~Y=1) (skłamie):
Pani skłamie (~Y=1) wtedy i tylko wtedy gdy:
~Ya = ~K*~T=1*1 =1 - jutro nie pójdziemy do kina (~K=1) i nie pójdziemy do teatru (~T=1)
lub
~Yb=~K*T=1*1 =1 - jutro nie pójdziemy do kina (~K=1) i pójdziemy do teatru (T=1)
lub
~Yc=K*~T =1*1 =1 - jutro pójdziemy do kina (K=1) i nie pójdziemy do teatru (~T=1)


Ostatnio zmieniony przez rafal3006 dnia Wto 7:43, 07 Kwi 2020, w całości zmieniany 5 razy
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum ŚFiNiA Strona Główna -> Metodologia / Forum Kubusia Wszystkie czasy w strefie CET (Europa)
Strona 1 z 1

 
Skocz do:  
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
Regulamin