Teoria drzew Kruskala – w matematyce jeden z problemów w teorii grafów i teorii porządku. Mówi ona, iż skończony zbiór drzew z uporządkowanymi zasadami tworzenia jest homeomorficzny. Twierdzenie to zostało zaprezentowane przez Andrew Vázsonyiego – węgierskiego matematyka, a udowodnione przez Josepha Kruskala (1960)[1] oraz Nasha-Williamsa (1963)[2]. Od tego czasu stało się znaczącym przykładem w teorii odwrotności jako stwierdzenie, którego nie można udowodnić, używając ATR0 (forma arytmetycznej rekurencji transfinitowej), a finalne zastosowanie tego twierdzenia umożliwia konstrukcję bardzo szybko rosnącej funkcji TREE(n) (ang. tree – drzewo).
Jest to wersja udowodniona przez Nasha-Williamsa, ponieważ formuła Kruskala jest bardzo zawiła.
Dla danego drzewa z korzeniem (głównym punktem tworzącym drzewo) oraz danymi wierzchołkami mówimy, że jest odgałęzieniem oznacza to, iż istnieje bezpośrednie połączenie z do lub pośrednie takie, że każdy kolejny punkt na ścieżce ma bezpośrednie połączenie z jednym z dwóch wierzchołków.
Niech będzie zbiorem częściowego porządku. Jeżeli drzewa są połączone ze sobą w to mówimy, że jest zawarte w i piszemy Jest to działanie, które należy opóźnić, tzn. konstruować drzewa w taki sposób, aby wystąpiło możliwie na końcu. Kruskal udowodnił, iż konstrukcja drzew musi w pewnym momencie spełnić warunek można więc zapisać, że
Funkcja tree(n), czyli funkcja słabego drzewa, to najdłuższy ciąg drzew jedno-oznaczonych, czyli tak że:
Wiemy, że tree(1) = 2, tree(2) = 5 i tree(3) > 844424930131960[3]. Natomiast TREE(3) (Zobacz poniżej) jest większe od treetreetreetreetree8(7)(7)(7)(7)(7). W szybko rosnącej hierarchii funkcja tree(n) znacznie przewyższa tempem wzrostu i dochodzi do małej liczby porządkowej Veblena[4].
Dla skończonego zbioru teoria drzew Kruskala, może być pokazana oraz udowodniona, używając rachunku predykatów drugiego rzędu. Jednak podobnie jak w twierdzeniu Goodsteina, niektóre przypadki można rozwiązać w podsystemach rachunków. Po raz pierwszy zauważył to Harvey Friedman, w latach 80 XX wieku[5]. Friedman spostrzegł, że nie można udowodnić twierdzenia Kruskala w ATR0[6][7]. Oznacza to, że wprawdzie można udowodnić owe twierdzenie w Π11-CA0, ale próba analizy porządkowej musiałaby zostać udowodniona poza Π11-CA0.
Załóżmy, że spełnia warunek czyli za nie można wstawić liczby zespolonej, kwaterionu itd., oraz że drzewo na pozycji może mieć maksymalnie punktów. TREE(3) jest maksymalną liczbą drzew możliwych do skonstruowania, bez zawierania jednego drzewa w drugim z użyciem kolorów[8][9]. Aby zobrazować rozmiar TREE(3), warto najpierw zobaczyć rozkład TREE(1) oraz TREE(2).
W przypadku jednego koloru (np. czerwonego) posadzić można jedno drzewo, gdyż każde kolejne, niezależnie od liczby punktów, będzie zawierać drzewo nr 1. Dla dwóch kolorów intuicyjne wydawałoby się stwierdzenie, iż maksymalna liczba drzew, które można zasadzić, wynosi 2 – jedno czerwone, a drugie np. zielone. W rzeczywistości wynik wynosi 3. Można postawić najpierw jednoelementowe drzewo koloru czerwonego, później dwuelementowe drzewo, w którym obydwa punkty mają kolor zielony (pierwsze drzewo nie zawiera się w drugim, ponieważ kolory się różnią), natomiast jako drzewo z numerem trzy postawić jednoelementowy zielony punkt.
W przypadku TREE(3) sprawa komplikuje się. Kruskal udowodnił, iż niemożliwe jest, by TREE(n) nigdy się nie kończyło. Przykładowy rozkład TREE(3) wygląda następująco:
Liczba kroków w rozkładzie TREE(3) jest skończona, chociaż niewyobrażalnie ogromna. Wiadome jest, iż TREE(3) jest znacznie większe od liczby Grahama[10][11]. Trudno konkretnie określić położenie TREE(3) w szybko rosnącej hierarchii, jednak uważa się, że znacznie przekracza ono granicę małej liczby porządkowej Veblena, natomiast wiadome jest, że nie przekracza dużej liczby porządkowej Veblena[12].
TREE(n) jest obliczalne, tzn. istnieją algorytmy, które w łatwy sposób szukają wyniku funkcji. Oznacza to również, że (zobacz funkcja pracowitego bobra) dla dość małych wartości np. 2000[13].