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 

NTI - operatory AND i OR - wersja przedostatnia

 
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: 35532
Przeczytał: 15 tematów

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

PostWysłany: Pią 19:27, 18 Wrz 2009    Temat postu: NTI - operatory AND i OR - wersja przedostatnia

Aksjomat matematyki języka mówionego:
Jak logicznie myślimy, tak matematycznie zapisujemy. Mówimy „NIE” zapisujemy (~), mówimy „i” zapisujemy AND(*), mówimy “lub” zapisujemy OR(+), w implikacji mówimy “musi” zapisujemy ( =>), mówimy “może” zapisujemy (~> lub ~~>).


Algebra Kubusia
Matematyka języka mówionego

Części:
Część I Operatory AND i OR
Część II Nowa teoria implikacji



Część I
Operatory AND i OR



Autor: Kubuś - wirtualny Internetowy Miś
Naszym dzieciom dedykuję

W pracach nad teorią implikacji bezcennej pomocy udzielili Kubusiowi przyjaciele:
Emde (sfinia), Fizyk (ateista.pl), HeHe (ateista.pl), Irbisol (sfinia), Macjan (sfinia), Miki (sfinia), NoBody (ateista.pl), Rafał3006 (sfinia), Rexerex (ateista.pl), Rogal (matematyka.pl), tomektomek (ateista.pl), Uczy (wolny), Volrath (sfinia), Windziarz (ateista.pl), WujZbój (sfinia), Wyobraźnia (ateista.pl) i inni
Wielkie dzięki, Kubuś !

Szczególne podziękowania Wujowi Zbójowi za jego nieskończoną cierpliwość w dyskusjach z Kubusiem, Vorathowi za decydującą o wszystkim dyskusję, Fizykowi za inspirację do napisania końcowej wersji NTI oraz Windziarzowi za postawienie kropki nad „i”.

Kim jest Kubuś ?
Kubuś - wirtualny Internetowy Miś, wysłannik obcej cywilizacji, którego zadaniem było przekazanie ludziom tajemnicy implikacji.
Podpis jest pracą zespołową, Kubuś nigdy by się nie urodził bez przyjaciół którzy pomogli mu w jego ziemskim zadaniu, rzeczywiści autorzy wymienieni są wyżej.


Wstęp:

Algebra Kubusia to symboliczna algebra Boole’a, odpowiednik języka asemblera ze świata mikroprocesorów, gdzie praktycznie w 100% izolujemy się od kodu zero-jedynkowego, operując naturalną logiką człowieka. Celem tego podręcznika jest udowodnienie związku naturalnej logiki człowieka z zero-jedynkową algebrą Boole’a w obszarze operatorów AND(*) i OR(+).

Algebra Boole’a to algebra bramek logicznych. Fundamentem całego świata techniki są zaledwie dwie bramki logiczne AND(*) i OR(+) plus negator. Fundamentem naturalnego języka mówionego są operatory AND i OR znane ze świata techniki, oraz przede wszystkim zupełnie w technice nieprzydatne (z powodu „rzucania monetą”) operatory implikacji prostej => i odwrotnej ~> plus prawa Kubusia.

Matematyka języka mówionego zbudowana jest na bardzo prostym aksjomacie rodem z teorii układów cyfrowych.

Aksjomat matematyki języka mówionego:
Jak logicznie myślimy, tak matematycznie zapisujemy. Mówimy „NIE” zapisujemy (~), mówimy „i” zapisujemy AND(*), mówimy “lub” zapisujemy OR(+), w implikacji mówimy “musi” zapisujemy ( =>), mówimy “może” zapisujemy (~> lub ~~>).


Spis treści:

1.0 Notacja
1.1 Definicje i prawa algebry Boole’a w pigułce
1.2 Genialna matematyka 5-cio latka w operatorach AND i OR
1.3 Lista legalnych operatorów logicznych

2.0 Zero-jedynkowa algebra Boole’a
2.1 Prawa wynikające z definicji iloczynu logicznego
2.2 Prawa wynikające z definicji sumy logicznej
2.3 Najważniejsze prawa algebry Boole’a
2.4 Definicja algebry Kubusia

3.0 Kubuś na tropie logiki człowieka
3.1 Podstawowe pojęcia i definicje
3.2 zdania twierdzące zdeterminowane
3.3 Funkcja logiczna jednej zmiennej
3.3.1 Bezwarunkowa obietnica
3.3.2 Bezwarunkowa groźba
3.3.3 Przyszłość niezależna od człowieka
3.4 Funkcja logiczna dwu zmiennych - suma logiczna
3.5 Funkcja logiczna dwu zmiennych - iloczyn logiczny
3.6 Logika dodatnia i ujemna w operatorach AND i OR
3.7 Definicja sumy logicznej
3.8 Prawo Prosiaczka
3.9 Definicja iloczynu logicznego

4.0 Logika dodatnia i ujemna w bramkach logicznych
4.1 Prawa de’Morgana w bramkach logicznych
4.2 Laboratorium cyfrowych układów logicznych
4.3 Operatory AND i OR w logice człowieka
5.0 Operatory dodatnie i operatory ujemne


1.0 Notacja

Notacja w algebrze Kubusia jest identyczna jak notacja technicznej algebry Boole’a czyli tej, której używają praktycy.

1 = prawda
0 = fałsz
# - różne
* - symbol iloczynu logicznego (AND), w mowie potocznej spójnik 'i'
+ - symbol sumy logicznej (OR), w mowie potocznej spójnik "lub"
~ - przeczenie, negacja (NOT), w mowie potocznej "NIE"
~(...) - w mowie potocznej "nie może się zdarzyć że ...", "nie prawdą jest że ..."
<=> - symbol równoważności


1.1 Definicje i prawa algebry Kubusia w pigułce

… czyli wszystko co najważniejsze w tym podręczniku.

Definicja iloczynu logicznego:
Iloczyn logiczny jest równy jeden wtedy i tylko wtedy gdy wszystkie zmienne są równe jeden.
Y=A1*A2* … *An =1 <=> A1=1, A2=1 … An=1

Definicja równoważna:
Iloczyn logiczny jest równy zeru jeśli którakolwiek zmienna jest równa zeru.
Y=1*1*1*0*1 =0

Definicja sumy logicznej:
Suma logiczna n-zmiennych binarnych jest równa zeru wtedy i tylko wtedy gdy wszystkie składniki sumy są równe zeru
Y = A1+A2+… An =0 <=> A1=0, A2=0 …An=0

Definicja równoważna:
Suma logiczna n-zmiennych binarnych jest równa jeden gdy którakolwiek ze zmiennych jest równa jeden.
Y=1+1+1+0+1 =1

Zmienna binarna:
Zmienna binarna to zmienna, mogąca przyjmować w osi czasu wyłącznie dwie wartości logiczne 0 albo 1.

Funkcja logiczna:
Funkcja logiczna Y to funkcja n-zmiennych binarnych połączonych operatorami AND(*) lub OR(+).
Przykład:
Y = A+(B*C) ….

Definicja logiki dodatniej i ujemnej dla operatorów AND i OR:
Logika dodatnia (Y) to odpowiedź na pytanie kiedy dotrzymam słowa (wystąpi prawda), zaś logika ujemna (~Y) to odpowiedź na pytanie kiedy skłamię (wystąpi fałsz).
gdzie:
Y - funkcja logiczna w logice dodatniej (brak przeczenia)
~Y - funkcja logiczna w logice ujemnej (jest przeczenie)

Związek logiki dodatniej z logiką ujemną opisuje równanie:
Y = ~(~Y) - prawo podwójnego przeczenia

Prawo przedszkolaka:
W dowolnej funkcji logicznej Y algebry Boole’a z operatorami AND i OR przejście do logiki przeciwnej uzyskujemy poprzez negację zmiennych i wymianę operatorów na przeciwne.

Przykładowa funkcja logiczna:
A.
Y=A+(B*~C)
Przejście do logiki przeciwnej:
B.
~Y=~A*(~B+C)
Oczywiście:
C.
Y=~(~Y)
Podstawiając A i B do C mamy prawo de’Morgana:
A+(B*~C) = ~A*(~B+C)

Prawa de’Morgana:
p*q = ~(~p+~q) - prawo zamiany operatora AND(*) na OR(+)
p+q = ~(~p*~q) - prawo zamiany operatora OR(+) na AND(*)

Zasada czytania funkcji logicznej:
Wartość funkcji logicznej z operatorami AND i OR to wartość logiczna zdania.
Y =1 - prawda, dotrzymam słowa (Y - logika dodatnia)
~Y=1 - fałsz, skłamię (~Y - logika ujemna)
gdzie:
Y - zarezerwowany symbol funkcji logicznej

Znaczenie zmiennych w logice dodatniej:
Y=A*B - funkcja logiczna
gdzie:
A, B - zmienne binarne, mogące przyjmować w osi czasu wyłącznie 0 albo 1.
Zasada czytania:
Y=1 <=> A=1 i B=1
inaczej Y=0.
czyli:
Wystąpi prawda (Y=1) jeśli zajdzie A=1 i B=1
Logika dodatnia:
Y=1, ~Y=0
A=1, ~A=0
B=1, ~B=0

Znaczenie zmiennych w logice ujemnej:
Kiedy powyższa funkcja będzie fałszem (kłamstwem) ?
Przejście do logiki ujemnej metodą przedszkolaka poprzez negację zmiennych i wymianę operatorów na przeciwne.
~Y=~A+~B
Zasada czytania jest tu identyczna:
~Y=1 <=> ~A=1 lub ~B=1
inaczej ~Y=0
Czyli:
Wystąpi fałsz (~Y=1) jeśli zajdzie ~A=1 lub ~B=1
Logika ujemna:
~Y=1, Y=0
~A=1, A=0
~B=1, B=0

Zauważmy, że znaczenie zmiennych w logice dodatniej jest fundamentalnie inne niż w logice ujemnej. W szczególności w operatorach AND i OR zdanie prawdziwe w logice dodatniej (Y=1) nie jest równoważne zdaniu prawdziwemu w logice ujemnej (~Y=1), czyli mamy sytuację: oba zdania prawdziwe, ale nie równoważne !

Przykład:
Jutro pójdę do kina i do teatru
Y=K*T
Matematycznie oznacza to:
A.
Dotrzymam słowa (Y), jeśli jutro pójdę do kina (K) i do teatru (T)
Y=K*T
czyli:
Y=1 <=> K=1 i T=1
Stan faktyczny pojutrze:
Y=1 - dotrzymałem słowa
K=1 - byłem w kinie
i
T=1 - byłem w teatrze

Tata, a kiedy skłamiesz ?
Przejście do logiki przeciwnej metodą przedszkolaka poprzez negacje zmiennych i wymianę operatorów.
~Y=~K+~T
B.
Skłamię (~Y), jeśli jutro nie pójdę do kina (~K) lub nie pójdę do teatru (~T)
~Y=~K+~T
czyli:
~Y=1 <=> ~K=1 lub ~T=1
Stan faktyczny pojutrze:
~Y=1 - skłamałem
~K=1 - nie byłem w kinie
lub
~T=1 - nie byłem w teatrze

Zdanie B to dla wszystkich oczywistość, wypowiadana najczęściej jako odpowiedź na pytanie dziecka (Tata, kiedy skłamiesz ?), które dopiero uczy się języka. W języku mówionym „dotrzymam słowa (Y)” jest domyślne i nie musi być wypowiadane, natomiast „skłamię (~Y)” nie jest domyślne i zawsze jest wypowiadane.

Związek logiki dodatniej i ujemnej:
C.
Y=~(~Y) - prawo podwójnego przeczenia
Podstawiając A i B do C mamy prawo de’Morgana
Y = K*T = ~(~K+~T)
Nie może się zdarzyć ~(…), że jutro nie pójdę do kina (~K) lub nie pójdę do teatru (~T)
Y = ~(~K+~T)
czyli:
Y=1 <=> ~(~K=1 lub ~T=1)
Dotrzymam słowa (Y=1), jeśli nie zdarzy się ~(…) że jutro nie pójdę do kina (~K=1) lub nie pójdę do teatru (~T=1)

Prawo Prosiaczka:
Równania algebry Boole’a dla dowolnej tabeli zero-jedynkowej n-elementowej tworzymy na podstawie linii z tą samą wartością logiczną w wyniku. Wszelkie nie opisane równaniami linie przyjmą wartości przeciwne do linii opisanych.

Przykład:
Definicja implikacji prostej =>.
Kod:

p q  Y=p=>q
1 1 =1
1 0 =0
0 0 =1
0 1 =1

Najprostsze równanie uzyskamy z linii drugiej bowiem w wyniku mamy tu samotne zero.

Z tabeli widzimy że:
A.
Y=0 <=> p=1 i q=0
Przejście z takiego zapisu do równań algebry Boole’a jest banalne. Należy skorzystać z definicji iloczynu logicznego sprowadzając wszystkie zmienne do jedynki albo z definicji sumy logicznej sprowadzając wszystkie zmienne do zera.

