Pytanie może sugerować że zadająca je osoba ma udar i bredzi bez sensu, ale w zasadzie, jest to możliwe.
W XIX wieku w matematyce nastąpił kryzys. Okazało się że kilka teorii (teorii, a więc posiadających dowody swojej prawdziwości) jest ze sobą sprzeczne, a dalsze badania ujawniły, że cała metodologia dowodzenia twierdzeń prowadziła do wielu paradoksów, i trzeba było ją wynaleźć od nowa (przykładowo, za pomocą indukcji matematycznej można przeprowadzić zupełnie poprawny dowód twierdzenia, jakoby wszystkie konie były tego samego koloru).
Wtedy też zaczęto się bardziej przyglądać sposobom w jakie uprawiana wtedy była matematyka. Jednym ze skutków było powstanie logiki, arytmetyki Boola, twierdzeń Gödla, ale dzisiaj chcę opisać dziedzinę, znaną jako Rachunek Lambda.
W skrócie? Zakładamy że wszystko jest funkcją.
Rachunek Lambda ma trzy najważniejsze "operatory":
-Zmienna. Jest to coś, co jest argumentem funkcji, używane przez funkcje, i zwracane przez funkcje. Przykładowo, w równaniu
f(x) = x+3
zmienną jest x
-Deklaracja nowej funkcji. Używa ona greckiej litery Lambda (λ, znanej z loga organizacji Black Mesa #halflife ). Składa się z tego jaki argument przyjmuje funkcja, i co zwraca. Dobrze czytanie: argument. Nie argumenty. Funkcje w rachunku Lambda w zasadzie mają zawsze tylko jeden argument, i jest cwane obejście problemu funkcji które wymagają więcej argumentów. Przykładem zadeklarowania nowej funkcji, jest f(x) = x+3
Stosowana jest następująca notacja:
λx.x+3
czyli:
λ - znak że deklarujemy nową funkcje
x - zmienna która jest tym co funkcja przyjmuje
x+3 - to co funkcja nam zwraca
-Wywołanie funkcji, przykładowo f(5)=5+3=8
Więc przykładowo, jeżeli chcemy użyć rachunku Lambda do policzenia 5^2, to zapiszemy to jako:
(λx.x^2)(5) = 25
w pierwszym nawiasie deklarujemy funkcję, a kolejnymi nawiasami ją wywołujemy.
Czym to się różni od "klasycznej" matematyki? Pokażemy to na przykładzie:
W klasycznej matematyce, liczby naturalne i dodawanie są zdefiniowane za pomocą aksjomatów Peano:
-
1 jest liczbą naturalną
-
jeżeli a jest liczbą naturalną, to a+1 również jest liczbą naturalną
-
nie istnieje taka liczba naturalna a, że a+1 = 1
-
a + (b+1) = (a+b) + 1
Pierwsze dwa aksjomaty pozwalają nam powiedzieć, że 2 oraz 3 są liczbami naturalnymi. Czwarty aksjomat mówi nam o tym w jaki sposób je ze sobą dodać:
-
2 = (1+1) = (0 + 1 + 1), 3 = (0 + 1 + 1 + 1)
-
2 + 3 = 2 + (2 + 1) = (2 + 2) + 1 = (2 + (1 + 1)) + 1 = ((2 + 1) + 1) + 1 = 5
Z kolei w rachunku Lambda, liczby definiujemy w następujący sposób:
-
0 = λf.λx.x
-
Jeżeli x jest n-tą liczbą naturalną (w myśl obecnej definicji), to (n+1) liczba jest dana wzorem λf.λx.f(x)
Czyli 0 jest funkcją, która przyjmuje jako argument pewne "f", i zwraca funkcję która dla dowolnego argumentu x zwraca x, a każda kolejna liczba naturalna N jest funkcją która przyjmuje jako argument funkcję f, oraz argument x, i zwraca funkcję f złożoną z samą sobą N razy.
Zagmatwane? No k⁎⁎wa raczej że tak xD ale pokażemy to na przykładzie:
Niech naszą funkcją f będzie znany sinus, a x pewną liczbą rzeczywistą.
W takim wypadku:
0(f, x) = x
1(f, x) = sin(x)
2(f, x) = sin(sin(x))
3(f,x) = sin(sin(sin(x)))
...
no, albo możemy np. napisać
3(λx.x^2, 3) = (((3^2)^2)^2) = 6561
Zastosowałem tutaj jednak pewien skrót, którego wcześniej nie opisałem.
Funkcja 3 jest zgodnie z tym co pisałem wyżej funkcją tylko jednego argumentu, a ja tutaj użyłem dwóch. Troche nielegalizm.
Jak więc zdefiniować funkcję kilku argumentów, na przykład dodawanie?
A no tak:
funkcja add(x,y) której wynikiem będzie x+y, będzie zdefiniowana jako:
add = λx.λy.x+y
czyli funkcja add jest funkcją która przyjmuje jakiś argument (np. 3), i zwraca funkcję która zwraca wynik dodawania jakiegoś y z podanym x. W takim wypadku więc add(3) jest funkcją, która przyjmuje jako argument pewien y, i zwraca wynik operacji y+3
Pokręcone? Tak, ale taki system pozwala nam zrobić w nim właściwie wszystko, włącznie z mnożeniem funkcji przez siebie.
Jako że ten wpis jest już dosyć długi, to zostawię was z samym rozwiązaniem, oraz filmem który to lepiej rozwija:
https://www.youtube.com/watch?v=RcVA8Nj6HEo
Teraz możecie zupełnie śmiało powiedzieć, że +*+(3)(1)(3)(2)=262144
#matematyka #ciekawostki
