Zefciu, twoją teorie liczb mam w głębokim poważaniu.
Zejdźmy do matematycznego przedszkola.
Ciekawi mnie czy Zefciu, jako najlepszy programista na wiara.pl i ateista.pl rozumie i akceptuje poniższy, historyczny dowód matematyczno-fizyczny.
http://www.sfinia.fora.pl/forum-kubusia ... tml#216615Wykłady z algebry KubusiaTemat:
Historyczny dowód:
Instrukcja warunkowa ze świata komputerów = operator równoważnościfiklit napisał(a):
Cytuj:
Z wytłuszczonym się nie zgadzam, zgodnie z definicją równoważności potrzebujemy dwóch zdań zawsze prawdziwych. Z pozostałym też się nie zgadzam bo instrukcja warunkowa to równoważność.
O jakiej definicji mówisz?
Mówię o definicji równoważności.
Definicję symboliczną w równaniu algebry Boole’a mamy wspólną:
p<=>q = (p=>q)*(~p=>~q)
Ta definicja to nic innego jak instrukcja warunkowa:
If (warunek p) then q else ~q
W skrócie:
If p then q else ~q
Dowód:Instrukcja warunkowa tożsama to ciąg poniższych instrukcji cząstkowych pod warunkiem zamieszczenia ich jedna pod drugą:
A: If p then q
C: If ~p then ~q
(tu program nigdy nie wejdzie!)
q:
--------------------------
~q:
--------------------------
Kolejność instrukcji cząstkowych nie ma znaczenia bowiem warunki p i ~p są rozłączne.
Dowód:
Gdyby warunki p i ~p nie były rozłączne to wali się fundament algebry Boole’a:
p+~p=1
p*~p =0 - to równanie leży w gruzach gdyby p i ~p nie były rozłączne!
W naturalnej logice człowieka (matematyce ścisłej!) instrukcje A i C można opisać tak:
RA: p<=>q = (p=>q)*(~p=>~q)
A.
Jeśli warunek p jest spełniony to program musi => skoczyć do etykiety q
Zdanie matematycznie tożsame:
Jeśli zajdzie p to na pewno => zajdzie q
p=>q =1
Zajście p jest warunkiem wystarczającym => dla skoku do etykiety q
Warunek wystarczający => p wymusza fałszywość kontrprzykładu B.
B.
Jeśli warunek p jest spełniony to program może ~~> nie skoczyć do etykiety q (~q)
Zdanie matematycznie tożsame:
Jeśli zajdzie p to może ~~> zajść ~q
p~~>~q =0 -
kategoryczny zakaz bo wali się świat komputerów!… a jeśli warunek p nie jest spełniony?
Ten przypadek opisuje druga i nierozłączna cześć instrukcji warunkowej!RC: ~p<=>~q = (~p=>~q)*(p=>q)
C.
Jeśli warunek p nie jest spełniony (zajdzie ~p) to program na pewno => skoczy do etykiety różnej od q (~q)
Zdanie matematycznie tożsame:
Jeśli zajdzie ~p to na pewno => zajdzie ~q
~p=>~q =1
Zajście ~p jest warunkiem wystarczającym => dla skoku do ~q
warunek wystarczający C wymusza fałszywość kontrprzykładu D.
D.
Jeśli warunek p nie jest spełniony to program może ~~> skoczyć do etykiety q
Zdanie matematycznie tożsame:
Jeśli zajdzie ~p to może ~~> zajść q
~p~~>q =0 -
kategoryczny zakaz bo wali się świat komputerów!Zauważmy, że gdyby zdanie D mogło być czasami prawdziwe to program, poza świadomością programisty, mógłby sobie z kieszeni wyjąć monetę i rzucić:
orzełek - skaczę zgodnie z życzeniem programisty do ~q
reszka - mam w du_pie programistę, skoczę sobie do etykiety q
„Rzucanie monetą” = wolna wola programu (mikroprocesora) = implikacja prosta
Doskonale tu widać dlaczego operator implikacji prostej jest najzwyklejszym idiotyzmem w programowaniu mikroprocesorów (w całej technice również) i nigdy nie znajdzie tu zastosowania.
Dokładnie dlatego inżynierowie nie mają najmniejszego pojęcia czym jest implikacja - bo jest im to „psu na budę potrzebne”.
Typowy błąd czysto programistyczny jaki tu może popełnić programista jest następujący:
If p then q else q
W rozpisce na instrukcje cząstkowe otrzymamy tu:
If p then q
If ~p then q
(tu program nigdy nie wejdzie!)
q:
-----------------
Jest oczywistością że ten ciąg rozkazów ulega redukcji to instrukcji podstawienia:
GOTO q
bowiem fundament algebry Boole’a:
p+~p=1
p*~p=0
Powyższe oznacza że:
Nie ma możliwości innego przypadku poza p+~p co zaznaczono w programie informacją:
- tu program nigdy nie wejdzie!
W przełożeniu na język asemblera dowolnego mikroprocesora skok bezwarunkowy to najzwyklejsza instrukcja podstawienia.
PC = q
Wpisz do licznika rozkazów PC adres q
Nie ma w tym przypadku mowy o jakiejkolwiek instrukcji warunkowej!Dla kodowania zgodnego ze zdaniem RA otrzymujemy zero-jedynkową definicję równoważności w logice dodatniej (bo q):
RA: p<=>q
Prawa Prosiaczka:
(p=1)=(~p=0)
(q=1)=( ~q=1)
Dla kodowania zgodnego ze zdaniem RC otrzymujemy zero-jedynkową definicję równoważności w logice dodatniej (bo q):
C: ~p<=>~q
Prawa Prosiaczka:
(~p=1)=(p=0)
(~q=1)=(q=1)
Kod:
Definicja symboliczna |Definicja |Definicja
|zero-jedynkowa |zero-jedynkowa
|dla RA:p<=>q |dla RC:~p<=>~q
RA: p<=>q | p q p<=>q | ~p ~q ~p<=>~q
A: p=> q =[ p* q] =1 | 1<=> 1 =1 | 0<=> 0 =1
B: p~~>~q=[ p*~q] =0 | 1<=> 0 =0 | 0<=> 1 =0
RC: ~p<=>~q | |
C:~p=>~q =[~p*~q] =1 | 0<=> 0 =1 | 1<=> 1 =1
D:~p~~>q =[~p* q] =0 | 0<=> 1 =0 | 1<=> 0 =0
1 2 a b 3 4 5 6 7 8 9
Tożsamość kolumn wynikowych 6 i 9 jest dowodem formalny prawa algebry Boole’a:
R1: p<=>q = ~p<=>~q
Co oznacza ta tożsamość?
W przełożeniu na instrukcję warunkową powyższa tożsamość oznacza dowolność kolejności instrukcji cząstkowych:
R1: p<=>q = ~p<=>~q = (p=>q)*(~p=>~q) = (~p=>~q)*(p=>q)
Odpowiednik w programie:
A: If p then q
C: If ~p then ~q
Tożsamy ciąg instrukcji:
C: If ~p then ~q
A: If p then q
Co jest oczywistością - dowód wyżej.
Podsumowując:Proszę o sygnały co jest niezrozumiałego w historycznym dowodzie matematyczno-fizycznym (bo mikroprocesor to fizyka) iż:
Instrukcja warunkowa ze świata komputerów = operator równoważności