Results


Some techniques for proving correctness of programs which alter data structures

Classics

We will extend Floyd's proof system for flow diagrams to handle commands Which process lists. McCarthy and Painter (1967) deal with arrays by introducing'change' and'access' functions so as to write a[i]: a[j] 1 as a: change (a, i, access 24 BURSTALL King (1969) in mechanising Floyd's technique gives a method for such assignments which, however, introduces case analysis that sometimes becomes unwieldy. Let us recall briefly the technique of Floyd (1967) for proving correctness of programs in flow diagram form. We will here retain the inductive method of Floyd for dealing with flow diagrams containing loops, but give methods for coping with more complex kinds of assignment command.


The sharing of structure in theorem-proving programs

Classics

We introduce the concept of the value of an expression in a binding environment which we use to standardize clauses apart and share the structure of parents in representing the resolvent. Lists provide the most obvious and natural representation of literals because lists perfectly reflect function nesting structure. Therefore, we introduce the concepts of an expression, a binding environment, and the value of an expression in a binding environment. If VALI and VA L2 have no common instance, then the call will return false.


Computational logic: the unification computation

Classics

In designing an actual realization of the unification algorithm the first question which arises is how best to represent the expressions in the computer store. We have a collection of tables: symbol, args, vble, arity, subst, term, equals, and part, each of which has the same number N of rows. All the tables have one column, with the exception of args; and args has as many columns as the arity of that symbol, in the expressions being represented, whose arity is largest. We always arrange matters so that in a normal representation, distinct rows represent distinct expressions, i.e., so that We are now ready to explain the computation.


Pictorial relationships -- a syntactic approach

Classics

In a free paraphrase of Chomsky we might say that a parser translates some set of surface relationships on elements, into some set of underlying relationships on those (and other) elements. There have been several attempts to write generative grammars for pictorial expressions notably those of Kirsch (1964), Narasimhan (1966) and Shaw (1967). An immediate distinction between string expressions (English sentences, say) and pictorial expressions now emerges. Published accounts of'picture syntax' have not provided any systematic accounts of the variety of pictorial relationships with which they deal, much less a discovery procedure for those relationships.


The generalized resolution principle

Classics

The generalized resolution principle is a single inference principle which provides, by itself, a complete formulation of the quantifier-free first-order predicate calculus with equality. The completeness theory of the generalized resolution principle exploits the very intuitive and natural idea of attempting to construct counterexamples to the theorems for which proofs are wanted, and makes this the central concept. The expressions are all built up from primitive We shall usually employ lower case letters for individual symbols and upper case letters for function and relation symbols. Similarly, a counterexample to a general proposition is an interpretation which strongly satisfies its premisses but falsifies its conclusion.


LISP 1.5 Programmer's Manual

Classics

"The LISP language is designed primarily for symbolic data processing. It has been used for symbolic calculations in differential and integral calculus, electrical circuit theory, mathematical logic, game playing, and other fields of artificial intelligence.LISP is a formal mathematical language. It is therefore podsible to give a concise yet complete description of it. Such is the purpose of this first section of the manual. Other sections will describe ways of using LISP to advantage and will explain extensions of the language which make it a convenient programming system."The M.I.T. Press


GPS, a program that simulates human thought

Classics

This article is concerned with the psychology of human thinking. It setsforth a theory to explain how some humans try to solve some simpleformal problems. The research from which the theory emerged is intimatelyrelated to the field of information processing and the construction of intelligentautomata, and the theory is expressed in the form of a computerprogram. The rapid technical advances in the art of programming digitalcomputers to do sophisticated tasks have made such a theory feasible.It is often argued that a careful line must be drawn between the attemptto accomplish with machines the same tasks that humans perform, andthe attempt to simulate the processes humans actually use to accomplishthese tasks. The program discussed in the report, GPS (General ProblemSolver), maximally confuses the two approaches—with-mutual"!benefit. Lerende Automaten, Munich: Oldenberg KG


Steps Toward Artificial Intelligence

Classics

... The literature does not include any general discussion of the outstanding problems of this field. In this article, an attempt will be made to separate out, analyze, and find the relations between some of these problems. Analysis will be supported with enough examples from the literature to serve the introductory function of a review article, but there remains much relevant work not described here.Proc. Institute of Radio Engineers 49, p. 8-30


Programs with common sense

Classics

This is the first clear call for the separation of knowledge and inference procedure in AI. In this paper McCarthy advocates using predicate logic as a declarative representation of knowledge and first-order logic as the inference procedure.Additional notes on this landmark paper at http://www-formal.stanford.edu/jmc/mcc59/mcc59.html.Bar-Hilel's comments in the discussion section from the conference are also interesting:"PROF. Y. BAR-HILLEL: Dr. McCarthy's paper belongs in the Journal of Half-Baked Ideas, the creation of which was recently proposed by Dr. I. J. Good. Dr. McCarthy will probably be the first to admit this. Before he goes on to bake his ideas fully, it might be well to give him some advice and raise some objections. He himself mentions some possible objections, but I do not think that he treats them with the full consideration they deserve; there are others he does not mention.For lack of time, I shall not go into the first part of his paper, although I think that it contains a lot of highly unclear philosophical, or pseudo-philosophical assumptions. I shall rather spend my time in commenting on the example he works out in his paper at some length. Before I start, let me voice my protest against the general assumption of Dr. McCarthy -- slightly caricatured -- that a machine, if only its program is specified with a sufficient degree of carelessness, will be able to carry out satisfactory even rather difficult tasks."In Proceedings of the Symposium on the Mechanization of Thought Processes, National Physical Laboratory 1:77-84


Empirical Explorations with the Logic Theory Machine: A Case Study in Heuristics

Classics

This is a case study in problem-solving, representing part of a program of research on complex information-processing systems. We have specifieda system for finding proofs of theorems in elementary symbolic logic, and by programming a computer to these specifications, have obtained empirical data on the problem-solving process in elementary logic. The program is called the Logic Theory Machine (LT); it was devised to learn how it is possible to solve difficult problems such as proving mathematical theorems, discovering scientific laws from data, playing chess, or understanding the meaning of English prose.The research reported here is aimed at understanding the complexp rocesses (heuristics) that are effective in problem-solving. Hence, we are not interested in methods that guarantee solutions, but which require vastamounts of computation. Rather, we wish to understand how a mathematician, for example, is able to prove a theorem even though he does not know when he starts how, or if, he is going to succeed.Proceedings of the Western Joint Computer Conference, 15:218-239. Reprinted in Feigenbaum and Feldman, Computers and Thought (1963).