Sposób I
Sprowadzamy wszystkie zmienne do jedynki:
B.
Y=0 czyli ~Y=1
p=1
q=0 czyli ~q=1

Definicja iloczynu logicznego:
Iloczyn logiczny jest równy jeden wtedy i tylko wtedy gdy wszystkie zmienne są równe jeden.

Korzystając z A i B na podstawie tej definicji mamy:
~Y = p*~q
Przechodzimy do logiki przeciwnej metodą przedszkolaka:
Y=~p+q
czyli:
p=>q = ~p+q

Sposób II
Sprowadzamy wszystkie zmienne do zera i stosujemy definicję sumy logicznej.

Definicja sumy logicznej:
Suma logiczna jest równa zeru wtedy i tylko wtedy gdy wszystkie składniki sumy są równe zeru

Na podstawie równania A mamy:
C.
Y=0
p=1 czyli ~p=0
q=0
Korzystając z A i C na podstawie definicji sumy logicznej mamy:
Y=~p+q
czyli:
p=>q = ~p+q

Powyżej ułożyliśmy równanie wyłącznie dla drugiej linii tabeli gdzie w wyniku było zero, wszelkie pozostałe linie, zgodnie z prawem Prosiaczka muszą być jedynkami niezależnie od chciejstwa człowieka … bo to jest matematyka przecież.

Fundament algebry Kubusia w zakresie implikacji

Definicja implikacji prostej:
p=>q = ~p+q
Jeśli zajdzie p to „musi” => zajść q
p musi być warunkiem wystarczającym dla q
=> - operator implikacji prostej, spójnik „musi” ze spełnionym warunkiem wystarczającym

Definicja implikacji odwrotnej:
p~>q = p+~q
Jeśli zajdzie p to „może” ~> zajść q
p musi być warunkiem koniecznym dla q
~> - operator implikacji odwrotnej, spójnik „może” ze spełnionym warunkiem koniecznym

Spójniki zdaniowe
=> - operator implikacji prostej, spójnik „musi” między p i q ze spełnionym warunkiem wystarczającym
~> - operator implikacji odwrotnej, spójnik „może” między p i q ze spełnionym warunkiem koniecznym
~~> - naturalny spójnik „może”, wystarczy jedna prawda, nie jest to implikacja odwrotna zatem warunek konieczny tu nie zachodzi

Prawa Kubusia:
p=>q = ~p~>~q - prawo zamiany operatora implikacji prostej => na odwrotną ~>
p~>q = ~p=>~q - prawo zamiany operatora implikacji odwrotnej ~> na prostą =>

Logika dodatnia i ujemna dla operatorów implikacji prostej => i odwrotnej ~>:
Implikacja wypowiedziana jest w logice dodatniej jeśli po stronie q nie występuje negacja, inaczej mamy do czynienia z logiką ujemną (patrz prawa Kubusia).

Z praw Kubusia wynika, że implikacja prosta => w logice dodatniej jest równoważna implikacji odwrotnej ~> w logice ujemnej i odwrotnie, czyli implikacja odwrotna ~> w logice dodatniej jest równoważna implikacji prostej => w logice ujemnej.

1.2 Genialna matematyka 5-cio latka w operatorach AND i OR

Pani w przedszkolu:
Jutro pójdziemy do kina i do teatru i nie pójdziemy na basen
Y=K*T*~B
Matematycznie oznacza to:
A.
Pani dotrzyma słowa (Y=1) jeśli jutro pójdziemy do kina (K=1) i do teatru (T=1) i nie pójdziemy na basen (~B=1)
Y=K*T*~B
czyli:
Y=1 <=> K=1 i T=1 i ~B=1
Pani dotrzyma słowa wtedy i tylko wtedy gdy zajdą wszystkie opisane wyżej przypadki czli gdy wszystkie zmienne zostaną ustawione na jeden.

Zuzia do Jasia:
… a kiedy pani zostanie kłamczuchą ?
Przejście do logiki ujemnej metoda przedszkolaka poprzez negacje zmiennyc i wymianę operatorów na przeciwne.
Mamy:
A.
Y=K*T*~B
Przechodzimy do logiki ujemnej:
B.
~Y = ~K+~T+B
Jaś (lat 5):
B.
Pani zostanie kłamczuchą jeśli jutro nie pójdziemy do kina (~K=1) lub nie pójdziemy do teatru (~T=1) lub pójdziemy na basen (B=1)
~Y = ~K+~T+B
Wystarczy że którakolwiek ze zmiennych zostanie ustawiona na jeden i już Pani jest kłamczuchą.
~Y=1 <=> ~K=1 lub ~T=1 lub B=1

KONIEC !
To jest cała genialna matematyka 5-cio latka w operatorach AND(*) i OR(+).
Pięciolatkowi wystarczy to co wyżej, wszystko inne, w tym tabele zero-jedynkowe, są tu psu na budę potrzebne.

Zauważmy, że zmienne wejściowe w zdaniu A zapisane są w logice dodatniej:
Y=1 - dotrzymam słowa
Y=0 - skłamię
K=1 - jutro pójdziemy do kina
K=0 - jutro nie pójdziemy do kina
T=1 - jutro pójdziemy do teatru
T=0 - jutro nie pójdziemy do teatru
~B=1 - jutro nie pójdziemy na basen
~B=0 - jutro pójdziemy na basen
Natomiast zmienne wejściowe w zdaniu B zapisane są w logice ujemnej:
~Y=1 - skłamię
~Y=0 - dotrzymam słowa
~K=1 - jutro nie pójdziemy do kina
~K=0 - jutro pójdziemy do kina
~T=1 - jutro nie pójdziemy do teatru
~T=0 - jutro pójdziemy do teatru
B=1 - jutro pójdziemy na basen
B=0 - jutro nie pójdziemy na basen

Oczywiście matematycznie zachodzi:
Y=~(~Y)
Stąd po podstawieniu A i B mamy prawo de’Morgana:
K*T*~B = ~(~K+~T+B)
Z którego w praktyce języka mówionego nikt nie korzysta bo lewa strona jest naturalna i nieporównywalnie prostsza.
W przełożeniu na język mówiony prawa strona przybierze postać:
Nie może się zdarzyć ~(…), że jutro nie pójdziemy do kina (~K=1) lub nie pójdziemy do teatru (~T=1) lub pójdziemy na basen (B=1).
Y=~(~K+~T+B)

Sprowadzenie do logiki dodatniej zmiennych w logice ujemnej:
Y=~(~Y) = ~(~Y=0) = ~(0) = 1 - dotrzymam słowa
K=~(~K) = ~(~K=0) = ~(0)=1 - jutro pójdziemy do kina
T=~(~T) = ~(~T=0) = ~(0)=1 - jutro pójdziemy do teatru
~B=~(B) = ~(B=0) = ~(0) =1 - jutro nie pójdziemy na basen

Sprowadzenie do logiki ujemnej zmiennych w logice dodatniej:
~Y=~(Y) = ~(~Y=0) = ~(0) =1 - skłamię
~K=~(K) = ~(K=0) = ~(0) =1 - jutro nie pójdziemy do kina
~T = ~(T) = ~(T=0) = ~(0) =1 - jutro nie pójdziemy do teatru
B= ~(~B) = ~(~B=0) = ~(0) =1 - jutro pójdziemy na basen

Jak to zapisać w tabelach zero-jedynkowych ?
A.
Y=K*T*~B
czyli:
Y=1 <=> K=1 i T=1 i ~B=1
w przeciwnym przypadku: Y=0

Definicja iloczynu logicznego:
Iloczyn logiczny jest równy jeden wtedy i tylko wtedy gdy wszystkie zmienne są równe jeden.
Kod:

K  T ~B  Y= K*T*~B
1  1  1  1
0  0  0  0
0  0  1  0
0  1  0  0
0  1  1  0
1  0  0  0
1  0  1  0
1  1  0  0

B.
~Y = ~K+~T+B
czyli:
~Y=1 <=> ~K=1 lub ~T=1 lub B=1
w przeciwnym przypadku: ~Y=0

Definicja sumy logicznej:
Suma logiczna (~Y=0) jest równa zero wtedy i tylko wtedy gdy wszystkie zmienne są równe zeru.

Stąd tabela zero jedynkowa:
Kod:

~K ~T  B  ~Y=~K+~T+B
 0  0  0   0
 0  0  1   1
 0  1  0   1
 0  1  1   1
 1  0  0   1
 1  0  1   1
 1  1  0   1
 1  1  1   1


Wnioski:
1.
W naturalnym języku mówionym człowiek operuje na zmiennych binarnych a nie na tabelach zero-jedynkowych
2.
Stosowanie praw logicznych na zmiennych binarnych wymaga zapisu tabeli zero jedynkowej w postaci równania algebry Boole’a.


1.3 Lista legalnych operatorów logicznych

Zero-jedynkowo wszystkie operatory logiczne znane są człowiekowi od około 200 lat, jednak nie wszystkie zostały poprawnie zinterpretowane.

Pełna lista dwuargumentowych operatorów logicznych.
Kod:

p q  OR NOR  AND NAND  <=> XOR  => N(=>) ~> N(~>)  FILL NOP  P NP  Q NQ
0 0  0   1    0   1     1   0   1    0   1    0     1    0   0 1   0 1
0 1  1   0    0   1     0   1   1    0   0    1     1    0   0 1   1 0
1 0  1   0    0   1     0   1   0    1   1    0     1    0   1 0   0 1
1 1  1   0    1   0     1   0   1    0   1    0     1    0   1 0   1 0


Kod:

Logika dodatnia    Logika ujemna
OR                 NOR
AND                NAND
<=>                XOR
=>                 N(=>)
~>                 N(~>)
FILL               NOP
P                  NP
Q                  NQ

Wszystkich możliwych operatorów logicznych jest 16 z czego człowiek zna poprawne znaczenie zaledwie sześciu: AND, NAND, OR, NOR, <=>, XOR. Za operatory dodatnie przyjęto te, które człowiek używa w naturalnym języku mówionym. Wyjątkiem jest tu operator XOR, w języku mówionym spójnik „albo”.

Operator ujemny to zanegowany operator dodatni, co doskonale widać w powyższej tabeli.
Operator dodatni to zanegowany operator ujemny, co również widać wyżej.
Kod:

Definicje operatorów ujemnych:
pNORq       =     ~(p+q)
pNANDq      =     ~(p*q)
pXORq       =     ~(p<=>q)
pN(=>)q     =     ~(p=>q)
pN(~>)q     =     ~(p~>q)   
pNOPq       =     ~(pFILLq)
pNPq        =     ~(pPq)
pNQq        =     ~(pQq)

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.


2.0 Zero-jedynkowa algebra Boole’a

Klasyczna, zero-jedynkowa algebra Boole’a to w dniu dzisiejszym zabytek klasy zerowej. Algebra ta jest co prawda fundamentem działania wszelkich komputerów (i całego naszego Wszechświata) ale człowiek myślał w zerach i jedynkach zaledwie przez mgnienie oka. Natychmiast wynalazł język symboliczny zwany asemblerem izolując się od kodu maszynowego … czyli skopiował działanie własnego mózgu. Żaden programista pisząc programy nie myśli w zerach i jedynkach bo to po prostu horror. Klasyczna algebra Boole’a, czyli algebra bramek logicznych, jest zupełnie nieprzydatna w technice bowiem nikt nie projektuje już automatów cyfrowych na bramkach logicznych, jak to miało miejsce przed wynalezieniem mikroprocesora. Pierwszy przyzwoity mikroprocesor (Intel 8080) pojawił się w roku 1974, ale już przed nim algebra Boole’a załamała się na układach cyfrowych średniej skali integracji (liczniki, rejestry, multipleksery itp.).
Oczywiście algebra Boole’a w najprostszej postaci będzie w technice przydatna zawsze, ale już nikt nigdy nie będzie używał bramek logicznych do projektowania złożonych automatów cyfrowych, tu królują mikroprocesory. Fundamentalne prawa algebry Boole’a musi znać każdy programista piszący programy w dowolnym języku programowania.

Algebra Boole’a w wersji symbolicznej z poprawnymi definicjami implikacji prostej => i odwrotnej ~> to fundament logiki człowieka, naturalnego języka mówionego, i o tym w niniejszej publikacji będzie cały czas mowa.


2.1 Prawa wynikające z definicji iloczynu logicznego

Definicja iloczynu logicznego:
Iloczyn logiczny n-zmiennych binarnych jest równy jeden wtedy i tylko wtedy gdy wszystkie zmienne są równe jeden.
Y=A*B <=> A=1 i B=1

Definicja równoważna:
Iloczyn logiczny jest równy zeru gdy którakolwiek zmienna jest równa zeru.

