This repository provides an implementation and recreation of the first published version of the Logic Theory Machine, also known as the Logic Theorist. Originally developed by Allen Newell, J. C. Shaw, and Herbert A. Simon in 1956, this program was designed to prove theorems in propositional logic using principles from Principia Mathematica. The project includes a Python-based interpreter for the IPL-I abstract machine language, tools to run the program against historical axioms and theorems, and utilities to analyze generated proofs.
Main components:
Implementation of the 1956 Logic Theory Machine
Propositional logic based on Principia Mathematica
Python interpreter for the IPL-I language
Tools for running simulations and verifying results
The Wikipedia article details the Logic Theorist, created in 1956 by Allen Newell, Herbert A. Simon, and Cliff Shaw. Widely considered the first AI program, it successfully proved 38 of the first 52 theorems in Principia Mathematica, even discovering more elegant proofs than those originally crafted by Russell and Whitehead.
Information Processing Language (IPL) is a programming language created by Allen Newell, Cliff Shaw, and Herbert A. Simon at RAND Corporation and the Carnegie Institute of Technology in 1956. IPL introduced concepts like list processing, dynamic memory allocation, recursion, and cooperative multitasking. It was an assembly language for manipulating lists and influenced several early AI programs. However, it was soon replaced by Lisp due to its more powerful features and simpler syntax.
"This Memorandum sets out the complete rules for coding in Information Processing Language-V (IPL-V), and documents extensions incorporated since publication of the Information Processing Language-V Manual. A summary of extensions and the minor modifications to the language is contained in the final section ($25.0). IPL-V processors are available for the IBM 650, 704, 709, 7090, 7094, Philco 2000, Bendix G-20, CDC 1604, UNIVAC 1105, and the AN/FSQ-32. A system for the Burroughs 220 is under development. Machine system write-ups are available for the various machines on which IPL-V is being used. These write-ups contain differences in the language peculiar to each machine, and must be consulted before using IPL-V. An index, a list of the basic IPL-V processes, and a full-scale copy of the coding sheet, suitable for photo- reproduction, appear at the end of the Memorandum."
Abstract:
This paper is an informal introduction to Information Processing Language V (IPL-V), a symbol and list-struc- ture manipulating language presently implemented on the IBM 650, 704 and 709. It contains a discussion of the problem context in which a series of Information Proc- essing Languages has developed and of the basic concepts incorporated in IPL-V. A complete description of the language can be found in the IPL-V Programmer's Manual