The Problem with Prolog by David S. Warren Computer Science Department University at Stony Brook Prolog and Logic Programming are based on SLD resolution, a computational method that allows a set of logical formulas (specifically Horn clauses) to be understood as a program in a nondeterministic procedural programming language. Thus a logic program is both a set of logical formulas and a description of an algorithm; it can be understood declaratively as specifying a logical model or procedurally as a specifying a computation. And the foundational theorem of Logic Programming is that since SLD is a complete proof strategy for Horn clauses, these ways of thinking are equivalent. But I claim that there is a serious fly in this ointment. The experience of Prolog programming, after the first two baby programs, is not of declarative logical specification. And Prolog has not caught on the way one would expect of such an elegant and potentially useful paradigm. In this talk I will describe the current foundations of Prolog in simple terms, analyze what the real problem is, and propose a solution.