Prawa wynikające bezpośrednio z definicji:
1*0=0
1*1=1
A*0=0
A*1=A
A*A=A
A*~A=0
W języku mówionym powyższe prawa nie są używane, przydają się jedynie w technice cyfrowej.


2.2 Prawa wynikające z definicji sumy logicznej

Definicja sumy logicznej:
Suma logiczna n-zminnych binarnych jest równa zeru wtedy i tylko wtedy gdy wszystkie zmienne są równe zeru.
Y=A+B=0 <=> A=0 i B=0

Definicja równoważna:
Suma logiczna jest równa jeden gdy którakolwiek zmienna jest równa 1

Prawa wynikające bezpośrednio z definicji:
1+0=1
0+0=0
A+1=1
A+0=A
A+A=A
A+~A=1
W języku mówionym powyższe prawa nie są używane, przydają się jedynie w technice cyfrowej.

2.3 Najważniejsze prawa algebry Boole’a

W języku mówionym prawa łączności i przemienności to oczywistość, natomiast absorpcja, rozdzielność i pochłanianie są przydatne jedynie w technice cyfrowej.

Łączność:
A+(B+C) = (A+B)+C
A*(B*C)=(A*B)*C

Przemienność:
A+B=B+C
A*B=B*C

Absorbcja:
A+(A*B)=A
Dowód:
Jeśli A=1 to A+(A*B)=1+(A*B)=1
Jeśli A=0 to A+(A*B)=0+(0*B)=0+0=0
niezależnie od wartości B
CND

A*(A+B)=A
Dowód:
Jeśli A=1 to A*(A+B)= 1*(1+B)=1*1=1
Jeśli A=0 to A*(A+B)=0*(A+B)=0
niezależnie od wartości B.
CND

Rozdzielność:
A+(B*C) = (A+B)*(A+C)
A*(B+C)=(A*B)+(B*C)

Pochłanianie:
A*~A=0
A+~A=1


2.4 Definicja algebry Kubusia

Algebra Kubusia to symboliczna algebra Boole’a, czyli operowanie równaniami algebry Boole’a (język asemblera), z fundamentalnie innymi definicjami implikacji prostej => i odwrotnej ~>. Oczywiście chodzi tu o interpretację tabel zero-jedynkowych definicji implikacji znanych człowiekowi od około 200 lat. Algebra Kubusia respektuje wszystkie prawa algebry Boole’a podane wyżej.

Definicja algebry Kubusia:
Dwuelementowa algebra Kubusia (wyłącznie cyfry 0 i 1) to algebra legalnych operatorów logicznych z których najważniejsze to OR(+), AND(*), implikacja prosta =>, implikacja odwrotna ~> plus definicja negacji (~) oraz pojęcie zmiennej binarnej i funkcji logicznej.

Definicja negacji:
1=~0
0=~1

Zmienna binarna
Zmienna binarna to zmienna, mogąca przyjmować w osi czasu wyłącznie dwie wartości logiczne 0 albo 1.
Nazwa zmiennej binarnej to dowolny symbol (litera alfabetu lub słowo) z wyjątkiem litery Y zwyczajowo zarezerwowanej dla funkcji logicznej.

Funkcja logiczna
Funkcja logiczna Y to funkcja n-zmiennych binarnych połączonych operatorami AND(*) lub OR(+).
Przykład:
Y = A+(B*C)

Symboliczna definicja negacji:
Y=~A
gdzie:
A - zmienna binarna
Y - funkcja logiczna

Tabela prawdy:
Kod:

A  Y=~A
1  0
0  1


Prawo podwójnego przeczenia
A=~(~A)
Prawo podwójnego przeczenia to jedno z najważniejszych praw w logice.

Dowód przy pomocy tabeli zero-jedynkowej:
Kod:

A ~A ~(~A)
1  0    1
0  1    0

Kolumny pierwsza i trzecia są identyczne co jest dowodem poprawności prawa podwójnego przeczenia. Algebra Kubusia to algebra bramek logicznych, operująca na zmiennych binarnych a nie tabelach zero-jedynkowych.

Definicja logiki dodatniej i ujemnej dla operatorów AND i OR:
Logika dodatnia (Y) to odpowiedź na pytanie kiedy dotrzymam słowa (wystąpi prawda), zaś logika ujemna (~Y) to odpowiedź na pytanie kiedy skłamię (wystąpi fałsz).

Związek logiki dodatniej z logiką ujemną opisuje równanie:
Y = ~(~Y) - prawo podwójnego przeczenia

Prawo przedszkolaka:
W dowolnej funkcji logicznej Y algebry Boole’a z operatorami AND i OR przejście do logiki przeciwnej uzyskujemy poprzez negację zmiennych i wymianę operatorów na przeciwne.

Przykładowa funkcja logiczna:
A.
Y=A+(B*~C)
Przejście do logiki przeciwnej:
B.
~Y=~A*(~B+C)
Oczywiście:
C.
Y=~(~Y)
Podstawiając A i B do C mamy prawo de’Morgana:
A+(B*~C) = ~A*(~B+C)


3.0 Kubuś na tropie logiki człowieka

Pewnego razu Kubuś, leżąc na polance w stumilowym lesie doznał olśnienia. A gdyby tak wyzerować sobie mózg, czyli założyć że moja matematyczna wiedza wstępna jest na poziomie ucznia I klasy LO który nie ma pojęcia o algebrze Boole’a i napisać podręcznik logiki dla samego siebie ?

Hmm… to całkiem niezły pomysł, pomyślał Kubuś.

Fundamentem dzisiejszej logiki (Klasyczny Rachunek Zdań) jest rachunek zero-jedynkowy, będący przyczyną jej klęski w poszukiwaniu logiki człowieka. Po prostu praktycznie nie da się dojść od zer i jedynek do poziomu naturalnej logiki człowieka. Do problemu trzeba podejść dokładnie z drugiej strony, czyli myśleć logicznie jak dziecko w przedszkolu zapisując swoje myślenie w postaci równań algebry Boole’a … co Kubuś uczynił.


3.1 Podstawowe pojęcia i definicje

Pewne jest, że algebrą Kubusia doskonale posługują się wszystkie dzieci w przedszkolu. Zacznijmy zatem myśleć logicznie jak 5-letnie dziecko i przelewajmy wszystko na papier. Oczywiście aby to robić musimy znać fundamentalne pojęcia i definicje z zakresu logiki. Aparatu matematycznego nie potrzebujemy w ogóle gdyż mamy go w głowie - to nasz mózg.

Notacja:
+ - suma logiczna, spójnik „lub” (OR) w naturalnym języku mówionym
* - iloczyn logiczny, spójnik „i” (AND) w naturalnym języku mówionym
~ - przeczenie „NIE”

K - kino
~K - nie kino
T - teatr
~T - nie teatr
Y - prawda, dotrzymam słowa
~Y - fałsz, kłamstwo
~(…) - nieprawda że …, nie może się zdarzyć że …

Znaczenie symboli w logice:
K, T - zmienne binarne, mogące przyjmować w osi czasu wyłącznie wartości 0 albo 1
Y - funkcja logiczna zmiennych binarnych np.
Y = K+T
Y = Kino lub (+) Teatr

Definicja zmiennej binarnej:
Zmienna binarna to zmienna mogąca przyjmować w osi czasu wyłącznie wartości 0 albo 1
Przykład:
K, T

Definicja funkcji logicznej:
Funkcja logiczna to funkcja zmiennych binarnych połączonych operatorami OR(+) lub AND(*) przyjmująca w osi czasu wyłącznie wartości 0 albo 1
Przykład:
Y=K+T

Definicja logiki dodatniej i ujemnej dla operatorów AND i OR:
Logika dodatnia (Y) to odpowiedź na pytanie kiedy dotrzymam słowa (wystąpi prawda), zaś logika ujemna (~Y) to odpowiedź na pytanie kiedy skłamię (wystąpi fałsz).
gdzie:
Y - funkcja logiczna w logice dodatniej (brak przeczenia)
~Y - funkcja logiczna w logice ujemnej (jest przeczenie)

Prawo przedszkolaka:
W dowolnej funkcji logicznej Y algebry Boole’a z operatorami AND i OR przejście do logiki przeciwnej uzyskujemy poprzez negację zmiennych i wymianę operatorów na przeciwne.

Związek logiki dodatniej z logiką ujemną opisuje równanie:
Y = ~(~Y) - prawo podwójnego przeczenia

Prawo podwójnego przeczenia:
A=~(~A)
prawda = nieprawda, że nieprawda

Dowód na przykładzie:
U= jestem uczciwy
~U = jestem nieuczciwy
U=~(~U)
Nieprawdą jest, że jestem nieuczciwy
czyli:
Jestem uczciwy = nieprawdą jest, że jestem nieuczciwy

Zasada czytania funkcji logicznej:
Wartość funkcji logicznej z operatorami AND i OR to wartość logiczna zdania:
Y =1 - prawda, dotrzymam słowa (Y - logika dodatnia)
~Y=1 - fałsz, skłamię (~Y - logika ujemna)
gdzie:
Y - zarezerwowany symbol funkcji logicznej

Znaczenie zmiennych w logice dodatniej:
Y=A*B - funkcja logiczna
gdzie:
A, B - zmienne binarne, mogące przyjmować w osi czasu wyłącznie 0 albo 1.
Zasada czytania:
Y=1 <=> A=1 i B=1
inaczej Y=0.
czyli:
Wystąpi prawda (Y=1) jeśli zajdzie A=1 i B=1
Logika dodatnia:
Y=1, ~Y=0
A=1, ~A=0
B=1, ~B=0

Znaczenie zmiennych w logice ujemnej:
Kiedy powyższa funkcja będzie fałszem (kłamstwem) ?
Przejście do logiki ujemnej metodą przedszkolaka poprzez negację zmiennych i wymianę operatorów na przeciwne:
~Y=~A+~B
Zasada czytania jest tu identyczna:
~Y=1 <=> ~A=1 lub ~B=1
inaczej ~Y=0
Czyli:
Fałsz (~Y=1) jeśli zajdzie ~A=1 lub ~B=1
Logika ujemna:
~Y=1, Y=0
~A=1, A=0
~B=1, B=0

Zauważmy, że znaczenie zmiennych w logice dodatniej jest fundamentalnie inne niż w logice ujemnej. W szczególności w operatorach AND i OR zdanie prawdziwe w logice dodatniej (Y=1) nie jest równoważne zdaniu prawdziwemu w logice ujemnej (~Y=1), czyli mamy sytuację: oba zdania prawdziwe, ale nie równoważne !

Przykład:
Jutro pójdę do kina i do teatru
Y=K*T
Matematycznie oznacza to:
A.
Dotrzymam słowa (Y), jeśli jutro pójdę do kina (K) i do teatru (T)
Y=K*T
czyli:
Y=1 <=> K=1 i T=1
Stan faktyczny pojutrze:
Y=1 - dotrzymałem słowa
K=1 - byłem w kinie
i
T=1 - byłem w teatrze

Tata, a kiedy skłamiesz ?
Przejście do logiki przeciwnej metodą przedszkolaka poprzez negacje zmiennych i wymianę operatorów.
~Y=~K+~T
B.
Skłamię (~Y), jeśli jutro nie pójdę do kina (~K) lub nie pójdę do teatru (~T)
~Y=~K+~T
czyli:
~Y=1 <=> ~K=1 lub ~T=1
Stan faktyczny pojutrze:
~Y=1 - skłamałem
~K=1 - nie byłem w kinie
lub
~T=1 - nie byłem w teatrze

Zdanie B to dla wszystkich oczywistość, wypowiadana najczęściej jako odpowiedź na pytanie dziecka (Tata, kiedy skłamiesz ?), które dopiero uczy się języka. W języku mówionym „dotrzymam słowa (Y)” jest domyślne i nie musi być wypowiadane, natomiast „skłamię (~Y)” nie jest domyślne i zawsze jest wypowiadane.

Kolejny przykład:
Jutro pójdę do kina i teatru ale nie pójdę na basen
Matematycznie oznacza to:
Dotrzymam słowa (Y), jeśli jutro pójdę do kina (K) i teatru (T) i nie pójdę na basen (~B)
Y=K*T*~B
W algebrze Kubusia zdania kodujemy metodą „piszę to co widzę”. Wszelkie przeczenia wciągamy do równania algebry Boole’a przy pomocy symbolu negacji (~).
… a kiedy skłamię ?
Przechodzimy do logiki ujemnej metodą przedszkolaka negując zmienne i wymieniając operatory na przeciwne.
~Y = ~K+~T+~(~B) = ~K+~T+B
bo:
~(~B) = B - prawo podwójnego przeczenia
czyli:
Skłamię (~Y), jeśli jutro nie pójdę do kina (~K) lub nie pójdę do teatru (~T) lub pójdę na basen (B)
~Y = ~K+~T+B

