Prolog is a logic programming language in which hereditary Harrop formulas generalise Horn formulas, and simply typed-terms generalise Prolog terms. One may wonder whether these extensions are simultaneously required, and if it exists useful subsets of Prolog, at least for pedagogical purposes. We answer this question by exhibiting a network of necessity links between the new features of Prolog...