If you are looking for an answer to the question What is Artificial Intelligence? and you only have a minute, then here's the definition the Association for the Advancement of Artificial Intelligence offers on its home page: "the scientific understanding of the mechanisms underlying thought and intelligent behavior and their embodiment in machines."
However, if you are fortunate enough to have more than a minute, then please get ready to embark upon an exciting journey exploring AI (but beware, it could last a lifetime) …
This is an informal description of my ideas about using formal logic as a tool for reasoning systems using computers. Introduction The title of this paper contains both the words'mechanized' and'theory'. I want to make the point that the ideas presented here are not only of interest to theoreticians. I believe that any theory of interest to artificial intelligence must be realizable on a computer. I will not present difficult examples.
The first section discusses the importance of having systems that understand the concept of knowledge, and how knowledge is related to action. Section 2 points out some of the special problems that are involved in reasoning about knowledge, and section $ presents a logic of knowledge based on the idea of possible worlds. Section 4 integrates this with a logic of actions and gives an example of reasoning in the combined system. Section 5 makes some concluding comments. I. Introduction One of the most important concepts an intelligent system needs to understand is the concept of knowledge.
Program synthesis is the systematic derivation of a program from a given specification. A deductive approach to program synthesis is presented for the construction of recursive programs. This approach regards program synthesis as a theorem-proving task and relies on a theorem-proving method that combines the features of transformation rules, unification, and mathematical induction within a single framework. MOTIVATION The early work in program synthesis relied strongly on mechanical theoremproving techniques. More recently, program synthesis and theorem proving have tended to go their separate ways.
The idea of this theorem is that since it is easier to count than to construct the proofs of complicated theorems, this metatheorem can save you the work of generating a proof. More detailed examples will be given in the next section. FOL we introduce a special LS pair mErA. This allows a user to assert many other things about a particular theory. Several examples will be given below.
John McCarthy, born at Boston, Mass. in 1927, received his B.S. degree in mathematics at the California Institute of Technology in 1948, and his Ph.D. also in mathematics at Princeton University in 1951. He is at present Assistant Professor of Communication Sciences at the Massachusetts Institute of Technology. His present interests are in the artificial intelligence problem, automatic programming and mathematical logic. He is co-editor with Dr. C. E. Shannon of "Automatic Studies". However, certain elementary verbal reasoning processes so simple that they can be carried out by any non--feeble--minded human have yet to be simulated by machine programs.
A new predicate calculus deduction system based on production rules is proposed. The system combines several developments in Artificial Intelligence and Automatic Theorem Proving research including the use of domain-specific inference rules and separate mechanisms for forward and backward reasoning. It has a clean separation between the data base, the production rules, and the control system. Goals and subgoals are maintained in an AND/OR tree structure. Logical deduction is a basic activity in many artificial intelligence (Al) systems.
We describe how clauses in resolution programs can be represented and used Without applying substitutions or cons-ing lists of literals. The amount of space required by our representation of a clause is independent of the number of literals in the clause and the depth of function nesting. 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. Some data comparing our representation to more conventional ones is given. In this paper we are concerned with representing literals and clauses in computers.
The intention is as follows. When x is printed it is (3) and y when printed is (2, 3) rather than (2, 1) as it would have been had the last assignment left it undisturbed. How are we to prove assertions about such programs? Our task will be to obtain a more formal means of making inferences, which, unlike the picture language, will deal with general propositions about lists. We will extend Floyd's proof system for flow diagrams to handle commands Which process lists.
In attaining these objectives certain other desirable features of programming languages had to be relegated to secondary importance: (vi) Fast arithmetical facilities on integer and real numbers. Naturally whether (iii) or (vi) and (vii) are attained is to a considerable extent a matter of implementation. The following main features are provided. Roughly analogous features of some other programming languages are mentioned in brackets as a guide: (i) Variables (cf. ALGOL but no types#at compile time).