+ All Categories
Home > Documents > A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf ·...

A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf ·...

Date post: 01-Jun-2020
Category:
Upload: others
View: 12 times
Download: 0 times
Share this document with a friend
32
Logic in Computer Science Introduction Marcello Bonsangue Spring 2015
Transcript
Page 1: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

Logic in Computer Science

Introduction

Marcello Bonsangue

Spring 2015

Page 2: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

2

Logics - Spring 2015

Slide 2

What is Logic?

Logic from the Greek The tool for distinguishing between the true and the false (Averroes).

The science of the most general laws of truth (Gottlob Frege)

The study of the formal principles of reasoning (Webster dictionary)

The analysis and appraisal of arguments (Wikipedia)

If it was so, it might be,

and if it were so, it would be;

but as it isn’t, it ain’t.

That’s logic!

Lewis Carol – via Tweedledee in

Through the looking glass

Page 3: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

What is logic?

You drive from home to the University at 20

km/h and return by the same route at 30

km/h.

Discounting the time spent at the University,

what was your average speed?

3

Logics - Spring 2015

Slide 3

Page 4: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

What is logic?

4

Logics - Spring 2015

Slide 4

d = distance Home - University

T = time to get to University t = time get back

d = 20T thus T = d/20

d = 30t thus t = d/30

A = average speed

2d = A(T + t)

2d = A(d/20 + d/30) substitution

2d = A(3d/60 + 2d/60) calculation

2d = A(5d/60) calculation

A = 120d/5d thus A = 24

Page 5: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

What is logic?

5

Logics - Spring 2015

Slide 5

A man is looking at a photograph of someone.

His friend asks who is she. The man replies, “I do not have brothers

and sisters. But that girl’s father is my father's daughter."

Who is portrayed in the photograph?

Who is she?

Page 6: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

Is it logic?

6

Logics - Spring 2015

Slide 6

All men are intelligent

Plato is a man

Therefore, Plato is intelligent

All men are intelligent

Women are not men

Therefore, women are not intelligent

Page 7: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

Is it logic?

7

Logics - Spring 2015

Slide 7

All elms are trees.

All oaks are trees.

Therefore, all elms are oaks.

Page 8: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

8

Trivium (three ways)

Preparatory study at medieval university

Grammar, the art of combining symbols to express thoughts

Logic, the art of thinking

Rhetoric, the art of communicating thoughts

to be studied before quadrivium

Arithmetic, geometry, music, and astronomy

Simpler, thus … trivial !

Logics - Spring 2015

Slide 8

Page 9: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

9

The four ages of Logic

Symbolic logic (500 b.C. – 19th century)

Algebraic logic (mid – late 19th century)

Mathematical logic (late 19th – mid 20th century)

Logic in computer science (late 20th century – )

Logics - Spring 2015

Slide 9

Page 10: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

10

The origin of logic

Plato: what is that can properly

be called true or false?

In formal debate sophists used

rules to determines who had

won an argument

Logic dealt with arguments in natural language used

by humans

Logics - Spring 2015

Slide 10

Page 11: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

Correct argument ?

11

The guilty man

If Alice testifies against Bob in court, Bob will be

found guilty.

Bob was found guilty.

Therefore, Alice must have testified against him.

Logics - Spring 2015

Slide 11

Page 12: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

12

Ambiguities and paradoxes

All or one?

Eric does not believe that Mary can pass any test.

Different meanings

Students hate annoying professors

Paradox

This sentence is a lie

Logics - Spring 2015

Slide 12

Page 13: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

13

Symbolic logic

Aristotele’s syllogism (350 b.C.)

Major premise: All men are mortal.

Minor premise: Socrates is a man.

Conclusion: Socrates is mortal.

Bacon (17th century)

Not deduction, but induction should be used for drawing

generalized conclusions from axioms or observations

Kant (18th century)

Logic is the one completed science, and Aristotelian logic

included everything about logic there is to know. Logics - Spring 2015

Slide 13

Page 14: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

14

The four ages of Logic

Symbolic logic (500 b.C. – 19th century)

Algebraic logic (mid – late 19th century)

Mathematical logic (late 19th – mid 20th century)

Logic in computer science (late 20th century – )

Logics - Spring 2015

Slide 14

Page 15: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

15

Algebraic Logic

Leibniz's dream (1680): combining symbolic logic,

mathematics and philosophy.

Formulate logic using a mathematical language

Ideas are composed from very few simple ones using few

combinators like conjunction, negation, …

Boole and De Morgan (end 17th century)

Study of properties of conjunction, negation … of symbols

in analogy to multiplication, subtraction of numbers

a(b + c) = (ab) + (ac) a (b c) = (a b) (a c)

Logics - Spring 2015

Slide 15

Page 16: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

16

Algebraic Logic

Dodgson (Lewis Carol) (1860)

Venn’s diagrams as a visualization of sets

Schröder's “The algebra of Logic” (1890)

Logic is calculating discipline, a scientific universal

language that looks more like a sign language than like a

sound language.

Logic become a useful tool to resolve many serious

