yorgin pisze:Te genialne prawa prosiaczka to nic innego jak zasada działania operatora negacji.
W pewnym momencie użyte przez Ciebie prawo
\(\displaystyle{ Y\vee \neg Y}\)
pod warunkiem, że dobrze zrozumiałem tego krzaczka, to doskonale znane prawo wyłączonego środka, albo logiki dwuwartościowej.
Dziwne i zupełnie niezrozumiałe jest mówienie o logice zero i logice człowieka, skoro obie są identyczne poprzez podstawienie negacji zdania skutkujące przejściem z jednej do drugiej.
Logikę zero tylko pokazałem udowadniając że jest zbędna, bo daje identyczne równania algebry Boole’a jak logika człowieka, gdzie wszystkie zmienne sprowadzamy do jedynek na mocy prawa Prosiaczka. Traktujmy logikę zero jako ciekawostkę.
Natomiast twierdzenie niżej jest super i złożę się że matematycy go nie znają.
Twierdzenie:
Z dowolnej tabeli zero-jedynkowej można ułożyć osiem i tylko osiem równań algebry Boole’a. Cztery równoważne w logice dodatniej (bo
\(\displaystyle{ Y}\)) i cztery równoważne w logice ujemnej (bo
\(\displaystyle{ \neg Y}\)).
Czy matematycy znają to twierdzenie?
Czy potrafią udowodnić?
Oczywiście matematycznie zachodzi:
\(\displaystyle{ Y}\) #
\(\displaystyle{ \neg Y}\)
gdzie:
# - różne w znaczeniu:
Jeśli
\(\displaystyle{ Y=0}\) to
\(\displaystyle{ \neg Y=1}\)
Odwrotnie też zachodzi:
Jeśli
\(\displaystyle{ \neg Y=1}\) to
\(\displaystyle{ Y=0}\)
Stąd mamy prawa Prosiaczka:
\(\displaystyle{ Y=0 \Leftrightarrow \neg Y=1}\)
\(\displaystyle{ Y=1 \Leftrightarrow \neg Y=0}\)
mówiące o związku logiki dodatniej (bo
\(\displaystyle{ Y}\)) z logiką ujemną (bo
\(\displaystyle{ \neg Y}\))
Matematycznie zachodzi też:
\(\displaystyle{ Y = \neg (\neg Y)}\) - związek logiki dodatniej i ujemnej
skąd otrzymujemy prawo De Morgana.
Jak widzisz ten znaczek # błędnie zrozumiałeś jako spójnik „lub”(
\(\displaystyle{ \vee}\)).
To fundamentalnie co innego.
yorgin pisze:Te genialne prawa prosiaczka to nic innego jak zasada działania operatora negacji.
NIE!
To nie jest definicja negacji.
To jest matematyczny związek logiki dodatniej i ujemnej.
Definicja negacji:
\(\displaystyle{ Y=\neg p}\)
Jeśli
\(\displaystyle{ p=1}\) to
\(\displaystyle{ Y=0}\)
Jeśli
\(\displaystyle{ p=0}\) to
\(\displaystyle{ Y=1}\)
To jest fundamentalnie co innego.
Fundament zero-jedynkowej algebry Bole’a:
\(\displaystyle{ 0}\) #
\(\displaystyle{ 1}\)
gdzie:
# - różne
Nigdy nie może być:
\(\displaystyle{ 0=1}\)
Ustalmy zmienną binarną
\(\displaystyle{ p}\):
\(\displaystyle{ p=0}\) #
\(\displaystyle{ p=1}\)
Oczywiście fundament zero-jedynkowej algebry Boole’a nadal tu obowiązuje:
\(\displaystyle{ 0}\) #
\(\displaystyle{ 1}\)
… ale zauważ, że zmienna binarna po obu stronach znaku # jest identyczna.
Tu nie możesz się uwolnić od idiotycznych bezwzględnych zer i jedynek, bo opuszczasz cyfry binarne i otrzymujesz głupotę
\(\displaystyle{ p}\) #
\(\displaystyle{ p}\)
Gdzie:
# - różne
Jak uwolnić się od beznadziejnie IDIOTYCZNYCH zer i jedynek?
Prawa Prosiaczka:
\(\displaystyle{ p=0 \Leftrightarrow \neg p=1}\)
\(\displaystyle{ p=1 \Leftrightarrow \neg p=0}\)
Mamy nasze:
\(\displaystyle{ p=1}\) #
\(\displaystyle{ p=0}\)
Po skorzystaniu z prawa Prosiaczka otrzymujemy:
\(\displaystyle{ p=1}\) #
\(\displaystyle{ \neg p=1}\)
Gdzie:
# - różne
Oczywiście że teraz możemy usunąć bezwzględne jedynki po obu stronach otrzymując logikę w 100% symboliczną, izolowaną od 0 i 1, czyli:
\(\displaystyle{ p}\) #
\(\displaystyle{ \neg p}\)
Stąd z powrotem mamy prawa Prosiaczka:
Jeśli
\(\displaystyle{ p=1}\) to
\(\displaystyle{ \neg p=0}\)
Odwrotnie też zachodzi:
Jeśli
\(\displaystyle{ \neg p=0}\) to
\(\displaystyle{ p=1}\)
Stąd pierwsze prawo Prosiaczka:
\(\displaystyle{ p=1 \Leftrightarrow \neg p=0}\)
Drugie prawo Prosiaczka:
Jeśli
\(\displaystyle{ p=0}\) to
\(\displaystyle{ \neg p=1}\)
Odwrotnie też zachodzi:
Jeśli
\(\displaystyle{ \neg p=1}\) to
\(\displaystyle{ p=0}\)
Stąd drugie prawo Prosiaczka:
\(\displaystyle{ p=0 \Leftrightarrow \neg p=1}\)
Tu jest bardzo prosty związek z logiką człowieka.
I.
Logika zero-jedynkowa, czyli pisanie programu w zerach i jedynkach (średniowiecze)
Wczoraj byłem w kinie (
\(\displaystyle{ K=1}\))
\(\displaystyle{ K =1}\)
Wczoraj nie byłem w kinie (
\(\displaystyle{ K=0}\))
\(\displaystyle{ K =0}\)
II.
Logika symboliczna jest niezależna od idiotycznych zer i jedynek
Wczoraj byłem w kinie (
\(\displaystyle{ K=1}\))
\(\displaystyle{ K=1}\)
Wczoraj nie byłem w kinie (
\(\displaystyle{ \neg K=1}\))
\(\displaystyle{ \neg K=1}\)
Po skorzystaniu z prawa Prosiaczka mamy logikę dodatnia (bo
\(\displaystyle{ K}\))
\(\displaystyle{ K=0}\)
Logika człowieka jest w 100% zgodna z symboliczną algebrą Boole’a bo mamy identyczną polaryzację zmiennych w zdaniu i równaniu go opisującym.
Prawa Prosiaczka są ABSOLUTNIE niezbędne dla utworzenia równania algebry Boole’a z dowolnej tabeli zero-jedynkowej, albo odwrotnie.
Nikt nie udowodni, że można przejść z tabeli zero-jedynkowej do równania algebry Boole’a ją opisującego bez skorzystania z praw Prosiaczka.
Definicje rodem z technicznej algebry Boole’a spójników „i”(*) i „lub”(+) są następujące.
Definicja spójnika „i” (*) - koniunkcji:
Iloczyn logiczny (spójnik „i”(*) ) n-zmiennych binarnych jest równy 1 wtedy i tylko wtedy gdy wszystkie zmienne są równe 1
\(\displaystyle{ Y = (A1*A2*...An)=1 \Leftrightarrow A1=1 i A2=1 i ... An=1}\)
Definicja spójnika „lub”(+) - alternatywy:
Suma logiczna (spójnik „lub”(+) ) n-zmiennych binarnych jest równa 1 wtedy i tylko wtedy gdy którakolwiek zmienna jest równa 1
\(\displaystyle{ Y = (A1+A2+...An)=1 \Leftrightarrow A1=1 lub A2=1 lub ... An=1}\)
W swoim algorytmie przejścia z tabeli zero-jedynkowej do równania algebry Boole'a
Kod: Zaznacz cały
http://www.math.uni.wroc.pl/~newelski/dydaktyka/wdm-A/skrypt3/skrypt/node3.html
musiał skorzystać i korzysta z najważniejszych praw algebry Boole’a:
\(\displaystyle{ p=0 \Leftrightarrow \neg p=1}\)
\(\displaystyle{ p=1 \Leftrightarrow \neg p=0}\)
Dlaczego te prawa są najważniejsze?
Bo człowiek w swojej naturalnej logice operuje wyłącznie równaniami algebry Boole’a, nigdy tabelami zero-jedynkowymi. Bez tych praw niemożliwy jest matematyczny opis naturalnej logiki człowieka, bo niemożliwe jest przejście z tabeli zero-jedynkowej do równań logicznych ja opisujących i z powrotem.
Wszelkie prawa logiczne opisane są równaniami algebry Boole’a, nigdy tabelami zero-jedynkowymi.
Wyłącznie w logice symbolicznej (równania algebry Boole’a) mamy dostęp do wszystkich praw logicznych i możemy z nich swobodnie korzystać np. prawo przejścia do logiki ujemnej i z powrotem.
Dlaczego nie ma tych praw w żadnym podręczniku matematyki i Wikipedii?
… oto jest pytanie.
Przykład:
Algorytm
Kod: Zaznacz cały
http://www.math.uni.wroc.pl/~newelski/dydaktyka/wdm-A/skrypt3/skrypt/node3.html
tworzenia równania algebry Boole’a na przykładzie operatora OR.
Zero-jedynkowa definicja operatora OR:
\(\displaystyle{ \begin{tabular}{rcl}
p & q & Y=p+q \\
A: 1 & 1 & 1 \\
B: 1 & 0 & 1 \\
C: 0 & 1 & 1 \\
D: 0 & 0 & 0 \\
1 & 2 & 3
\end{tabular}}\)
W algebrze Boole’a dla dowolnej tabeli zero-jedynkowej możemy ułożyć dwa podstawowe i nie tożsame równania algebry Boole’a, jedno opisujące wynikowe jedynki i drugie, opisujące wynikowe zera. Kompletny algorytm to zaledwie trzy kroki.
Równania algebry Boole’a opisujące wynikowe jedynki:
1.
Spisujemy to co widzimy (Spis z natury):
\(\displaystyle{ A: Y=1 \Leftrightarrow p=1 i q=1}\)
lub
\(\displaystyle{ B: Y=1 \Leftrightarrow p=1 i q=0}\)
lub
\(\displaystyle{ C: Y=1 \Leftrightarrow p=0 i q=0}\)
2.
Korzystając z prawa algebry Boole’a.
Prawo Prosiaczka
\(\displaystyle{ p=0 \Leftrightarrow \neg p=1}\)
Dokładniej korzystamy z tego:
Jeśli
\(\displaystyle{ p=0}\) to
\(\displaystyle{ \neg p=1}\)
Sprowadzamy wszystkie zmienne do jedynek:
\(\displaystyle{ A: Y=1 \Leftrightarrow p=1 i q=1}\)
lub
\(\displaystyle{ B: Y=1 \Leftrightarrow p=1 i \neg q=1}\)
lub
\(\displaystyle{ C: Y=1 \Leftrightarrow \neg p=1 i \neg q=1}\)
3.
Stąd na podstawie definicji spójnika „i”(*) w poziomach i spójnika „lub”(+) w pionie mamy końcowe równanie algebry Boole’a opisujące powyższą tabelę zero-jedynkową:
\(\displaystyle{ Y = p*q + p* \neg q + \neg p* \neg q}\)
Oczywiście równanie to opisuje wyłącznie obszar ABC123 powyżej tabeli.
Dokładnie ten sam obszar ABC123 opisuje nagłówek tabeli:
\(\displaystyle{ Y=p+q}\)
na mocy definicji spójnika „lub”(+).
Stąd mamy tożsamość matematyczną:
\(\displaystyle{ Y = p+q}\)
\(\displaystyle{ Y = p*q + p* \neg q + \neg p* \neg q}\)
\(\displaystyle{ Y=Y}\)
stąd równoważna definicja spójnika „lub”(+):
ABC123:
\(\displaystyle{ Y = p+q = p*q + p* \neg q + \neg p* \neg q}\)
Powyższe równanie opisuje obszar ABC123.
Jeśli je zanegujemy dwustronnie korzystając z prawa przejścia do logiki przeciwnej:
Negujemy zmienne i wymieniamy spójniki na przeciwne
to otrzymamy równanie algebry Boole’a opisujące linię D123!
Algorytm Wuja Zbója:
1.
Uzupełniamy nawiasy i brakujące spójniki:
\(\displaystyle{ Y = p+q = (p*q) + (p* \neg q) + ( \neg p* \neg q)}\)
2.
Negujemy zmienne i wymieniamy spójniki na przeciwne
\(\displaystyle{ \neg Y = \neg p* \neg q = ( \neg p+ \neg q)*( \neg p+q)*(p+q)}\)
oczywiście równania ABC123 i D123 nie są tożsame.
W technice układów cyfrowych oznacza to że jeśli zbudujemy układy 1 i 2 w bramkach logicznych i połączymy wyjścia
\(\displaystyle{ Y}\) i
\(\displaystyle{ \neg Y}\) to zobaczymy kupę dymu i smrodu, wszystko wyleci w powietrze.
Równania algebry Boole’a opisujące wynikowe zera:
Zero-jedynkowa definicja operatora OR:
\(\displaystyle{ \begin{tabular}{rcl}
p & q & Y=p+q \\
A: 1 & 1 & 1 \\
B: 1 & 0 & 1 \\
C: 0 & 1 & 1 \\
D: 0 & 0 & 0 \\
1 & 2 & 3
\end{tabular}}\)
Postępujemy identycznie jak wyżej algorytmem prof. Newelskiego
1.
Spis z natury dla wynikowych zer (tu mamy tylko jedno w linii D123):
\(\displaystyle{ Y=0 \Leftrightarrow p=0 i q=0}\)
2.
Prawo Prosiaczka
\(\displaystyle{ p=0 \Leftrightarrow \neg p=1}\)
Dokładniej korzystamy z tego:
Jeśli
\(\displaystyle{ p=0}\) to
\(\displaystyle{ \neg p=1}\)
Sprowadzamy wszystkie zmienne do jedynek:
\(\displaystyle{ \neg Y=1 \Leftrightarrow \neg p=1 i \neg q=1}\)
3.
Na mocy definicji spójnika „i”(*) mamy równanie końcowe opisujące linię D123:
\(\displaystyle{ \neg Y= \neg p* \neg q}\)
co matematycznie oznacza:
\(\displaystyle{ \neg Y=1 \Leftrightarrow \neg p=1 i \neg q=1}\)
Oczywiście, negując linię D123 musimy otrzymać definicje spójnika „lub”(+) w równaniu algebry Boole’a opisującą wyłącznie obszar ABC123.
Równanie opisujące linię D123:
\(\displaystyle{ \neg Y= \neg p* \neg q}\)
co matematycznie oznacza:
\(\displaystyle{ \neg Y=1 \Leftrightarrow \neg p=1 i \neg q=1}\)
Przejście do logiki przeciwnej
\(\displaystyle{ (Y)}\) poprzez negację zmiennych i wymianę spójników na przeciwne.
Równanie opisujące obszar ABC123:
\(\displaystyle{ Y=p+q}\)
co matematycznie oznacza:
\(\displaystyle{ Y=1 \Leftrightarrow p=1 lub q=1}\)
Nanieśmy nasze równania na definicję operatora OR:
\(\displaystyle{ \begin{tabular}{rcll}
p & q & Y=p+q \\
A: 1 & 1 & 1 & /Y=p*q \\
B: 1 & 0 & 1 & /Y=p* \neg q \\
C: 0 & 1 & 1 & /Y= \neg p * q\\
D: 0 & 0 & 0 & / \neg Y= \neg p * \neg q\\
1 & 2 & 3
\end{tabular}}\)
Użyteczną technikę tworzenia równania logicznego dla dowolnej linii w spójniku „i”(*) widać jak na dłoni.
Jeśli na wybranej pozycji mamy 1 to przepisujemy nagłówek kolumny.
Jeśli na wybranej pozycji mamy 0 to przepisujemy zanegowany nagłówek kolumny
Wniosek:
Kompletną tabelę zero-jedynkową operatora OR (wszystkie cztery linie) opisuje układ równań logicznych:
\(\displaystyle{ A: Y=p+q}\)
\(\displaystyle{ B: \neg Y= \neg p* \neg q}\)
Związek logiki dodatniej
\(\displaystyle{ (Y)}\) i ujemnej
\(\displaystyle{ ( \neg Y)}\):
\(\displaystyle{ Y= \neg ( \neg Y)}\)
Podstawiając A i B mamy prawo De Morgana:
\(\displaystyle{ Y = p+q = \neg ( \neg p* \neg q)}\)
Dopiero to równanie opisuje kompletny operator OR, wszystkie cztery linie!
\(\displaystyle{ Y = p+q = \neg ( \neg p* \neg q)}\)
Dowód:
Twierdzenie:
Jeśli w operatorze OR zanegujemy wszystkie zmienne to na podstawie prawa De Morgana musimy otrzymać definicję operatora AND.
Definicja operatora OR:
1.
\(\displaystyle{ Y = p+q = \neg ( \neg p* \neg q)}\)
Dowód:
2.
Negujemy zmienne wejściowe p i q:
\(\displaystyle{ y = \neg p + \neg q = \neg (p*q)}\)
3.
Negujemy wyjście y:
\(\displaystyle{ \neg y = \neg ( \neg p+ \neg q) = p*q}\)
Równanie 3 to oczywiście pełna definicja operatora AND w równaniu algebry Boole’a.
Zauważmy że operator AND (3) jest logiką ujemną
\(\displaystyle{ ( \neg y)}\) w stosunku do operatora OR (1).
Zauważmy że równanie:
\(\displaystyle{ Y=p+q}\)
nie jest kompletnym opisem operatora OR (opisującym wszystkie cztery linie) bo negujemy zmienne i nie otrzymujemy definicji operatora AND.
\(\displaystyle{ \neg Y= \neg p+ \neg q}\)
Sensacyjny wniosek!
W równaniu logicznym:
\(\displaystyle{ Y=p+q}\)
Znaczek
\(\displaystyle{ „+”}\) nie jest operatorem logicznym opisującym wszystkie cztery linie tabeli zero-jedynkowej!
Znaczek
\(\displaystyle{ „+”}\) to tylko połówka operatora OR (obszar ABC123) a nie cały operator (ABCD123) jak to jest we współczesnej matematyce.
Oczywiście matematycznie zachodzi:
Operator OR ## Operator AND
gdzie:
## - różne na mocy definicji
… bo w przejściu z operatora OR do operatora AND wyłącznie negowaliśmy zmienne bez zmiany spójników!
Jak wam się podoba?