Feto, se non ne hai sentito parlare, può essere letto qui . Utilizza un sistema di "matrici di chiamata" e "grafici di chiamata" per trovare tutti i "comportamenti ricorsivi" delle chiamate ricorsive in una funzione. Mostrare che una funzione termina mostra che tutti i comportamenti ricorsivi delle chiamate ricorsive fatte a una funzione obbediscono a un certo "ordinamento lessicografico". Il suo controllo di terminazione consente tutte le primitive funzioni ricorsive e funzioni come la funzione di Ackermann. Fondamentalmente consente la ricorsione primitiva multi-argomento. Questo è fondamentalmente anche il controllo di terminazione di Agda; Credo che Coq abbia alcune strutture simili, anche se forse più generali.
Dalla lettura dell'articolo "Programmazione funzionale totale" di DA Turner . Spiega che il suo linguaggio proposto sarebbe in grado di esprimere tutti i "funzionali primitivi ricorsivi" come visto nel Sistema T studiato da Godel. Prosegue affermando che questo sistema è "noto per includere ogni funzione ricorsiva la cui totalità può essere dimostrata nella logica del primo ordine".
Dose Feto consente tutti i funzionali primitivi ricorsivi? In tal caso, consente funzioni che non sono funzionali ricorsivi primitivi? È possibile fornire una citazione per la risposta a questo? (questo non è in realtà necessario perché sono solo interessato; è solo che leggere un po 'di coniugi sulla questione sarebbe carino)
Domanda bonus: i funzionali ricorsivi primitivi hanno una definizione molto concisa in termini di combinatori: S e K digitati (che non possono esprimere i combinatori a punto fisso), zero, la funzione successore e la funzione di iterazione; questo è tutto. Esistono altre lingue più generali con una definizione così concisa e in cui terminano tutte le espressioni?