Płód, jeśli o nim nie słyszałeś, możesz przeczytać tutaj . Wykorzystuje system „macierzy wywołań” i „grafów wywołań”, aby znaleźć wszystkie „zachowania rekurencyjne” wywołań rekurencyjnych w funkcji. Pokazanie, że funkcja się kończy, pokazuje, że wszystkie zachowania rekurencyjne wywołań rekurencyjnych wykonanych do funkcji są zgodne z pewnym „porządkiem leksykograficznym”. Jego sprawdzanie zakończenia pozwala na wszystkie prymitywne funkcje rekurencyjne i funkcje, takie jak funkcja Ackermanna. Zasadniczo umożliwia wielokrotną argumentację prymitywnej rekurencji. Jest to również w zasadzie kontroler terminacji Agdy; Uważam, że Coq ma również podobne funkcje, choć może bardziej ogólne.
Po przeczytaniu artykułu „Total Functional Programming” DA Turnera . Wyjaśnia, że jego proponowany język byłby w stanie wyrazić wszystkie „prymitywne funkcjonały rekurencyjne”, jak widać w Systemie T zbadanym przez Godela. Mówi dalej, że ten system „znany jest z tego, że obejmuje każdą funkcję rekurencyjną, której całość można udowodnić za pomocą logiki pierwszego rzędu”.
Dawka płodu pozwala wszystkim prymitywnym funkcjom rekurencyjnym? Jeśli tak, to czy pozwala na funkcje, które nie są prymitywnymi funkcjami rekurencyjnymi? Czy można podać cytat z odpowiedzią na to pytanie? (nie jest to tak naprawdę konieczne, ponieważ jestem po prostu zainteresowany; po prostu fajne byłoby czytanie małżeństwa w tej sprawie)
Pytanie dodatkowe: pierwotne funkcje funkcjonalne rekurencyjne mają bardzo zwięzłą definicję w odniesieniu do kombinacji: wpisane S i K (które nie mogą wyrazić kombinatory punktu stałego), zero, funkcja następcy i funkcja iteracji; Otóż to. Czy istnieją inne bardziej ogólne takie języki, które mają tak zwięzłą definicję i w których kończą się wszystkie wyrażenia?