Janin, jika Anda belum pernah mendengarnya, dapat dibaca di sini . Ia menggunakan sistem 'matriks panggilan' dan 'grafik panggilan' untuk menemukan semua 'perilaku rekursi' dari panggilan rekursif dalam suatu fungsi. Untuk menunjukkan bahwa suatu fungsi berakhir, itu menunjukkan bahwa semua perilaku rekursi dari panggilan rekursif yang dilakukan pada suatu fungsi mematuhi 'pemesanan leksikografis' tertentu. Pengecek terminasi ini memungkinkan semua fungsi rekursif primitif dan fungsi seperti fungsi Ackermann. Pada dasarnya itu memungkinkan rekursi primitif multi-argumen. Ini pada dasarnya juga merupakan pemeriksa penghentian Agda; Saya percaya bahwa Coq memiliki beberapa fasilitas serupa walaupun mungkin lebih umum.
Dari membaca kertas "Total Functional Programming" oleh DA Turner . Dia menjelaskan bahwa bahasa yang diusulkannya akan mampu mengekspresikan semua "fungsi rekursif primitif" seperti yang terlihat dalam Sistem T yang dipelajari oleh Godel. Dia melanjutkan dengan mengatakan bahwa sistem ini "diketahui mencakup setiap fungsi rekursif yang totalitasnya dapat dibuktikan dalam logika urutan pertama".
Dosis Janin memungkinkan semua fungsi rekursif primitif? Jika demikian, apakah itu memungkinkan fungsi yang bukan fungsional rekursif primitif? Bisakah kutipan diberikan untuk jawaban ini? (Ini sebenarnya tidak perlu karena saya hanya tertarik; Hanya saja beberapa membaca perkawinan tentang masalah ini akan menyenangkan)
Pertanyaan bonus: Fungsional rekursif primitif memiliki definisi yang sangat ringkas dalam hal combinator: diketik S dan K (yang tidak dapat mengekspresikan combinator titik tetap), nol, fungsi penerus, dan fungsi iterasi; itu dia. Apakah ada bahasa lain yang lebih umum yang memiliki definisi ringkas dan di mana semua ekspresi berakhir?