Dzisiaj jest 19 czerwca 2025 r.
Chcę dodać własny artykuł
Reklama

Arytmetyka w rachunku lambda

Chcę dodać własny artykuł

Arytmetyka w rachunku lambda

Arytmetyka w rachunku lambda opiera się na liczbach naturalnych Churcha.

Następnik

Funkcja następnika, oznaczana jako S, jest zdefiniowana jako:
S \equiv \lambda xyz.y(xyz).
Funkcja ta dodaje jedno wywołanie do danej liczby, co skutkuje zwiększeniem jej wartości o jeden.

Dodawanie

Dodawanie dwóch liczb naturalnych Churcha K i L realizuje się przez zastosowanie funkcji następnika K-krotnie do liczby L:
\oplus \equiv \lambda xy. x S y.
Z definicji wynika, że funkcja f jest stosowana K-krotnie do zmiennej x.

Mnożenie

Mnożenie w rachunku lambda definiuje się następująco:
\otimes \equiv \lambda xyz.x(yz).
Obliczając iloczyn \otimes x y, powielamy termin (yz) x-krotnie, co daje wynik x \times y.

Poprzednik

Poprzednik liczby K określamy jako liczbę L, dla której następnikiem jest K:
P(K) = L \iff S(L) = K.
Funkcję poprzednika P definiujemy jako:
P \equiv \lambda n. (n \Psi ( \lambda z.z00))F.
Funkcja \Psi tworzy parę (a+1,a).

Odejmowanie

Odejmowanie realizowane jest przez wielokrotne zastosowanie funkcji poprzednika:
\ominus \equiv \lambda xy.y P x.
Należy pamiętać, że odejmowanie nie jest operacją przemienną.

Potęgowanie

Potęgowanie x^y przeprowadza się przez wielokrotne mnożenie:
x^y = \underbrace{x*x*\ldots*x}_{y\text{-razy}}.
W rachunku lambda zapis potęgowania można zrealizować jako:
\mbox{pow} \equiv \lambda xy. (y\Xi(\lambda z.z 1 x))T.
Funkcja \Xi zwraca parę (a*x,x), a aplikując ją y-krotnie do pary (1,x), otrzymujemy wynik x^y.

Podsumowanie

Rachunek lambda umożliwia definiowanie podstawowych operacji arytmetycznych, takich jak dodawanie, odejmowanie, mnożenie, dzielenie i potęgowanie, za pomocą funkcji opartych na liczbach naturalnych Churcha.