Koniec !
To jest cała matematyka w zdaniach twierdzących którą posługują się wszyscy ludzie od przedszkolaka po profesora. Absolutnie nikt nie myśli logicznie przy pomocy zer i jedynek.

Matematyka szczegółowa dla powyższych równań jest taka:
Y=K*T*~B
Czytamy zgodnie z zasadą odczytu równań w algebrze Boole’a:
Y=1 <=>K=1 i T=1 i ~B=1
inaczej Y=0
czyli:
Dotrzymam słowa (Y=1), jeśli jutro pójdę do kina (K=1) i pójdę do teatru (T=1) i nie pójdę na basen (~B)
Y=1 <=>K=1 i T=1 i ~B=1

… a kiedy skłamię ?
Przejście do logiki ujemnej poprzez negację zmiennych i wymianę operatorów:
~Y=~K+~T+B
czyli zgodnie z zasadą odczytu:
~Y=1 <=> ~K=1 lub ~T=1 lub B=1
inaczej ~Y=0
czyli:
Skłamię (~Y=1), jeśli jutro nie pójdę do kina (~K=1) lub nie pójdę do teatru (~T=1) lub pójdę na basen (B=1)
Uwaga:
Zasadę odczytu funkcji logicznej można łatwo udowodnić w „Laboratorium cyfrowych układów logicznych”.


3.2 Zdania twierdzące zdeterminowane

W algebrze Kubusia mamy:
Y - funkcja logiczna zmiennych binarnych połączonych operatorami AND i OR.
Y - zdanie prawdziwe
~Y - zdanie fałszywe

To najmniej ciekawy dział logiki, bo jak coś jest zdeterminowane, czyli ma wartość logiczną z góry znaną, to nic ciekawego nie da się z tym zrobić. Determinizmu nie można zmienić.

Przykłady:
Ziemia jest okrągła
Y=ZO - prawda (Y)
Fałsz w stosunku do powyższej prawdy uzyskujemy negując równanie dwustronnie:
~Y=~ZO
czyli:
Ziemia nie jest okrągła
~Y=~ZO - fałsz (~Y)

Wąż ma cztery nogi
~Y=W4N - fałsz (~Y)
Prawdę w stosunku do powyższego fałszu uzyskujemy negując równanie dwustronnie:
~(~Y) = ~(W4N)
czyli:
Wąż nie ma czterech nóg
Y = ~W4N - prawda (Y)

Zdania zdeterminowane złożone.

Pies ma cztery łapy, i ogon i nie miałczy
Y=4L*OG*~M - zdanie prawdziwe (Y)
Zdanie prawdziwe (Y) bo pies ma cztery łapy, i ogon i nie miałczy
Y=1 <=> 4L=1 i OG=1 i ~M=1

W algebrze Kubusia zapis matematyczny zdania to po prostu zapisywanie tego co widzimy w przełożeniu 1:1 jak wyżej. W algebrze Kubusia likwidujemy wszelkie przeczenia „NIE” zapisując je znakiem przeczenia (~) jak wyżej.

Kiedy powyższe zdanie będzie fałszywe ?

Przechodzimy do logiki przeciwnej metodą przedszkolaka negując zmienne i wymieniając operatory na przeciwne czyli:
~Y = ~4L+~OG+M
czyli:
Zdanie fałszywe (~Y) jeśli pies nie ma czterech łap lub nie ma ogona lub miałczy
~Y = ~4L+~OG+M - zdanie fałszywe (~Y)
czyli:
~Y=1 <=> ~4L=1 lub ~OG=1 lub M=1
Oczywiście zwierzę które spełnia dowolny z powyższych warunków na pewno nie jest psem.


3.3 Funkcja logiczna jednej zmiennej

Definicja:
Funkcja logiczna jednej zmiennej to zdanie twierdzące (nie implikacja) którego wartość logiczna będzie znana w przyszłości.

W tej klasie zdań twierdzących możemy wyróżnić:
A.
Bezwarunkowa obietnica:
Jutro pójdę do kina
B.
Bezwarunkowa groźba:
Jutro dostaniesz lanie
C.
Przyszłość niezależna od człowieka:
Jutro będzie padało

Wartość logiczna powyższych zdań będzie znana pojutrze, bo nikt nie zna przyszłości.


3.3.1 Bezwarunkowa obietnica

W algebrze Kubusia mamy tu:
Y - dotrzymam słowa
~Y - skłamię

Przykład:
Jutro pójdę do kina
Y=K
Matematycznie oznacza to:
A.
Dotrzymam słowa (Y) jeśli jutro pójdę do kina (K)
Y=K
Y=1 <=> K=1
Y=1 - dotrzymam słowa (stan faktyczny jutro)
K=1 - jestem w kinie (stan faktyczny jutro)

Kiedy zostanę kłamcą ?
Przechodzimy do logiki przeciwnej negując zmienne i wymieniając operatory na przeciwne (tu ich nie ma).
~Y=~K
czyli:
B.
Skłamię (~Y), jeśli jutro nie pójdę do kina (~K)
~Y=~K
~Y=1 <=> ~K=1
~Y=1 - skłamię (stan faktyczny jutro)
~K=1 - nie ma mnie w kinie (stan faktyczny jutro)

Oba te zdania są prawdziwe ale nie równoważne, bo wypowiedziane w przeciwnych logikach.
Logika dodatnia:
Y=K
Y=1, ~Y=0
K=1, ~K=0
Logika ujemna:
~Y=~K
~Y=1, Y=0
~K=1, K=0
Oczywiście zachodzi:
Y=~(~Y) - związek logiki dodatniej z logiką ujemną
oraz:
Y#~Y
czyli zdanie A to zupełnie co innego niż zdanie B.

Zero jedynkowa tabela prawdy dla powyższych zdań:
Kod:

K ~K  Y ~Y
1  0  1  0
0  1  0  1


Zauważmy, że zdanie:
Jutro pójdę do kina
Jest bezwarunkową obietnicą.

Najciekawsza matematycznie jest obietnica warunkowa (implikacja prosta =>), o której w przyszłości.

Definicja obietnicy:
Jeśli dowolny warunek to nagroda
W=>N
czyli:
Jeśli spełniony zostanie warunek nagrody to na pewno => zajdzie nagroda, poza tym wszystko może się zdarzyć.
Potocznie obietnicę możemy interpretować jako:
W=>N
Ja tego chcę, biegnę do nagrody

Przykład:
Jeśli zdasz egzamin to dostaniesz komputer
E=>K
Poza tym wszystko może się zdarzyć, czyli jak nie zdasz egzaminu to możesz nie dostać komputera, lub dostać komputer (akt miłości), wszystko zależy tu od „widzi mi się” czyli wolnej woli nadawcy.

Zauważmy, że nadawca składa obietnicę dobrowolnie, że warunek nagrody jest zwykle „szyty na miarę” odbiorcy, czyli w mniemaniu nadawcy odbiorca ma szansę spełnić warunek nagrody. Jeśli warunek nagrody zostanie spełniony to szczęśliwy będzie zarówno nadawca jak i odbiorca. Nadawca będzie miał problem gdy odbiorca nie spełni warunku nagrody. W tym przypadku nadawca ma 100% wolnej woli, cokolwiek by nie zrobił to nie ma szans zostania matematycznym kłamcą.

Dla powyższego przykładu może powiedzieć tak:
Nie zdałeś egzaminu, nie dostajesz komputera
~E~>~K
albo tak:
Nie zdałeś egzaminu, dostajesz komputer, bo cię kocham (akt miłości).
~E~~>K

Zauważmy, że w przypadku obietnicy zdanie twierdzące:
Jutro dostaniesz komputer
może być potwierdzeniem wykonania spełnionej wcześniej obietnicy, albo może być spontaniczne, wypowiedziane jako niespodzianka dla odbiorcy np. syn męczył ojca o ten komputer od roku i zawsze odpowiedź była odmowna bo brak pieniążków itp.


3.3.2 Bezwarunkowa groźba

Przykład;
Jutro dostaniesz lanie
Y=L
Matematycznie oznacza to:
A.
Dotrzymam słowa (Y), jeśli jutro dostaniesz lanie
Y=L
Y=1 <=> L=1
L=1 - jest lanie (stan faktyczny jutro)

… a kiedy skłamię ?
Negujemy dwustronnie:
czyli:
B.
Skłamię (~Y), jeśli jutro nie dostaniesz lania (~L)
~Y = ~L
~Y=1 <=> ~L=1
~L - brak lania (stan faktyczny jutro)

Oba te zdania są prawdziwe ale nie równoważne, bo wypowiedziane w przeciwnych logikach.
Logika dodatnia:
Y=L
Y=1, ~Y=0
L=1, ~L=0
Logika ujemna:
~Y=~L
~Y=1, Y=0
~L=1, L=0
Oczywiście zachodzi:
Y=~(~Y) - związek logiki dodatniej z logiką ujemną
oraz:
Y#~Y
czyli zdanie A to zupełnie co innego niż zdanie B.

Zauważmy że zdanie:
Jutro dostaniesz lanie
jest na pewno wyrwane z kontekstu, czyli wcześniej musiał zostać spełniony warunek lania, oczywiście nie wiemy jaki. Trudno sobie bowiem wyobrazić, aby zdrowy psychicznie człowiek nagle i bez powodu wypowiedział groźbę bezwarunkową przez zaskoczenie.

Groźba w formie zdania twierdzącego może być potwierdzeniem zamiaru wykonania kary na którą odbiorca zasłużył sobie wcześniej, co nie oznacza że nadawca nie może zrezygnować z wykonania kary na sekundę przed jej egzekucją na podstawie definicji groźby, oczywiście może i nie ma szans na zostanie kłamcą.

Definicja groźby:
Jeśli dowolny warunek to kara
W~>K
Matematycznie oznacza to że jeśli warunek kary zostanie spełniony, to nadawca może wykonać karę albo ją darować (akt łaski)
Potocznie groźbę można interpretować jako:
~> - ja tego nie chcę, uciekam od kary

… a jeśli warunek kary nie zostanie spełniony ?
Prawo Kubusia:
W~>K = ~W=>~K
czyli:
Jeśli nie spełnisz warunku kary to na pewno => nie zostaniesz ukarany z powodu że nie spełniłeś warunku kary, wszystko inne może się zdarzyć. Tylko tyle i aż tyle gwarantuje operator implikacji odwrotnej ~>.

Przykład:
Jeśli ubrudzisz spodnie dostaniesz lanie
B~>L
Matematycznie oznacza to:
Jeśli ubrudzisz spodnie to możesz ~> dostać lanie
B~>L
LUB
Jeśli ubrudzisz spodnie to możesz ~~> nie dostać lania
B~~>~L
… a jeśli nie ubrudzę spodni ?
Prawo Kubusia:
B~>L = ~B=>~L
czyli:
Jeśli nie ubrudzisz spodni to na pewno => nie dostaniesz lania
~B=>~L
z powodu że nie ubrudziłeś spodni, wszystko inne może się zdarzyć.


3.3.3 Przyszłość niezależna od człowieka

W algebrze Kubusia mamy tu:
Y - zgadłem
~Y - nie zgadłem

