Przyczynek do problemu Collatza Andrzej Salwicki 24 lutego 2004 Historia problemu • Problem jest starszy ode mnie • Wielu ludzi uważa się za autora problemu: Collatz, Kakutani, Erdos, Thwaite, ... • Ustanowiono nagrody pieniężne za rozwiązanie problemu: 50$, 500$,1400$ i ... nic • strona J. Lagariasa www.cecm.sfu.ca/organics/papers/lagarias Problem Niech f będzie funkcją określoną w następujący sposób n div 2 gdy n jest liczb ą parzyst ą f ( n) 3 n 1 gdy n jest liczb ą nieparzyst ą Czy prawdą jest, że dla każdego n istnieje taka iteracja i funkcji f, że f i(n)=1 ? Problem (ujęcie współczesne) Czy prawdą jest, że następujący program P zatrzymuje się P: while n1 do if even(n) then n:= n div 2 else n:=3*n+1 fi done dla każdej liczby naturalnej n>0? Strona wyników • łatwo uruchomimy ten program, stąd większa obecnie popularność drugiego sformułowania, • strona Rosendaala zawiera wiele rekordów obliczeń dla problemu Collatza: personal.computrain.nl/eric/wondrous/ np. program P zatrzymuje się dla wszystkich n<258 (luty 2004) Mój przyczynek • Arytmetyka Peano nie zawiera twierdzenia: „program P zatrzymuje się dla każdej liczby naturalnej n” – ponieważ własność stopu tego programu nie jest wyrażalna w języku arytmetyki Peano – ale... wiele programów ma formuły stopu będące formułami aytmetyki. Spostrzeżenie • program P nie musi wykonywać mnożeń ani dzieleń, 3*n = n+n+n n jest parzyste (y) y+y=n n div 2 =y y+y=n • obliczenia można przeprowadzać w niestandardowym modelu arytmetyki liczb naturalnych z dodawaniem Model niestandardowy M1 • Rozważamy system <U, o, i, +> w którym uniwersum U jest zbiorem par <k, w> ZQ+ , takich, że w=0 k0 , • dodawanie jest określone „po współrzędnych” <k,w>+ <k’,w’> =df <k+k’, w+w’> • o =df <0, 0> • i =df <1, 0> Przyjmując naturalną definicję mniejszości x<y ( z) x+z+i=y dostrzegamy, że liczby naturalne czyli pary <k, 0> są mniejsze od elementów niestandardowych tego modelu. <k,0> < <l,w> bo <k,0>+<l-k-1,w>+<1,0> = <l,w> Obliczenie programu P w M1 Niech w będzie liczbą wymierną 0. Para <0,w> jest liczbą parzystą, <0,w>=<0,w/2>+<0, w/2>. Obliczenie programu P dla n=<0, w> jest więc nieskończone. Można zauważyć, że dla każdej pary <k,w>, w 0, obliczenie programu P jest nieskończone bo nie można osiągnąć elementu i=<1,0>. A więc dla każdego elementu niestandardowego program P ma obliczenie nieskończone ! Wniosek Elementarna teoria liczb naturalnych z dodawaniem nie zawiera twierdzenia o zatrzymywaniu się programu P. Nie oznacza to, że hipoteza Collatza jest fałszywa. Jeśli program P zatrzymuje się dla każdej liczby naturalnej n, to w języku arytmetyki z dodawaniem nie ma formuły stopu dla programu P. Gdyby taka formuła istniała i była twierdzeniem to program musiałby zatrzymywać się także w modelach niestandardowych dla każdego elementu modelu. Czy mnożenie pomoże? Nie. Można wykazać, że istnieje taki niestandardowy model arytmetyki Peano w którym program P ma obliczenie nieskończone. Arytmetyka Peano Teoria liczb naturalnych z dodawaniem i mnożeniem. Ax1) (x) x+1 0 Ax2) x+1=y+1 x=y Ax3) x+0=x Ax4) x+(y+1)= (x+y)+1 Ax5) x*0 = 0 Ax6) x*(y+1) = x*y + x Axind) ((x/0) (x)((x)(x/x+1)) (x)(x)) w tym schemacie indukcji wyrażenie jest dowolną formułą w której jako symbole pozalogiczne występują tylko 0, 1, +, * i =. Niestandardowy model M2 Zbudujemy nieskończony ciąg teorii {Ti}. Teoria T0 to arytmetyka Peano. Język teorii T1 to rozszerzenie języka teorii T0 o nową stałą 1. Aksjomaty teorii T1 zawierają wszystkie aksjomaty teorii T0, formułę (Ey) y+y= 1 oraz nieskończony zbiór formuł postaci 0< 1 , 1< 1 , 2< 1 , ... Teoria T1 jest niesprzeczna i posiada model.[AG str.264] Załóżmy, że dla j<i teoria Tj jest niesprzeczna. Określamy teorię Ti w następujący sposób: - język teorii Ti jest wzbogacony o stałą i , Niestandardowy model M2 II Aksjomatami teorii Ti są wszystkie aksjomaty teorii Ti, a ponadto formuła (Ey)y+y= i oraz nieskończony zbiór formuł postaci 0< i , 1< i , 2< i , ... Lemat Teoria Ti jest niesprzeczna i posiada model. W dowodzie wykorzystujemy własność zwartości: wystarczy wykazać, że każdy skończony podzbiór zbioru aksjomatów teorii Ti jest niesprzeczny by uzyskać niesprzeczność całego zbioru. Niestandardowy model M2 III Jako model zbioru Z weźmiemy standardowy model liczb naturalnych z dodawaniem i mnożeniem, trzeba tylko określić znaczenie występujących w nim stałych i. Niech n0 będzie największym liczebnikiem występującym w formułach zbioru Z. Niech k będzie najwyższym wskażnikiem stałej k występujacej w zbiorze Z. Jako znaczenie tej stałej wystarczy przyjąć liczbę p parzystą większą niż n0. Kładziemy dalej k-1 = 2*p, k-2 =4*p, ... 0 =2k*p. W ten sposób stworzyliśmy model dla dowolnie wybranego podzbioru Z zbioru aksjomatów teorii Ti. A więc teoria ta jest niesprzeczna. Niestandardowy model M2 IV Lemat Teoria T = i N Ti jest niesprzeczna i posiada model, oznaczmy go przez M2. Fakt Obliczenie programu P wykonywanego w modelu M2 dla n= 1 jest nieskończone. (meta)Twierdzenie Zbiór twierdzeń Arytmetyki Peano nie zawiera formuły wyrażającej własność stopu programu P. Pytanie • Czy tu nie ma sprzeczności z faktem, że w Arytmetyce Peano można zapisać własność liczba w jest kodem skończonego ciągu liczb s1, ... ,sn, który to ciąg reprezentuje obliczenie programu? Dwie odpowiedzi • Nie, semantyka programów z instrukcją while jest dana a priori tak jak pojęcie spełniania(prawdy). Tam jednak stosujemy liczby naturalne standardowe. Chcę o tym powiedzieć parę słow póżniej. • Można pójść tropem tej formuły i zbudować semantykę programów while w oparciu o nią. Będzie to niestandardowa logika dynamiczna (zob. I. Nemeti, H. Andreka, I. Sain). A nasz program P zawsze się zatrzyma, tyle, że po pewnej niestandardowej liczbie kroków. No i ? Języki teorii algorytmicznych Trzy (a nie dwa) zbiory wyrażeń poprawnie zbudowanych: • termy • formuły • programy zbiór formuł zawiera formuły pierwszego rzędu, a ponadto formuły algorytmiczne w trzech smakach: K „po wykonaniu programu K zachodzi ” K „istnieje iteracja K taka, że ” K „dla każdej iteracji K zachodzi ” gdzie K jest programem a jest formułą algorytmiczną Pojęcie spełnialności • Jak zwykle, ponadto pojęcie znaczenia programu jako funkcji ze zbioru W wartościowań w zbiór W (można nieco inaczej podając pojęcie obliczenia) • Niech v, v’ będą wartościowaniami zmiennych. Znaczeniem programu [x :=t] jest funkcja [x:=t]A przyporządkowująca wartościowaniu v wartościowanie v’ takie, że v’(z)= v(z) dla z <>x i v’(x) = tA(v) Programy • Def. pojęcia programu Formuła stopu • Program K formuła stopu halt(K) • Definicja Formuła wyraża własność stopu programu K: obliczenie programu K w systemie M i dla stanu początkowego v jest skończone M(v)=true Tabela Program Zatrzymuje się? Formuła stopu w jęz. 1 rzędu N tak nie istn. P ? ? (nie) PF4 nie istnieje G ? istnieje ... 32768 5120 16384 2560 8192 672 1280 640 4096 682 680 113 2048 341 340 336 320 52 1024 170 168 160 26 512 85 84 13 256 42 80 40 128 21 20 64 10 32 5 16 8 4 2 1 3