problems in mathematics

Logics - Spring 2015

Slide 16

Page 17: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

17

The four ages of Logic

Symbolic logic (500 b.C. – 19th century)

Algebraic logic (mid – late 19th century)

Mathematical logic (late 19th – mid 20th century)

Logic in computer science (late 20th century – )

Logics - Spring 2015

Slide 17

Page 18: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

18

Mathematical logic

Mathematics become complex … and ambiguous

Cauchy (1820): infinite sum of continuous function is

continuous

Abel (1826): counterexample!

Frege (1879) proposes a new logic with quantifiers as

a language for mathematics to resolve ambiguities

more powerful than Aristotelian (propositional) logic

Weierstrasse (,) definition of limits and continuity

Peano axiomatization of natural numbers

Hilbert axiomatization of geometry Logics - Spring 2015

Slide 18

Page 19: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

19

The golden age

Cantor set theory, infinity of infinities, transfinite numbers

Mathematics is apart from physical phenomena

The absolute infinity nature of God is challenged

Hilbert’s program (1920)

Finitary logic is the language of mathematics

Completeness: all true mathematical statements should be

proved in this logic

Consistency: no contradiction can be obtained in this logic

Decidability: there should be an algorithm for deciding

theorems.

Logics - Spring 2015

Slide 19

Page 20: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

20

The Russell paradox

Cantor set theory is inconsistent (1901)

If T = { x | x T } then x T x T

Russel and Whitehead Principia Mathematica (1919):

Solution by using a hierarchy of sets (type theory)

Sets of a given type can contain sets of preceding types (those

lower in the hierarchy), thus preventing loops.

Zermelo-Fraenkel axiomatic set theory (1922)

Set theory as foundation of mathematics

Logics - Spring 2015

Slide 20

Page 21: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

21

Mathematics is more than sets

Continuum Hypothesis (CH)

There is no set between the Integers and the Reals

Axiom of choice (AC)

It is always possible to select an element from each non-

empty set of an infinite collection of sets.

Goedel (1930) and Cohen (1960)

Assuming or not either CH or AC does not give a

contradiction in ZF set theory

There are mathematical statements that are independent

from set theory Logics - Spring 2015

Slide 21

Page 22: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

22

The end of Hilbert’s program

Goedel (1931)

If a logic is strong enough to form statement about itself,

then it cannot be complete

It is impossible to prove consistency of arithmetic within any

formal theory of arithmetic

Church (1936), Turing (1937), Post (1946)

There are problems that no algorithm

will ever solve

Logic is not the ultimate foundation of mathematics,

simply another branch of it Logics - Spring 2015

Slide 22

Page 23: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

23

The four ages of Logic

Symbolic logic (500 b.C. – 19th century)

Algebraic logic (mid – late 19th century)

Mathematical logic (late 19th – mid 20th century)

Logic in computer science (late 20th century – )

Logics - Spring 2015

Slide 23

Page 24: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

24

Computer Science started as Logic

Outcome of Hilbert’s program Formalization of algorithm (Church, Turing)

Stored-program computers (Turing machine, von Neumann)

Functional programming (Church -calculus)

Type theory (Russell, Whitehead, Church)

Recursive function theory (Goedel, Church, Turing, Kleene,

Post)

Automata theory

Logics - Spring 2015

Slide 24

Page 25: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

25

Computer Science and Logic

Computer Science = design and study of

computational systems via formal languages

Logic = formal language to study properties of

mathematical structures

Logic is the calculus of computer science

Logic has been more effective in computer science than it

has been in mathematics

Logics - Spring 2015

Slide 25

Page 26: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

26

Logic and system verification

Model checking

Program verification

Model checker

Spec

Model

Yes!

No: counterexample

Spec

System

Yes!

No

Logics - Spring 2015

Slide 26

Page 27: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

27

Logic and programming languages

Type theory

Program semantics

Rewriting systems

Functional programming

Logic and constraint programming Logics - Spring 2015

Slide 27

Page 28: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

28

Logic and databases

Query languages (SQL)

Based on first-order logic

Query evaluation

Based on relational algebra

XML Data Type Definition

Based on tree automata

XML queries

Based on tree transducers

Logics - Spring 2015

Slide 28

Page 29: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

29

Logic and ….

Artificial intelligence

Computational complexity

Hardware circuits

Security

Logics - Spring 2015

Slide 29

Page 30: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

30

Logic from computer science

Logics on finite structures

Fixpoint logics, modal and temporal logics

Description logics, non-monotonic logic

Connections between logic and automata

Coinduction, coalgebra, bisimulation

Logics - Spring 2015

Slide 30

Page 31: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

Reference

Moshe Vardi A Brief History of Logic, 2003.

31

Logics - Spring 2015

Slide 31

Page 32: A calculus for component oriented programmingliacs.leidenuniv.nl/~bonsanguemm/Logic/logic_1.pdf · Algebraic Logic Leibniz's dream (1680): combining symbolic logic, mathematics and

2/8/2015

32

Logic – Spring 2013

Slide 32


Recommended