Przykład:
Jutro będzie padało
Y=P
Oczywiście jeśli jutro będzie padało to mogę powiedzieć że:
Zgadłem (Y), właśnie pada
Y=P
… natomiast jeśli jutro nie będzie padało to mogę powiedzieć:
Nie zgadłem (~Y), wczoraj nie padało (~P)
~Y=~P
… a przecież miało padać bo tak mówili w prognozie pogody :(


3.4 Funkcja logiczna dwu zmiennych - suma logiczna

Oczywiście zajmiemy się tu najciekawszym, czyli obietnicą wypowiedzianą w formie zdania twierdzącego.

Jutro pójdę do kina lub do teatru
Y=K+T
czyli matematycznie:
Dotrzymam słowa (Y), jeśli jutro pójdę do kina(K) lub do teatru(T)
Y=K+T

… a kiedy skłamię ?
Skłamię (~Y) jeśli jutro nie pójdę do kina(~K) i nie pójdę do teatru(~T)
~Y = ~K*~T
Zatrudniliśmy tu aparat matematyczny wbudowany w mózg każdego człowieka.

… czy może się zdarzyć, że jutro nie pójdę do kina i nie pójdę do teatru ?
Negujemy powyższe równanie dwustronnie i mamy odpowiedź:
Nie może się zdarzyć, że jutro nie pójdę do kina i nie pójdę do teatru
Y=~(~K*~T)

Ostatnie zdanie wynika też z prawa de’Morgana dla sumy logicznej.
A.
Y=K+T
B.
~Y=~K*~T
C.
Y=~(~Y) - prawo podwójnego przeczenia
Stąd po podstawieniu A i B do C mamy prawo de’Morgana:
K+T = ~(~K*~T) - prawo zamiany operatora OR(+) na AND(*)

Czyli zdanie równoważne do A będzie brzmiało:
Nie może się zdarzyć ~(…), że jutro nie pójdę do kina i nie pójdę do teatru
~(~K*~T) = K+T
Ostatnie zdanie używane jest niezwykle rzadko. Nasz mózg optymalizuje odpowiedzi, czyli jeśli to samo można wyrazić prościej to preferuje tą odpowiedź (tu K+T)


3.5 Funkcja logiczna dwu zmiennych - iloczyn logiczny

Jutro pójdę do kina i do teatru
Y=K*T
czyli matematycznie:
Dotrzymam słowa (Y) jeśli jutro pójdę do kina(K) i do teatru(T)

… a kiedy skłamię ?
Skłamię (~Y), jeśli jutro nie pójdę do kina(~K) lub nie pójdę do teatru(~T)
~Y = ~K+~T

… a czy może się zdarzyć, że jutro nie pójdę do kina lub nie pójdę do teatru ?
Negujemy powyższe równanie dwustronnie i mamy odpowiedź:
Nie może się zdarzyć ~(…), że jutro nie pójdę do kina(~K) lub nie pójdę do teatru(~T).
Y=~(~K+~T)

Oczywiście ostatnie zdanie wynika też z prawa de’Morgana dla sumy logicznej.
Mamy wyżej:
A.
Y=K*T
B.
~Y=~K+~T
Prawo podwójnego przeczenia:
C.
Y=~(~Y)
Podstawiając A i B do C mamy prawo de’Morgana:
K*T = ~(~K+~T) - prawo zamiany operatora AND(*) na OR(+)


3.6 Logika dodatnia i ujemna w operatorach AND i OR

Popatrzmy jeszcze raz na matematykę, którą posługuje się każdy przedszkolak.

Jutro pójdę do kina lub do teatru
Y=K+T
Matematycznie:
Dotrzymam słowa (Y) jeśli jutro pójdę do kina lub do teatru.
Y=K+T
… a kiedy skłamię ?
Skłamię (~Y) jeśli jutro nie pójdę do kina i nie pójdę do teatru
~Y = ~K*~T

Koniec !
To jest cała matematyka, którą każdy człowiek od przedszkolaka po profesora używa milion razy na dobę. Jak widać mózg przedszkolaka na pytanie „Kiedy skłamię ?” odpowiada w logice ujemnej.

Definicja logiki dodatniej i ujemnej dla operatorów AND i OR:
Logika dodatnia (Y) to odpowiedź na pytanie kiedy dotrzymam słowa (wystąpi prawda), zaś logika ujemna (~Y) to odpowiedź na pytanie kiedy skłamię (wystąpi fałsz).
gdzie:
Y - funkcja logiczna w logice dodatniej (brak przeczenia)
~Y - funkcja logiczna w logice ujemnej (jest przeczenie)

Związek logiki dodatniej z logika ujemną opisuje równanie:
Y = ~(~Y) - prawo podwójnego przeczenia

Nietrudno zauważyć, jak mózg dziecka przechodzi z logiki dodatniej (Y) do logiki ujemnej (~Y), po prostu neguje wszystkie zmienne i wymienia operator na przeciwny. Nietrudno też się domyśleć, że to jest poprawny sposób przejścia do logiki ujemnej dla dowolnie długiej funkcji logicznej.

Metoda przedszkolaka:
Przejście z logiki dodatniej (Y) do ujemnej (~Y) lub odwrotnie uzyskujemy negując wszystkie zmienne i wymieniając operatory na przeciwne.

Przykład:
A.
Y=A+(~B*C)
Przejście do logiki ujemnej poprzez negację zmiennych i wymianę operatorów na przeciwne:
B.
~Y = ~A*(B+~C)
Oczywiście zachodzi:
C.
Y=~(~Y) - prawo podwójnego przeczenia

Podstawiając A i B do C mamy prawo de’Morgana.
A+(~B*C) = ~[~A*(B+~C)]

Łatwo zauważyć, że z prawa de’Morgana mózg dziecka praktycznie nigdy nie korzysta … chyba że w fazie poznawania języka, kiedy to dwulatek zadaje wszelkie możliwe pytania.

Popatrzmy na to jeszcze raz, delektując się genialną matematyką która posługuje się każde dziecko.
Jutro pójdę do kina lub do teatru
Y=K+T
Matematycznie:
Dotrzymam słowa (Y) jeśli jutro pójdę do kina lub do teatru.
Y=K+T
… a kiedy skłamię ?
Przejście do logiki ujemnej poprzez negacje zmiennych i wymianę operatorów na przeciwne:
Skłamię (~Y) jeśli jutro nie pójdę do kina i nie pójdę do teatru
~Y = ~K*~T

Już dziecko pięcioletnie nie będzie zadawało więcej pytań bo wszystko jest jasne, trzylatek może jednak kontynuować.

… a czy może się zdarzyć, że jutro nie pójdę do kina i nie pójdę do teatru ?
Ostatnie zdanie w dialogu:
~Y=~K*~T
Negujemy dwustronnie i mamy odpowiedź na temat, czyli zgodną z zadanym pytaniem.
Y=~(~K*~T)
Nie może się zdarzyć ~(…), że jutro nie pójdę do kina i nie pójdę do teatru

Na powyższe pytanie można odpowiedzieć inaczej:
Jutro na pewno pójdę do kina lub do teatru
Y=K+T
Jednak nie będzie to ścisła odpowiedź na zadane pytanie, dlatego mało kto tak odpowie.


3.7 Definicja sumy logicznej

Powyżej użyliśmy niezawodnego aparatu matematycznego, mózgu 5-cio latka, do rozszyfrowania operatorów OR(+) i AND(*). Oczywiście w matematyce nie operujemy na przykładach, lecz na zapisach formalnych. Powszechnie przyjętym zwyczajem jest, że zmienne formalne w algebrze Boole’a oznaczamy literkami p i q. Dla konkretnego przypadku pod zmienne formalne p i q podstawiamy zmienne aktualne.

Y=p+q - formalny zapis sumy logicznej
Jutro pójdę do kina lub do teatru.
Y=K+T - aktualny zapis sumy logicznej

Definicja sumy logicznej:
Suma logiczna n-zmiennych binarnych jest równa zeru wtedy i tylko wtedy gdy wszystkie składniki sumy są równe zeru
Y = A1+A2+… An =0 <=> A1=0, A2=0 …An=0

Definicja równoważna:
Suma logiczna n-zmiennych binarnych jest równa jeden gdy którakolwiek ze zmiennych jest równa jeden.

Zajrzyjmy ponownie do przedszkola ….

Pani do dzieci w przedszkolu:
Słuchajcie dzieci, obiecuję wam że jutro pójdziemy do kina lub do teatru
Y=K+T

Które z was powie mi kiedy dotrzymam słowa ?

Jutro pójdziemy do kina lub do teatru
Y=K+T
Odpowiedzi 5-cio letniego Jasia zapiszemy w formie tabeli:
K*T = Y - dotrzymam słowa (Y) jeśli pójdziemy do kina i do teatru
K*~T =Y - dotrzymam słowa (Y) jeśli pójdziemy do kina i nie pójdziemy do teatru
~K*T =Y - dotrzymam słowa (Y) jeśli nie pójdziemy do kina i pójdziemy do teatru

Oczywiście wyłącznie jeden z powyższych przypadków może jutro wystąpić, czyli używamy definicji sumy logicznej aby z powyższego wygenerować równanie algebry Boole’a.
Y=K*T + K*~T + ~K*T
Pani dotrzyma słowa wtedy i tylko wtedy gdy wystąpi którykolwiek z powyższych przypadków.

Bardzo dobrze Jasiu, a teraz które z was powie kiedy skłamię ?
Zuzia:
Pani skłamie (~Y) jeśli jutro nie pójdziemy do kina i nie pójdziemy do teatru
~K*~T =~Y

Zauważmy, że wyżej mamy zapisane wszystkie przypadki dla zmiennych K i T jakie w przyszłości mogą wystąpić. Możemy to nazwać „matrycą przyszłości”, nic poza tą matrycą nie ma prawa się wydarzyć.

Zapiszmy to wszystko razem w formie tabeli:
Kod:

 K  T = Y
 K ~T = Y
~K  T = Y
~K ~T =~Y

Oczywiście w matematyce nie operujemy na przykładach, lecz na zapisach formalnych.

Przyjmijmy zatem:
p=K i q=T
i przepiszmy powyższą tabelkę.
Kod:

 p  q = Y=p+q
 p  q = Y
 p ~q = Y
~p  q = Y
~p ~q =~Y

Do tej pory analizujemy sobie poczynania mózgu 5-cio latka w postaci symbolicznej. Nadszedł czas, aby z powyższego zapisu symbolicznego wygenerować kod maszynowy czyli definicje zero-jedynkową sumy logicznej.

Przyjmujemy logikę dodatnią:
p=1, ~p=0
q=1, ~q=0
Y=1, ~Y=0
i mamy to co fanatycy zer i jedynek lubią najbardziej.

Definicja zero-jedynkowa sumy logicznej:
Kod:

Tabela A
p q  Y=p+q
1 1 =1
1 0 =1
0 1 =1
0 0 =0

Mamy wyżej tabelę prawdy dla sumy logicznej:
Y=p+q - dotrzymam słowa (Y)
… a kiedy skłamię ?
Przechodzimy do logiki ujemnej metodą przedszkolaka negując zmienne i wymieniając operatory na przeciwne:
~Y = ~p*~q - skłamię (~Y)
Widać, że aby otrzymać zero-jedynkową tabele prawdy dla logiki ujemnej należy zanegować zmienne w tabeli A i zastosować definicję iloczynu logicznego.

Definicja zero-jedynkowa iloczynu logicznego:
Kod:

Tabela B
p q  Y=p*q
1 1 =1
1 0 =0
0 1 =0
0 0 =0


Na podstawie powyższego tworzymy kompletną tabelę prawdy dla logiki dodatniej i ujemnej dla dwu zmiennych p i q.
Kod:

Tabela C
p q  Y=p+q ~Y=~(p+q) ~p ~q ~Y=~p*~q Y=~(~p*~q)=p+q
1 1 =1      0         0  0  0       1
1 0 =1      0         0  1  0       1
0 1 =1      0         1  0  0       1
0 0 =0      1         1  1  1       0

Oczywiście zachodzi:
Y#~Y
oraz:
Y=~(~Y)
co widać jak na dłoni.

Z powyższej tabeli mamy:
Y=Y
czyli:
p+q = ~(~p*~q) - prawo de’Morgana wynikłe z równości operatorów w logice dodatniej (Y)
~Y=~Y
czyli:
~(p+q) = ~p*~q - prawo de’Morgana wynikłe z równości operatorów w logice ujemnej (~Y)

Zauważmy, że w powyższej tabeli mamy pełną zgodność z definicją logiki dodatniej i ujemnej.
W logice dodatniej (Y=1) mamy odpowiedź na pytanie kiedy wystąpi prawda (dotrzymam słowa), zaś w logice ujemnej (~Y=1) mamy odpowiedź na pytanie kiedy wystąpi fałsz (skłamię).

W tabeli widać też znaczenie kolumny wynikowej w logice dodatniej (Y):
Y=1 - dotrzymam słowa
Y=0 - skłamię
Znaczenie kolumny wynikowej w logice ujemnej (~Y):
~Y=1 - skłamię
~Y=0 - dotrzymam słowa
gdzie:
skłamię = fałsz = nie dotrzymam słowa
Dotrzymam słowa = prawda

Matematycznie wszystko musi się zgadzać czyli:
Logika ujemna:
~Y=1 - skłamię
~Y=0 - dotrzymam słowa
Odpowiednik w logice dodatniej:
Y=~(~Y) =~(~Y=0) =~(0)=1 - dotrzymam słowa w logice dodatniej
Y=~(~Y)=~(~Y=1)=~(1)=0 - skłamię w logice dodatniej

Matematycznie zachodzi:
Y=~(~Y) - prawo podwójnego przeczenia
oraz:
Y#~Y
czyli jedynka w logice dodatniej (Y=1) to zupełnie co innego niż jedynka w logice ujemnej (~Y=1).

Z powyższego powodu operowanie w logice bezwzględnymi zerami i jedynkami jest bez sensu. Poprawna logika matematyczna powinna być niezależna od idiotycznych zer i jedynek.

Analiza tego przykładu w algebrze Kubusia jest następująca.

Pani do dzieci:
Jutro pójdziemy do kina lub do teatru
Y=K+T
Matematycznie oznacza to:
Dotrzymam słowa (Y), jeśli jutro pójdziemy do kina (K) lub do teatru (T)
… a kiedy Pani skłamie ?
Przejście do logiki ujemnej metodą przedszkolaka poprzez negację zmiennych i wymianę operatorów na przeciwne.
~Y=~K*~T
Matematycznie oznacza to:
Skłamię (~Y), jeśli jutro nie pójdziemy do kina (~K) i nie pójdziemy do teatru (~T)
~Y=~K*~T

Koniec !
To jest cała matematyka 5-cio latka.

Szczegółowa analiza matematyczna powyższych zdań w algebrze Kubusia:

Logika dodatnia:
Jutro pójdziemy do kina lub do teatru
Y=K+T
Zgodnie z zasadą odczytu funkcji logicznej mamy:
Y=1 <=> K=1 lub T=1
czyli:
Pani dotrzyma słowa (Y=1), jeśli jutro pójdziemy do kina (K=1) lub pójdziemy do teatru (T=1)

… a kiedy Pani skłamie ?
Przejście do logiki ujemnej zgodnie z prawem prosiaczka czyli negujemy zmienne i wymieniamy operatory na przeciwne
~Y = ~K*~T

Logika ujemna:
Pani skłamie, jeśli jutro nie pójdziemy do kina i nie pójdziemy do teatru
~Y=~K*~T
Zgodnie z zasadą odczytu funkcji logicznej mamy:
~Y=1 <=> ~K=1 i ~T=1
czyli:
Pani skłamie (~Y=1), jeśli jutro nie pójdziemy do kina (~K=1) i nie pójdziemy do teatru (~T=1)

Przejście z logiki 5-cio latka do odpowiednich tabel zero-jedynkowych to absolutny banał … zrobiliśmy to wyżej.

Na zakończenie utwórzmy kompletną tabelę prawdy dla logiki ujemnej czyli dla zdania wyżej.

Skłamię (~Y), jeśli jutro nie pójdziemy do kina (~K) i nie pójdziemy do teatru (~T)
~Y = ~K*~T
… a kiedy dotrzymam słowa ?
Przejście do logiki przeciwnej metoda przedszkolaka czyli negujemy zmienne i wymieniamy operatory na przeciwne:
Y=K+T
Dotrzymam słowa (Y), jeśli jutro pójdziemy do kina lub do teatru
Y=K+T

Na podstawie powyższego budujemy tabelę zero-jedynkową:
Kod:

Tabela D
~K ~T ~Y=~K*~T  Y=~(~K*~T)  K  T  Y=K+T   ~Y=~(K+T)=~K*~T
 1  1 =1        0           0  0  0       1
 1  0 =0        1           0  1  1       0
 0  1 =0        1           1  0  1       0
 0  0 =0        1           1  1  1       0

Oczywiście matematycznie zachodzi:
Y=Y
czyli:
K+T = ~(~K*~T) - prawo de’Morgana wynikłe z równości operatorów w logice dodatniej (Y)
oraz:
~Y=~Y
czyli:
~(K+T) = ~K*~T - prawo de’Morgana wynikłe z równości operatorów w logice ujemnej (~Y)

Zauważmy, że powyższa tabela zero-jedynkowa wyniknęła z równań algebry Boole’a, z naturalnej logiki człowieka, nigdy odwrotnie.
A.
Skłamię (~Y), jeśli jutro nie pójdziemy do kina (~K) i nie pójdziemy do teatru (~T)
~Y = ~K*~T
… a kiedy dotrzymam słowa ?
Przejście do logiki przeciwnej metoda przedszkolaka czyli negujemy zmienne i wymieniamy operatory na przeciwne:
Y=K+T
B.
Dotrzymam słowa (Y), jeśli jutro pójdziemy do kina lub do teatru
Y=K+T
Oczywiście matematycznie zachodzi:
C.
Y=~(~Y)
Podstawiając A i B do C mamy prawo de’Morgana.
K+T = ~(~K*~T)
W algebrze Boole’a zachodzi też:
D.
~Y = ~(Y) - logika ujemna to zanegowana logika dodatnia
Podstawiając A i B do D mamy:
~K*~T = ~(K+T) - prawo de’Morgana


3.8 Prawo Prosiaczka

Prawo Prosiaczka mówi o sposobie przejścia z tabeli zero-jedynkowej n-elementowej do równania algebry Boole’a opisującego tą tabelę.

Definicja zero-jedynkowa sumy logicznej:
Kod:

p q  Y=p+q
1 1 =1
1 0 =1
0 1 =1
0 0 =0


Kubuś, nauczyciel logiki w I klasie LO w stumilowym lesie:
Kto potrafi z powyższej tabeli zero-jedynkowej wygenerować równanie algebry Boole’a ?

Wszystkie ręce w górze, do tablicy podchodzi Jaś:
W ostatniej linii w wyniku mamy samotne zero, zatem dla tej linii możemy zapisać najprostsze równanie.

Z tabeli widzimy że:
A.
Y=0 <=> p=0 i q=0
Przejście z takiego zapisu do równań algebry Boole’a jest banalne. Należy skorzystać z definicji iloczynu logicznego sprowadzając wszystkie zmienne do jedynki albo z definicji sumy logicznej sprowadzając wszystkie zmienne do zera.

Sposób I.
Sprowadzam wszystkie zmienne do jedynki:
B.
Y=0 czyli ~Y=1
p=0 czyli ~p=1
q=0 czyli ~q=1

Definicja iloczynu logicznego:
Iloczyn logiczny jest równy jeden wtedy i tylko wtedy gdy wszystkie zmienne są równe jeden.

Korzystając z A i B na podstawie tej definicji mamy:
~Y = ~p*~q
Przechodzimy do logiki przeciwnej metodą przedszkolaka negując wszystkie zmienne i wymieniając operator AND(*) na OR(+):
Y = p+q

Sposób II
Sprowadzamy wszystkie zmienne do zera i stosujemy definicję sumy logicznej.

Definicja sumy logicznej:
Suma logiczna jest równa zeru wtedy i tylko wtedy gdy wszystkie składniki sumy są równe zeru

W równaniu A wszystkie zmienne są równe zeru, zatem tu nic nie musimy robić, od razu mamy równanie algebry Boole’a dla powyższej tabeli zero-jedynkowej.
Y=p+q

Kubuś:
Jasiu, zapisałeś równanie algebry Boole’a wyłącznie dla ostatniej linii, skąd wiesz jakie będą wartości logiczne w pozostałych liniach, nie opisanych tym równaniem ?

Prawo Prosiaczka:
Równania algebry Boole’a dla dowolnej tabeli zero-jedynkowej n-elementowej tworzymy na podstawie linii z tą samą wartością logiczną w wyniku. Wszelkie nie opisane równaniami linie przyjmą wartości przeciwne do linii opisanych.

Powyżej ułożyliśmy równanie wyłącznie dla ostatniej linii tabeli gdzie w wyniku było zero, wszelkie pozostałe linie, zgodnie z prawem Prosiaczka muszą być jedynkami niezależnie od chciejstwa człowieka … bo to jest matematyka przecież.


3.9 Definicja iloczynu logicznego

Definicja iloczynu logicznego:
Iloczyn logiczny jest równy jeden wtedy i tylko wtedy gdy wszystkie zmienne są równe jeden.
Y=A1*A2* … *An =1 <=> A1=1, A2=1 … An=1

Definicja równoważna:
Iloczyn logiczny jest równy zeru jeśli którakolwiek zmienna jest równa zeru.

Jutro pójdę do kina i do teatru
Y=K*T
Matematycznie:
Dotrzymam słowa (Y) jeśli jutro pójdę do kina i do teatru
Y=K*T
… a kiedy skłamię ?
Przejście do logiki ujemnej metodą przedszkolaka, negujemy zmienne i wymieniamy operator.
Skłamię (~Y) jeśli jutro nie pójdę do kina lub nie pójdę teatru
~Y=~K+~T

Oczywiście dotrzymam słowa wtedy i tylko wtedy gdy pójdę do kina i do teatru, w przeciwnym przypadku skłamię. Rozpiszmy szczegółowo te przypadki.
K*T=Y - dotrzymam słowa (Y) jeśli pójdę do kina i do teatru
W przeciwnym przypadku skłamię (~Y) czyli uzupełniamy pozostałe możliwości:
K*~T=~Y - skłamię (~Y) jeśli pójdę do kina i nie pójdę do teatru
~K*~T=~Y - skłamię (~Y) jeśli nie pójdę do kina i nie pójdę do teatru
~K*T =~Y - skłamię (~Y) jeśli nie pójdę do kina i pójdę do teatru

Oczywiście skłamię jeśli wystąpi którykolwiek z powyższych przypadków czyli:
~Y = K*~T + ~K*~T + ~K*T
Na podstawie powyższego budujemy tabelę prawdy dla iloczyny logicznego
Kod:

 K  T = Y=K*T
 K  T = Y
 K ~T =~Y
~K ~T =~Y
~K  T =~Y

Przechodzimy teraz na zapis symboliczny przy użyciu parametrów formalnych p i q podstawiając:
p=K, q=T
stąd mamy symboliczną definicje iloczynu logicznego:
Kod:

 p  q = Y=p*q
 p  q = Y
 p ~q =~Y
~p ~q =~Y
~p  q =~Y

Zauważmy, że tu również uzyskaliśmy pełną definicję iloczynu logicznego na poziomie symbolicznym czyli absolutne zero styczności z kodem maszynowym, zerami i jedynkami.

Równania algebry Boole’a najłatwiej utworzyć korzystając z definicji symbolicznej.

Z pierwszej linii otrzymujemy najprostsze równanie:
A1.
Y=p*q - dotrzymam słowa
Z kolejnych trzech linii mamy:
B1.
~Y=(p*~q) + (~p*~q) + (~p*q) - skłamię

W sumie na podstawie powyższych równań możemy ułożyć aż osiem różnych zdań, cztery z nich (matematycznie równoważne) będą mówiły kiedy dotrzymam słowa (Y), zaś kolejne cztery (także równoważne) kiedy skłamię (~Y).
A1.
Y=p*q - dotrzymam słowa
Dotrzymam słowa (Y), jeśli jutro pójdę do kina i do teatru
Y=K*T
Negujemy równania dwustronnie:
A2.
~Y=~(p*q) - skłamię
Skłamię (~Y), jeśli nie zdarzy się ~(…) że jutro pójdę do kina i do teatru
~Y=~(K*T)
Przechodzimy z równaniem A1 do logiki ujemnej metodą przedszkolaka negując zmienne i wymieniając operatory na przeciwne:
A3.
~Y=~p+~q - skłamię
Skłamię (~Y), jeśli jutro nie pójdę do kina lub nie pójdę do teatru
~Y=~K+~T
Negujemy dwustronnie równanie A3:
A4.
Y=~(~p+~q) - dotrzymam słowa
Dotrzymam słowa (Y), jeśli nie zdarzy się ~(…) że jutro nie pójdę do kina lub nie pójdę do teatru
Y=~(~K+~T)

To co wyżej to najczęstsze zdania w języku mówionym. Zdania serii B są zdecydowanie rzadsze bo bardziej złożone.
B1.
~Y=(p*~q) + (~p*~q) + (~p*q) - skłamię
~Y=(K*~T)+(~K*~T)+(~K*T)
Skłamię (~Y), jeśli zdarzy się którykolwiek z powyższych przypadków.
Negujemy dwustronnie:
B2.
Y=~[(p*~q) + (~p*~q) + (~p*q)] - dotrzymam słowa
Przechodzimy z równaniem B1 do logiki przeciwnej negując zmienne i wymieniając operatory na przeciwne:
B3.
Y=(~p+q)*(p+q)*(p+~q) - dotrzymam słowa
Negujemy dwustronnie:
B4.
~Y=~[(~p+q)*(p+q)*(p+~q)] - skłamię

W sumie mamy fantastyczną właściwość języka mówionego czyli powiedzenie tego samego na wiele różnych sposobów. Zauważmy, że nigdzie wyżej nie mamy styczności z kodem maszynowym języka czyli idiotycznymi zerami i jedynkami. Taki związek oczywiście istnieje i jest łatwy do pokazania.

Przechodzimy do zero-jedynkowej definicji iloczynu logicznego w logice dodatniej przyjmując:
p=1, ~p=0
q=1, ~q=0
Y=1, ~Y=0

Zero jedynkowa definicja iloczynu logicznego:
Kod:

Tabela A
p q  Y=p*q
1 1 =1
1 0 =0
0 0 =0
0 1 =0

Mamy wyżej tabelę prawdy dla iloczynu logicznego:
Y=p*q - dotrzymam słowa (Y)
… a kiedy skłamię ?
Przechodzimy do logiki ujemnej metodą przedszkolaka negując zmienne i wymieniając operatory na przeciwne:
~Y = ~p+~q - skłamię (~Y)
Widać, że aby otrzymać zero-jedynkową tabelę prawdy dla logiki ujemnej (~Y) należy zanegować zmienne w tabeli A i zastosować definicję sumy logicznej. Uzupełnijmy zatem powyższą tabelkę.
Kod:

Tabela B
p q  Y=p*q ~Y=~(p*q) ~p ~q ~Y=~p+~q Y=~(~p+~q)=p*q
1 1 =1      0         0  0  0       1
1 0 =0      1         0  1  1       0
0 1 =0      1         1  0  1       0
0 0 =0      1         1  1  1       0

Oczywiście zachodzi:
Y#~Y
oraz:
Y=~(~Y)
co widać jak na dłoni.

Z powyższej tabeli mamy:
Y=Y
czyli:
p*q = ~(~p+~q) - prawo de’Morgana wynikłe z równości operatorów w logice dodatniej (Y)
oraz:
~Y=~Y
~(p*q) = ~p+~q - prawo de’Morgana wynikłe z równości operatorów w logice ujemnej (~Y)

Zauważmy, że w powyższej tabeli mamy pełną zgodność z definicją logiki dodatniej i ujemnej.
W logice dodatniej (Y=1) mamy odpowiedź na pytanie kiedy wystąpi prawda (dotrzymam słowa), zaś w logice ujemnej (~Y=1) mamy odpowiedź na pytanie kiedy wystąpi fałsz (skłamię).

W tabeli widać też znaczenie kolumny wynikowej w logice dodatniej (Y):
Y=1 - dotrzymam słowa
Y=0 - skłamię
Znaczenie kolumny wynikowej w logice ujemnej (~Y):
~Y=1 - skłamię
~Y=0 - dotrzymam słowa
gdzie:
skłamię = fałsz = nie dotrzymam słowa
Dotrzymam słowa = prawda

Matematycznie wszystko musi się zgadzać czyli:
Y=~(~Y) =~(0)=1 - dotrzymam słowa w logice dodatniej
Y=~(~Y)=~(1) = 0 - skłamię w logice dodatniej

Matematycznie zachodzi:
Y=~(~Y) - prawo podwójnego przeczenia
oraz:
Y#~Y
czyli jedynka w logice dodatniej (Y=1) to zupełnie co innego niż jedynka w logice ujemnej (~Y=1).

Z powyższego powodu operowanie w logice bezwzględnymi zerami i jedynkami jest bez sensu. Poprawna logika matematyczna powinna być niezależna od idiotycznych zer i jedynek.

ciąg dalszy na kolejnej stronie …


Ostatnio zmieniony przez rafal3006 dnia Śro 9:33, 22 Gru 2010, w całości zmieniany 48 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
rafal3006
Opiekun Forum Kubusia



Dołączył: 30 Kwi 2006
Posty: 35532
Przeczytał: 15 tematów

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

PostWysłany: Sob 9:48, 16 Sty 2010    Temat postu:

4.0 Logika dodatnia i ujemna w bramkach logicznych

Podstawowe pojęcia w teorii układów logicznych.

Sygnał cyfrowy (zmienna binarna) to sygnał mogący przyjmować w osi czasu wyłącznie dwa stany 0 albo 1.
Wyjście cyfrowe (funkcja logiczna) to wyjście układu logicznego, dowolnie złożonego, zbudowanego z bramek logicznych typu OR(+) lub AND(*) oraz negatorów.

Bramki logiczne to domena elektroników logików. Już na pierwszym wykładzie z „Teorii układów logicznych” dowiadujemy się, że w dowolną linię układu logicznego zbudowanego na bramkach logicznych możemy wstawić dwa negatory (na schemacie kółka) i nic się nie zmieni zgodnie z prawem podwójnego przeczenia.
A=~(~A)
Kod:

Negator i prawo podwójnego przeczenia
Y=A   ->  ~Y=~A   ->   Y=~(~A)=A
-----O-------------O---------

Na wejście negatora (na schematach kółko) podajemy sygnał A, na jego wyjściu otrzymujemy sygnał zanegowany ~A który podajemy na kolejny negator. Po drugim negatorze mamy oczywiście sygnał cyfrowy identyczny z A zgodnie z prawem podwójnego przeczenia.

Po drugim wykładzie wiemy już jak zastąpić bramkę OR(+) bramką AND(*) i odwrotnie. Tu korzystamy z praw de’Morgana.
p*q = ~(~p+~q) - prawo zamiany bramki AND(*) na OR(+)
p+q = ~(~p*~q) - prawo zamiany bramki OR(+) na AND(*)

Przy pomocy negatora możemy symbolicznie pokazać obsługę zdań prostych.

Jutro nie pójdę do kina
Y=~K
czyli matematycznie:
Dotrzyma słowa (Y), jeśli jutro nie pójdę do kina
Y=~K
Kiedy skłamię ?
Negujemy dwustronnie.
Skłamię (~Y), jeśli jutro pójdę do kina
~Y=~(~K)=K
Zastosowaliśmy tu prawo podwójnego przeczenia K=~(~K)
Kod:
 
               -------
               |     |                 
Y=~K ----------|  ~  |O----------> ~Y=K
               |     |
               -------

W technice cyfrowej symbolem negacji jest kółko, nie musimy rysować całego negatora jak wyżej. Ze schematu widać że, na wejście negatora podajemy sygnał (funkcję logiczną) Y=~K, zaś na wyjściu otrzymujemy sygnał zanegowany ~Y=K.
Oczywiście mamy:
Y#~Y
czyli sygnał na wejściu negatora to zupełnie co innego niż sygnał na jego wyjściu.

Łatwo się o tym przekonać biorąc do ręki rzeczywisty negator np. układ scalony 7404. Jeśli na wejście rzeczywistego negatora podamy cyfrowy sygnał zero-jedynkowy (zmienny w czasie) to na jego wyjściu otrzymamy lustrzane odbicie sygnału wejściowego, co łatwo można zaobserwować na oscyloskopie, przyrządzie służącym do wizualizacji przebiegów zmiennych.

Zwarcie kabelkiem wejścia negatora z wyjściem, czyli wymuszenie:
Y=~Y
grozi oczywiście wybuchem czyli dużo dymu i smrodu.

Podstawowe schematy elektroniczne bramek OR(+) i AND(*) są następujące.
Kod:

Bramka OR i jej schemat zastępczy wynikający z prawa de’Morgana
 p   q       p   q
 |   |       |   |
 |   |       O   O
-------     -------
|     |  =  |     |
| OR  |     | AND |
-------     -------
   |           O
   |           |
   Y=p+q   =   Y=~(~p*~q)

Z powyższego wynika, że bramkę OR możemy zastąpić bramką AND plus trzema negatorami wstawionymi w linie wejściowe p i q oraz linię wyjściową Y.
Kod:

Bramka AND i jej schemat zastępczy wynikający z prawa de’Morgana
 p   q       p   q
 |   |       |   |
 |   |       O   O
-------     -------
|     |  =  |     |
| AND |     | OR  |
-------     -------
   |           O
   |           |
   Y=p*q   =   Y=~(~p+~q)

Podobnie bramkę AND możemy zastąpić bramką OR plus trzema negatorami. Fizycznie oznacza to, że możemy zbudować dwa układy jak wyżej (w technice cyfrowej to banał) a następnie połączyć sygnały p-p, q-q, Y-Y i wszystko będzie dalej pięknie działało.


4.1 Prawa de’Morgana w bramkach logicznych

Na początku była funkcja:
Y=p*q
Przejście do logiki ujemnej metodą przedszkolaka poprzez negację zmiennych i wymianę operatorów na przeciwne.
~Y = ~p+~q

Definicja logiki dodatniej i ujemnej dla operatorów AND i OR:
Logika dodatnia (Y) to odpowiedź na pytanie kiedy dotrzymam słowa (wystąpi prawda), zaś logika ujemna (~Y) to odpowiedź na pytanie kiedy skłamię (wystąpi fałsz).

Związek logiki dodatniej z logiką ujemną opisuje równanie:
Y = ~(~Y) - prawo podwójnego przeczenia

Powróćmy jeszcze raz do dowodu praw de’Morgana uwzględniającego logikę dodatnią i ujemną by zobaczyć to wszystko w bramkach logicznych.
Kod:

p q Y=p*q ~Y=~(p*q) ~p ~q ~Y=~p+~q Y=~(~p+~q)
1 1 1      0         0  0  0       1
1 0 0      1         0  1  1       0
0 0 0      1         1  1  1       0
0 1 0      1         1  0  1       0

Równość kolumn trzeciej i ostatniej jest dowodem poprawności prawa de’Morgana.
Y=Y
czyli:
p*q = ~(~p+~q)
Ten sam dowód krok po kroku w bramkach logicznych.

Na początku była bramka AND(*) ….
Kod:

 p   q       p   q         p   q
 |   |       |   |         |   |
 |   |       O   O         O   O
 |   |       |~p |~q       |~p |~q
 |   |       O   O         |   |
 |   |       |p  |q        |   |
-------     -------       -------
|     |  =  |     |    =  |     |
| AND |     | AND |       | OR  |
-------     -------       -------
   |           |Y=p*q        |
   |           O             |
   |           |~Y=~(p*q)    |~Y=~p+~q
   |           O             O
   |           |             |
   Y=p*q   =   Y=p*q         Y=~(~p+~q)
   A           B             C

Schemat A:
Bramka AND rodem z teorii układów logicznych, realizująca funkcję logiczną Y=p*q.

Schemat B:
Na rysunku B wstawiliśmy w każdą linię wejściową bramki po dwie negacje oraz w linię wyjściową Y również dwie negacje.
Taki układ oczywiście nie zmieni się bo:
A=~(~A) - prawo podwójnego przeczenia.
W linii wejściowej p po minięciu pierwszego negatora otrzymamy sygnał ~p ale po minięciu drugiego negatora będziemy mieli sygnał p, identyczny jak na wejściu. Identycznie mamy w linii wejściowej q. Na wyjściu bramki AND mamy sygnał Y=p*q, po minięciu pierwszego negatora mamy ten sam sygnał w logice ujemnej ~Y=~(p*q), zaś po minięciu kolejnego negatora mamy sygnał identyczny jak bezpośrednio na wyjściu bramki AND czyli Y=p*q

Schemat C:
Ten schemat różni się od B wyłącznie tym, że zastosowaliśmy układ zastępczy bramki AND z zanegowanymi wejściami i zanegowanym wyjściem, którym jest po prostu bramka OR. Oczywiście na wyjściu ~Y mamy teraz ~Y=~p+~q zgodnie ze schematem ideowym, zaś po minięciu negatora na wyjściu (negujemy dwustronnie) mamy Y=~(~p+~q).

W matematyce wszystko musi się zgadzać.
Dla rysunków B i C mamy dla wyjścia Y:
Y=Y
czyli:
p*q = ~(~p+~q) - prawo de’Morgana wynikłe z równości operatorów w logice dodatniej (Y)

Zaś dla wyjścia ~Y:
~Y=~Y
czyli:
~(p*q) = ~p+~q - prawo de’Morgana wynikłe z równości operatorów w logice ujemnej (~Y)

Jak widzimy wyżej, przedszkolak przechodząc z logiki dodatniej do ujemnej w genialnie prosty sposób nie robi nic nadzwyczajnego.
Y=p*q
przejście do logiki ujemnej poprzez negację sygnałów i wymianę operatorów na przeciwne:
~Y=~p+~q

Wszystko jest tu w 100% zgodne z teorią bramek logicznych, czyli algebrą Boole’a. Mam nadzieję, że wszyscy rozumieją teraz dlaczego w nowatorskiej tabeli zero-jedynkowego dowodu prawa de’Morgana wyżej widnieje zapis ~Y=~p+~q a nie jak to jest w dzisiejszej matematyce gołe ~p+~q, które nie wiadomo czym jest.
Oczywiście sygnały w punktach Y i ~Y to zupełnie co innego, gdybyśmy je połączyli kabelkiem na powyższym schemacie (czyli wymusili Y=~Y) byłoby dużo dymu i smrodu, wszystko wyleciałoby w powietrze.

Przykład:
Jutro pójdę do kina i do teatru
Y=K*T
Matematycznie oznacza to:
Dotrzymam słowa (Y=1), jeśli jutro pójdę do kina i do teatru
Y=K*T
gdzie: Y=1 - zdanie prawdziwe
czyli:
Y=1 <=> K=1 i T=1
…. a kiedy skłamię ?
Przejście do logiki ujemnej poprzez negacje zmiennych i wymianę operatorów.
~Y=~K+~T
Skłamię (~Y=1), jeśli jutro nie pójdę do kina lub nie pójdę do teatru
~Y=~K+~T
gdzie: ~Y=1 - zdanie prawdziwe
czyli:
~Y=1 <=> ~K=1 lub ~T=1
Mamy tu do czynienia ze zdaniami prawdziwymi, ale nie równoważnymi bowiem występującymi w przeciwnych logikach.


4.2 Laboratorium cyfrowych układów logicznych

Algebra Kubusia nie jest czysto matematyczną abstrakcją. Wszelkie prawa symbolicznej algebry Boole’a (algebry Kubusia) można fizycznie dotknąć w laboratorium cyfrowych układów logicznych.
W tym punkcie zaproponujemy cztery ćwiczenia z bramką AND w roli głównej. Sformułowanie analogicznych ćwiczeń z bramką OR pozostawiam czytelnikowi.

Ćwiczenie 1
Dana jest funkcja logiczna:
Y=p*q
… kiedy wystąpi fałsz ?
Przejście do logiki ujemnej poprzez negację sygnałów i wymianę operatorów:
Fałsz (~Y) jeśli wystąpi ~p lub ~q
~Y=~p+~q
Oczywiście:
Y=~(~Y)
Stąd prawo de’Morgana:
p*q = ~(~p+~q)

Fizyczna realizacja powyższych praw w bramkach logicznych:
Kod:

  p     q
  |     |
  |     x-------------------------x
  |     |                         |
  x-----|-------------------x     |
  |     |                   |     |
  |     |                   O     O
  |     |                   |~p   |~q
 ---------  p  q  Y=p*q    --------- ~p ~q ~Y=~p+~q Y=~(~Y)=~(~p+~q)
 |BRAMKA |  1  1 =1        |BRAMKA |  0  0 =0      =1
 |  A    |  1  0 =0        |  B    |  1  0 =1      =0
 |       |  0  0 =0        |       |  1  1 =1      =0
 |  AND  |  1  0 =0        |  OR   |  0  1 =1      =0
 ---------                 ---------
     |                       | ~Y=~p+~q
     |                       O
     |Y=p*q                  | Y=~(~p+~q)
     x-----------x-----------x
                 |
                 |
                 Y=p*q=~(~p+~q)

Przykład zdania:
A.
Jutro pójdę do kina i do teatru
Y=K*T
Patrzymy na problem poprzez bramkę A.
… a kiedy skłamię ?
Skłamię (~Y) jeśli jutro nie pójdę do kina (~K) lub nie pójdę do teatru (~T)
~Y=~K+~T
Patrzymy na problem poprzez bramkę B z punktu ~Y.
Matematycznie zachodzi:
Y=~(~Y)
stąd prawo de’Morgana:
K*T = ~(~K+~T)
Zdanie równoważne do A:
Nie może się zdarzyć ~(…), że jutro nie pójdę do kina (~K) lub nie pójdę do teatru (~T)


Ćwiczenie 2

Dana jest funkcja logiczna:
Y=~p*~q
… kiedy wystąpi fałsz ?
Przejście do logiki ujemnej poprzez negację sygnałów i wymianę operatorów:
Fałsz (~Y) jeśli wystąpi p lub q
~Y=p+q
Oczywiście:
Y=~(~Y)
Stąd prawo de’Morgana:
~p*~q = ~(p+q)
Kod:

 ~p    ~q
  |     |
  |     x-------------------------x
  |     |                         |
  x-----|-------------------x     |
  |     |                   |     |
  |     |                   O     O
  |     |                   |p    |q
 --------- ~p ~q  Y=~p*~q  ---------  p  q ~Y=p+q   Y=~(~Y)=~(p+q)
 |BRAMKA |  1  1 =1        |BRAMKA |  0  0 =0      =1
 |  A    |  1  0 =0        |  B    |  1  0 =1      =0
 |       |  0  0 =0        |       |  1  1 =1      =0
 |  AND  |  1  0 =0        |  OR   |  0  1 =1      =0
 ---------                 ---------
     |                       | ~Y=p+q
     |                       O
     |Y=~p*~q                | Y=~(p+q)
     x-----------x-----------x
                 |
                 |
                 Y=~p*~q=~(p+q)

Przykład zdania:
A.
Jutro nie pójdę ani do kina ani do teatru
Matematycznie oznacza to:
Jutro nie pójdę do kina i nie pójdę do teatru
Y=~K*~T
Patrzymy na problem poprzez bramkę A.
… a kiedy skłamię ?
Skłamię (~Y) jeśli jutro pójdę do kina (K) lub pójdę do teatru (T)
~Y=K+T
Patrzymy na problem poprzez bramkę B z punktu ~Y.
Matematycznie zachodzi:
Y=~(~Y)
stąd prawo de’Morgana:
~K*~T = ~(K+T)
Zdanie równoważne do A:
Nie może się zdarzyć ~(…), że jutro pójdę do kina (K) lub pójdę do teatru (T)

Ćwiczenie 3

Dana jest funkcja logiczna:
Y=p*~q
… kiedy wystąpi fałsz ?
Przejście do logiki ujemnej poprzez negację sygnałów i wymianę operatorów:
Fałsz (~Y) jeśli wystąpi ~p lub q
~Y=~p+q
Oczywiście:
Y=~(~Y)
Stąd prawo de’Morgana:
p*~q = ~(p+~q)
Kod:

  p    ~q
  |     |
  |     x-------------------------x
  |     |                         |
  x-----|-------------------x     |
  |     |                   |     |
  |     |                   O     O
  |     |                   |~p   |q
 ---------  p ~q  Y=p*~q   --------- ~p  q ~Y=~p+q  Y=~(~Y)=~(~p+q)
 |BRAMKA |  1  1 =1        |BRAMKA |  0  0 =0      =1
 |  A    |  1  0 =0        |  B    |  1  0 =1      =0
 |       |  0  0 =0        |       |  1  1 =1      =0
 |  AND  |  1  0 =0        |  OR   |  0  1 =1      =0
 ---------                 ---------
     |                       | ~Y=~p+q
     |                       O
     |Y=p*~q                 | Y=~(~p+q)
     x-----------x-----------x
                 |
                 |
                 Y=p*~q=~(~p+q)

Przykład zdania:
A.
Jutro pójdę do kina i nie pójdę do teatru
Y=K*~T
Patrzymy na problem poprzez bramkę A.
… a kiedy skłamię ?
Skłamię (~Y) jeśli jutro nie pójdę do kina (~K) lub pójdę do teatru (T)
~Y=~K+T
Patrzymy na problem poprzez bramkę B z punktu ~Y.
Matematycznie zachodzi:
Y=~(~Y)
stąd prawo de’Morgana:
K*~T = ~(~K+T)
Zdanie równoważne do A:
Nie może się zdarzyć ~(…), że jutro nie pójdę do kina (~K) lub pójdę do teatru (T)

Ćwiczenie 4

Dana jest funkcja logiczna:
Y=~p*q
… kiedy wystąpi fałsz ?
Przejście do logiki ujemnej poprzez negację sygnałów i wymianę operatorów:
Fałsz (~Y) jeśli wystąpi p lub ~q
~Y=p+~q
Oczywiście:
Y=~(~Y)
Stąd prawo de’Morgana:
~p*q = ~(p+~q)
… ciąg dalszy pozostawiam czytelnikowi.


4.3 Operatory AND i OR w logice człowieka

W algebrze Boole’a z operatorami AND i OR da się wypowiedzieć cztery różne zdania, a po uwzględnieniu praw de’Morgana nawet osiem.
p*q = ~(~p+~q)
p+q = ~(~p*~q)
~(p*q) = ~p+~q
~(p+q) = ~p*~q

W języku mówionym w zdaniach prostych przedrostek dotrzymam słowa (Y) jest domyślny czyli:

Zdanie wypowiedziane:
Jutro pójdę do kina lub do teatru
Y=K+T
matematycznie oznacza:
Dotrzymam słowa (Y) jeśli jutro pójdę do kina lub do teatru
Y=K+T
… a kiedy skłamię ?
Przechodzimy z powyższym do logiki przeciwnej metodą przedszkolaka czyli negujemy zmienne i odwracamy operatory.
~Y=~K*~T
Skłamię (~Y), jeśli jutro nie pójdę do kina i nie pójdę do teatru
~Y=~K*~T

Przedrostek skłamię (~Y) nie jest domyślny i musi zostać wypowiedziany czyli:

Zdanie wypowiedziane:
Skłamię (~Y), jeśli jutro pójdę do kina lub do teatru
~Y=K+T
… a kiedy powiem prawdę ?
Przechodzimy z powyższym do logiki przeciwnej czyli negujemy zmienne i odwracamy operatory.
Y=~K*~T
czyli:
Dotrzymam słowa (Y), jeśli jutro nie pójdę do kina i nie pójdę do teatru
Y=~K*~T

Oczywiście zdanie w logice dodatniej (Y) nie jest równoważne zdaniu w logice ujemnej (~Y) mimo że oba zdania są prawdziwe, tak wiec prawdziwość zdania nie oznacza automatycznie równoważności zdania.


5.0 Operatory dodatnie i operatory ujemne

Tabela legalnych operatorów logicznych typu AND(*) I OR(+)
Kod:

Tabela A
p q  Y=p+q ~Y=pNORq Y=p*q ~Y=pNANDq
0 0    0     1       0     1
0 1    1     0       0     1
1 0    1     0       0     1
1 1    1     0       1     0

OR(+), AND(*) - operatory w logice dodatniej
NOR, NAND - operatory w logice ujemnej

Porównajmy powyższą tabele z tabelą używaną przez nas do tej pory.
Kod:

Tabela B
p q  Y=p+q ~Y=~(p+q) Y=p*q ~Y=~(p*q)
0 0    0    1        0      1
0 1    1    0        0      1
1 0    1    0        0      1
1 1    1    0        1      0

Z powyższych tabel wynikają w pionach ~Y definicje operatorów NOR i NAND:
pNORq = ~(p+q)
pNANDq = ~(p*q)
bo:
~Y=~Y
Stąd w katalogach układów cyfrowych znajdziemy takie definicje bramek NOR i NAND.
Funkcja logiczna realizowana przez bramkę NOR:
Y=~(p+q)
Funkcja logiczna realizowana przez bramkę NAND:
Y=~(p*q)
Zauważmy, że po takim manewrze operatorów ujemnych NAND i NOR nie wolno mieszać z operatorami dodatnimi AND i OR ponieważ zachodzi.
Y(NAND, NOR) # Y(AND, OR)
co doskonale widać na bramkach logicznych.

Kod:

Bramka AND i bramka NAND
 p   q       p   q
 |   |       |   |
 |   |       |   |
-------     -------
|     |  =  |     |
| AND |     | NAND|
-------     -------
   |           O
   |           |
   |Y=p*q      | Y=pNANDq=~(p*q)
   O           O
   |           |
   |~Y=~(p*q)  |~Y=~(pNANDq)=p*q
   A           B

A - punkt odniesienia, operator AND(*)
B - punkt odniesienia, operator NAND
Oczywistym jest, że zwarcie pozornie identycznych sygnałów:
Y=Y lub ~Y=~Y
grozi wysadzeniem bramki w powietrze.

Na powyższym schemacie zachodzą tożsamości po przekątnych czyli absolutna bzdura z punktu widzenia algebry Boole’a bo wtedy mamy:
Y=~Y
czyli:
Y=p*q <=> ~Y=~(pNANDq) = p*q

Wniosek:
Można myśleć logicznie albo w operatorach dodatnich AND i OR, albo w operatorach ujemnych NAND i NOR. Mieszanie tych operatorów w jednej logice to głupota.

Punkt odniesienia, operatory dodatnie AND i OR:
Y=prawda
~Y=fałsz
Punkt odniesienia, operatory ujemne NAND i NOR:
Y=fałsz
~Y=prawda

Wróćmy do symbolicznej definicji bramki AND.
Kod:

Tabela A
 p  q = Y=p*q
 p  q = Y
 p ~q =~Y
~p ~q =~Y
~p  q =~Y

Dla punktu odniesienia AND i OR w tabeli A przyjmujemy:
p=1, ~p=0
q=1, ~q=0
Y=1(prawda), ~Y=0(Fałsz)

Tabela zero jedynkowa iloczynu logicznego dla punktu odniesienia AND(*) i OR(+):
Kod:

p q  Y=p*q=~(pNANDq) ~Y=~(p*q)=pNANDq
1 1  1                0
1 0  0                1
0 0  0                1
0 1  0                1

stąd:
Definicja operatora AND:
Y=1 <=> p=1 i q=1

Dla punktu odniesienia NAND i NOR w tabeli A przyjmujemy:
p=1, ~p=0
q=1, ~q=0
Y=0(fałsz), ~Y=1(prawda)

Tabela zero jedynkowa iloczynu logicznego dla punktu odniesienia NAND i NOR:
Kod:

p q  Y=pNANDq=~(p*q) ~Y=~(pNANDq)=p*q
1 1  0                1
1 0  1                0
0 0  1                0
0 1  1                0

stąd:
Definicja operatora NAND:
Y=0 <=> p=1 i q=1

Zakopane 2010-02-09


Ostatnio zmieniony przez rafal3006 dnia Wto 11:06, 09 Lut 2010, w całości zmieniany 2 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
rafal3006
Opiekun Forum Kubusia



Dołączył: 30 Kwi 2006
Posty: 35532
Przeczytał: 15 tematów

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

PostWysłany: Sob 7:11, 15 Maj 2010    Temat postu:

Rezerwa
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