An Introduction to Computational Logic. Introduction to Computational Logic 1

An Introduction to Computational Logic Introduction to Computational Logic 1 History: Basic Ideas Aristotle (†322 B.C.) Formalization syllogisms ...
Author: Guest
0 downloads 1 Views 692KB Size
An Introduction to Computational Logic

Introduction to Computational Logic

1

History: Basic Ideas

Aristotle (†322 B.C.) Formalization syllogisms SeP PeQ SeQ

Herodot (†430 B.C.) Calculization Egyptian stones, abacus

Herodot (†430 B.C.) Mechanization mechanai

Introduction to Computational Logic

2

History: Combining the Ideas (1)

Descartes (1596-1650)

Hobbes (1588-1679)

Leibnitz (1646-1719)

geometry

thinking = calculating

lingua characteristica calculus ratiocinator universal encyclopedia

Pascal (1623-1662)

Leibnitz (1646-1719)

Lullus (1232-1315) ars magna

Introduction to Computational Logic

3

History: Combining the Ideas (2)

DeMorgan (1806-1871) Boole (1815-1864) propositional logic

Frege(1882)

Whitehead, Russell (1910-1913)

first order logic “Begriffsschrift”

Principia Mathematica

Javins(1869)

Babbage (1792-1871)

evaluating boolean expressions

analytical engine

Introduction to Computational Logic

4

History: Combining the Ideas (3)

Skolem, Herbrand, G¨ odel (1930)

“Beamten”-logic: F |= G iff G ∈ F “H¨ ohere Beamten”-logic: F |= G iff F = {G}

completeness of first order logic Zuse (1936-1941) Z1, Z3 Turing (1936) Turing machine

Introduction to Computational Logic

5

History: Finally, Computers Arrive

von Neumann (1946)

Zuse (1949)

Turing (1950)

computer

Plankalk¨ ul

Turing test Can machines think?

Introduction to Computational Logic

6

History: Deduction Systems I early 1950s: Davis: Preßburger arithmetic. I 1955/6: Beth, Sch¨ utte, Hintikka: semantic tableaus. I 1956: Simon, Newell: first heuristic theorem prover. I late 1950s: Gilmore, Davis, Putnam: theorem prover based on Herbrand’s “Eigenschaft B Methode”. I 1960: Prawitz: unification. I 1965: J.A. Robinson: resolution principle. I thereafter: improved resolution rules vs. intelligent heuristics. I 1996: McCune’s OTTER proves Robbin’s conjecture. I today: TPTP library, yearly CASC competition.

Introduction to Computational Logic

7

History: Logic Programming I 1971: A. Colmerauer: System Q

Prolog.

brother-of (X, Y ) ← father-of (Z, X ) ∧ father-of (Z, Y ) ∧ male(X ). I 1979: R.A. Kowalski: algorithm = logic + control. I late-70s to mid-80s: theoretical foundations. I 1977: D.H.D. Warren: first Prolog compiler. I 1982: A. Colmerauer: Prolog II

constraints.

. Constraint logic programming.

Introduction to Computational Logic

8

Deduction I A world without deduction would be a world without science, technology, laws, social conventions and culture (Johnson–Laird, Byrne: 1991).

Introduction to Computational Logic

9

A Simple Example I ‘Socrates is a human. All humans are mortal. Hence, Socrates is mortal. human(socrates) (forall X ) (if human(X ) then mortal(X )) mortal(socrates)

h( s ) (∀X ) (h(X ) → m(X )) m( s ) I 5 is a natural number. All natural numbers are integers. Hence, 5 is an integer.

Introduction to Computational Logic

10

The Addition of Natural Numbers I The sum of zero and the number Y is Y. The sum of the successor of the number X and the number Y is the successor of the sum of X and Y.

. Are you willing to conclude from these statements that the sum of one and one is two? 0+Y =Y s (X ) + Y = s (X + Y ) s(0) + s(0) = s(s(0))

. Are you willing to conclude that addition is commutative? 0+Y =Y s (X ) + Y = s (X + Y ) X+Y =Y +X

Introduction to Computational Logic

11

Applications I Functional equivalence of two chips. I Verification of hard- and software. I Year 2000 problem. I Eliminating redundancies and proving properties of group communication systems. I Designing the layout of yellow pages. I Managing a tunnel project. I Natural language processing. I Cognitive Robotics. I Semantic web. I Law. Logic is Everywhere

Introduction to Computational Logic

12

Some Background Literature I L. Chang and R.C.T. Lee: Symbolic Logic and Mechanical Theorem Proving. Academic Press, New York (1973). I M. Fitting: First–Order Logic and Automated Theorem Proving. Springer Verlag. Berlin, second edition (1996). I J. Gallier: Logic for Computer Science: Foundations of Automated Theorem Proving. Harper and Row. New York (1986). I S. H¨ olldobler: Logik und Logikprogrammierung. Synchron Publishers GmbH, Heidelberg (2001). I D. Poole and A. Mackworth and R. Goebel: Computational Intelligence: A Logical Approach. Oxford University Press, New York, Oxford (1998). I S. Russell and P. Norvig: Artificial Intelligence. Prentice Hall, Englewood Cliffs (1995). I U. Sch¨ oning: Logik f¨ ur Informatiker. Spektrum Akademischer Verlag (1995).

Introduction to Computational Logic

13

Module Foundations I Students without solid background in logic:

. Logic (H¨ olldobler, Pietzsch) . Science of Computational Logic (Thielscher, Pietzsch) I Students with a solid background in logic:

. Complexity Theory (Lutz) . Science of Computational Logic (Thielscher, Pietzsch) I Logic is offered from now until the end of November. I Science of Computational Logic is offered from beginning of December until end of the lecturing period. I Common written exam in the examination period following the lecturing period.

Introduction to Computational Logic

14

Logic I Agenda

. Introduction . Propositional Logic . First Order Logic I Exercises

. . . . . .

Exercises are announced each week. 3 students may form a group. Solutions are to be turned in a week later. Solutions will be corrected. 10% of the final mark will be given based on performance in the exercises. In the tutorial students discuss their solutions to exercises.

I More details including the exercises can be found on our web pages. I Ask questions as soon as they arise, anywhere and at anytime. I Don’t except a situation, where you do not understand everything. Introduction to Computational Logic

15