introduction to the theory of complexity classes and logic · languages and turing-machines...

141
Introduction to the Theory of Complexity Classes and Logic Stefan Kunkel June 5, 2009 Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 1/ 71

Upload: others

Post on 01-Jun-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Introduction to the Theory of Complexity Classesand Logic

Stefan Kunkel

June 5, 2009

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 1/ 71

Page 2: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Part I

Complexity Theory

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 2/ 71

Page 3: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Contents

Languages and Turing-machinesTuring-machinesNondeterminism

Complexity ClassesP and NPSpace ComplexityRelation between various Complexity ClassesCompleteness

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 3/ 71

Page 4: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Outline

Languages and Turing-machinesTuring-machinesNondeterminism

Complexity ClassesP and NPSpace ComplexityRelation between various Complexity ClassesCompleteness

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 4/ 71

Page 5: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Language

Definition (Language)

I Σ denotes a finite, non-empty set called alphabet; its elementsare called symbol

I For symbols l1, l2, . . . , lm ∈ Σ we write l1l2 · · · lm for itsconcatenation; concatenated symbols are called words

I The set of all words constructed by concatenating symbols inΓ ⊆ Σ is denoted by Γ∗

I A subset L ⊂ Σ∗ is called language

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 5/ 71

Page 6: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Definition (Language)

I For a word w we write |w | for its length.I Shorthand notation:

I The concatenation of words w1 = l1 · · · lm, w2 = k1 · · · kn isdefined as w1w2 := l1 · · · lmk1 · · · kn.

I Let Γ be a set of words. Then Γ∗ denotes the set of all wordsconstructed by concatenating the words in Γ.

I For a letter a we write a∗ instead of {a}∗; similarly we writew∗ instead of {w}∗ for a word w .

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 6/ 71

Page 7: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Turing-machines

Definition (Turing-machine)

A (deterministic) Turing-machine M is a quadrupleM = (Q,Σ, δ, s), where Q is a finite set of states and Σ is analphabet containing the special symbols t, the blank symbol, and., the first symbol; s ∈ Q is the initial state. Q and Σ are disjoint.

Finally δ : Q × Σ→ (Q ∪ {h, “yes”, “no”})× Σ× {←,→,—} iscalled transition function. We assume that the halting state h, theaccepting state “yes”, the rejecting state “no” and the cursordirection →, ← and — are neither in Q nor in Σ.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 7/ 71

Page 8: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Turing-machines

Definition (Turing-machine)

A (deterministic) Turing-machine M is a quadrupleM = (Q,Σ, δ, s), where Q is a finite set of states and Σ is analphabet containing the special symbols t, the blank symbol, and., the first symbol; s ∈ Q is the initial state. Q and Σ are disjoint.Finally δ : Q × Σ→ (Q ∪ {h, “yes”, “no”})× Σ× {←,→,—} iscalled transition function. We assume that the halting state h, theaccepting state “yes”, the rejecting state “no” and the cursordirection →, ← and — are neither in Q nor in Σ.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 7/ 71

Page 9: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

A Turing-machine can be seen as a cursor on a string of symbolsand having a definite internal state. Every time the cursor movesover the end of the string a new t is inserted on the string.The function δ is the “program” of the machine. It specifies, foreach combination of the current state q ∈ Q and current symbola ∈ Σ, a triple δ(q, l) = (p, b,D). p is the next state, b is thesymbol, which is written over a, and D ∈ {→,←,—} is thedirection in which the cursor will move.

By definition a Turing-machine always starts on the symbol .. Itcannot overwrite . and will always upon reading . move to theright.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 8/ 71

Page 10: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

A Turing-machine can be seen as a cursor on a string of symbolsand having a definite internal state. Every time the cursor movesover the end of the string a new t is inserted on the string.The function δ is the “program” of the machine. It specifies, foreach combination of the current state q ∈ Q and current symbola ∈ Σ, a triple δ(q, l) = (p, b,D). p is the next state, b is thesymbol, which is written over a, and D ∈ {→,←,—} is thedirection in which the cursor will move.By definition a Turing-machine always starts on the symbol .. Itcannot overwrite . and will always upon reading . move to theright.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 8/ 71

Page 11: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Input of a Turing-machine

A Turing-machine M may be initialized with a word x written onits string. This word x is called input of M and for the resultingTuring-machine we write M(x).

Output of a Turing-machine

If a Turing-machine M halts on input x — i.e. M is in one of itsthree halting states h, “yes” or “no” — we can define its output:IfM is in state “yes” it is said to accept x and M(x) =“yes”; if M isin state “no” it is said to reject x and M(x) =“no”.Otherwise it isin state h and the output of M is the word on the string of M: bydefinition this string starts with a /, followed by a word y , whoselast symbol is not an t, possibly followed by a number oft-symbols. Then we consider y to be the output of M and wewrite M(x) = y .If M does not halt on input x , we write M(x) =↗.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 9/ 71

Page 12: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Input of a Turing-machine

A Turing-machine M may be initialized with a word x written onits string. This word x is called input of M and for the resultingTuring-machine we write M(x).

Output of a Turing-machine

If a Turing-machine M halts on input x — i.e. M is in one of itsthree halting states h, “yes” or “no” — we can define its output:

IfM is in state “yes” it is said to accept x and M(x) =“yes”; if M isin state “no” it is said to reject x and M(x) =“no”.Otherwise it isin state h and the output of M is the word on the string of M: bydefinition this string starts with a /, followed by a word y , whoselast symbol is not an t, possibly followed by a number oft-symbols. Then we consider y to be the output of M and wewrite M(x) = y .If M does not halt on input x , we write M(x) =↗.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 9/ 71

Page 13: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Input of a Turing-machine

A Turing-machine M may be initialized with a word x written onits string. This word x is called input of M and for the resultingTuring-machine we write M(x).

Output of a Turing-machine

If a Turing-machine M halts on input x — i.e. M is in one of itsthree halting states h, “yes” or “no” — we can define its output:IfM is in state “yes” it is said to accept x and M(x) =“yes”; if M isin state “no” it is said to reject x and M(x) =“no”.

Otherwise it isin state h and the output of M is the word on the string of M: bydefinition this string starts with a /, followed by a word y , whoselast symbol is not an t, possibly followed by a number oft-symbols. Then we consider y to be the output of M and wewrite M(x) = y .If M does not halt on input x , we write M(x) =↗.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 9/ 71

Page 14: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Input of a Turing-machine

A Turing-machine M may be initialized with a word x written onits string. This word x is called input of M and for the resultingTuring-machine we write M(x).

Output of a Turing-machine

If a Turing-machine M halts on input x — i.e. M is in one of itsthree halting states h, “yes” or “no” — we can define its output:IfM is in state “yes” it is said to accept x and M(x) =“yes”; if M isin state “no” it is said to reject x and M(x) =“no”.Otherwise it isin state h and the output of M is the word on the string of M: bydefinition this string starts with a /, followed by a word y , whoselast symbol is not an t, possibly followed by a number oft-symbols. Then we consider y to be the output of M and wewrite M(x) = y .

If M does not halt on input x , we write M(x) =↗.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 9/ 71

Page 15: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Input of a Turing-machine

A Turing-machine M may be initialized with a word x written onits string. This word x is called input of M and for the resultingTuring-machine we write M(x).

Output of a Turing-machine

If a Turing-machine M halts on input x — i.e. M is in one of itsthree halting states h, “yes” or “no” — we can define its output:IfM is in state “yes” it is said to accept x and M(x) =“yes”; if M isin state “no” it is said to reject x and M(x) =“no”.Otherwise it isin state h and the output of M is the word on the string of M: bydefinition this string starts with a /, followed by a word y , whoselast symbol is not an t, possibly followed by a number oft-symbols. Then we consider y to be the output of M and wewrite M(x) = y .If M does not halt on input x , we write M(x) =↗.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 9/ 71

Page 16: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Example

M = (Q,Σ, δ, s), where Q = {s}, Σ = {0, 1,t, .} and δ as in thetable below. We examine the behavior of M with the input 101:

q ∈ Q l ∈ Σ δ(q, l)

s . (s, .,→)s 0 (s, 1,→)s 1 (s, 0,→)s t (h,t,—)

0. s, .1011. s, .1012. s, .0013. s, .0114. s, .010t5. h, .010t

So the output is M(101) = 010.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 10/ 71

Page 17: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Example

M = (Q,Σ, δ, s), where Q = {s}, Σ = {0, 1,t, .} and δ as in thetable below. We examine the behavior of M with the input 101:

q ∈ Q l ∈ Σ δ(q, l)

s . (s, .,→)s 0 (s, 1,→)s 1 (s, 0,→)s t (h,t,—)

0. s, .101

1. s, .1012. s, .0013. s, .0114. s, .010t5. h, .010t

So the output is M(101) = 010.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 10/ 71

Page 18: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Example

M = (Q,Σ, δ, s), where Q = {s}, Σ = {0, 1,t, .} and δ as in thetable below. We examine the behavior of M with the input 101:

q ∈ Q l ∈ Σ δ(q, l)

s . (s, .,→)s 0 (s, 1,→)s 1 (s, 0,→)s t (h,t,—)

0. s, .1011. s, .101

2. s, .0013. s, .0114. s, .010t5. h, .010t

So the output is M(101) = 010.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 10/ 71

Page 19: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Example

M = (Q,Σ, δ, s), where Q = {s}, Σ = {0, 1,t, .} and δ as in thetable below. We examine the behavior of M with the input 101:

q ∈ Q l ∈ Σ δ(q, l)

s . (s, .,→)s 0 (s, 1,→)s 1 (s, 0,→)s t (h,t,—)

0. s, .1011. s, .1012. s, .001

3. s, .0114. s, .010t5. h, .010t

So the output is M(101) = 010.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 10/ 71

Page 20: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Example

M = (Q,Σ, δ, s), where Q = {s}, Σ = {0, 1,t, .} and δ as in thetable below. We examine the behavior of M with the input 101:

q ∈ Q l ∈ Σ δ(q, l)

s . (s, .,→)s 0 (s, 1,→)s 1 (s, 0,→)s t (h,t,—)

0. s, .1011. s, .1012. s, .0013. s, .011

4. s, .010t5. h, .010t

So the output is M(101) = 010.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 10/ 71

Page 21: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Example

M = (Q,Σ, δ, s), where Q = {s}, Σ = {0, 1,t, .} and δ as in thetable below. We examine the behavior of M with the input 101:

q ∈ Q l ∈ Σ δ(q, l)

s . (s, .,→)s 0 (s, 1,→)s 1 (s, 0,→)s t (h,t,—)

0. s, .1011. s, .1012. s, .0013. s, .0114. s, .010t

5. h, .010tSo the output is M(101) = 010.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 10/ 71

Page 22: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Example

M = (Q,Σ, δ, s), where Q = {s}, Σ = {0, 1,t, .} and δ as in thetable below. We examine the behavior of M with the input 101:

q ∈ Q l ∈ Σ δ(q, l)

s . (s, .,→)s 0 (s, 1,→)s 1 (s, 0,→)s t (h,t,—)

0. s, .1011. s, .1012. s, .0013. s, .0114. s, .010t5. h, .010t

So the output is M(101) = 010.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 10/ 71

Page 23: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Example

M = (Q,Σ, δ, s), where Q = {s}, Σ = {0, 1,t, .} and δ as in thetable below. We examine the behavior of M with the input 101:

q ∈ Q l ∈ Σ δ(q, l)

s . (s, .,→)s 0 (s, 1,→)s 1 (s, 0,→)s t (h,t,—)

0. s, .1011. s, .1012. s, .0013. s, .0114. s, .010t5. h, .010t

So the output is M(101) = 010.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 10/ 71

Page 24: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Definition (Configuration)

A configuration of a Turing-machine M = (Q,Σ, δ, s) contains allinformation of the current state of M. Formally it is a triple(q,w , u), where q ∈ Q is the current state of M, w is the word onthe left of the cursor including the symbol scanned by the cursorand u is the word on the right.

In the example M is at step 3. in the configuration (s, 011, ε).

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 11/ 71

Page 25: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Definition (Yields in one step)

Let M be a Turing-machine. We say that a configuration (q,w , u)yields the configuration (q′,w ′, u′) in one step, denoted by

(q,w , u)M→ (q′,w ′, u′), if a step of the machine from configuration

(q,w , u) results in the configuration (q′,w ′, u′).

Formally, it means that the following holds: Let l be the lastsymbol of w and δ(q, l) = (q′, l ′,D). If D =→, then w ′ is w withl replaced by l ′ and appended by the first symbol of u; u′ is u withits first symbol removed. If D =←, then w ′ is w with l ′ omittedfrom its end and u′ is l ′u. Finally if D =—, then w ′ is w with lreplaced by l and u′ = u.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 12/ 71

Page 26: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Definition (Yields in one step)

Let M be a Turing-machine. We say that a configuration (q,w , u)yields the configuration (q′,w ′, u′) in one step, denoted by

(q,w , u)M→ (q′,w ′, u′), if a step of the machine from configuration

(q,w , u) results in the configuration (q′,w ′, u′).Formally, it means that the following holds: Let l be the lastsymbol of w and δ(q, l) = (q′, l ′,D). If D =→, then w ′ is w withl replaced by l ′ and appended by the first symbol of u; u′ is u withits first symbol removed. If D =←, then w ′ is w with l ′ omittedfrom its end and u′ is l ′u. Finally if D =—, then w ′ is w with lreplaced by l and u′ = u.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 12/ 71

Page 27: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Definition (Yields)

Now that we have defined yields in one step, we define yields to beits transitive closure:

That is, we say a configuration (q,w , u) yields

(q′′,w ′′, u′′) in k steps, written as (q,w , u)M→

k(q′′,w ′′, u′′), if

there is a configuration (q′,w ′, u′) such that

(q,w , u)M→

k−1(q′,w ′, u′) and (q′,w ′, u′)

M→ (q′′,w ′′, u′′).Finally,we say a configuration (q,w , u) yields a configuration (q′,w ′, u′),

if there is a k ≥ 0 such that (q,w , u)M→

k(q′,w ′, u′). In this case

we write (q,w , u)M→∗

(q′,w ′, u′).

In the example (s, ., 101) yields (h, .010,t).

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 13/ 71

Page 28: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Definition (Yields)

Now that we have defined yields in one step, we define yields to beits transitive closure:That is, we say a configuration (q,w , u) yields

(q′′,w ′′, u′′) in k steps, written as (q,w , u)M→

k(q′′,w ′′, u′′), if

there is a configuration (q′,w ′, u′) such that

(q,w , u)M→

k−1(q′,w ′, u′) and (q′,w ′, u′)

M→ (q′′,w ′′, u′′).

Finally,we say a configuration (q,w , u) yields a configuration (q′,w ′, u′),

if there is a k ≥ 0 such that (q,w , u)M→

k(q′,w ′, u′). In this case

we write (q,w , u)M→∗

(q′,w ′, u′).

In the example (s, ., 101) yields (h, .010,t).

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 13/ 71

Page 29: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Definition (Yields)

Now that we have defined yields in one step, we define yields to beits transitive closure:That is, we say a configuration (q,w , u) yields

(q′′,w ′′, u′′) in k steps, written as (q,w , u)M→

k(q′′,w ′′, u′′), if

there is a configuration (q′,w ′, u′) such that

(q,w , u)M→

k−1(q′,w ′, u′) and (q′,w ′, u′)

M→ (q′′,w ′′, u′′).Finally,we say a configuration (q,w , u) yields a configuration (q′,w ′, u′),

if there is a k ≥ 0 such that (q,w , u)M→

k(q′,w ′, u′). In this case

we write (q,w , u)M→∗

(q′,w ′, u′).

In the example (s, ., 101) yields (h, .010,t).

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 13/ 71

Page 30: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Definition (Deciding and accepting languages)

Let L ⊂ (Σ \ {t})∗ be a language and M be a Turing-machine. Ifthe output of M for any word x is either “yes”, when x ∈ L, or“no”, when x /∈ L then we say, that M decides L and L is called arecursive language.If M(x) =“yes”, when x ∈ L, and M(x) =↗, when x /∈ L, then wesay M simply accepts L and L is called recursively enumerable.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 14/ 71

Page 31: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Definition (Computation of functions)

Let f : (Σ \ {t})∗ → Σ∗ be function and M be a Turing-machinewith alphabet Σ. We say that M computes f if, for any wordx ∈ (Σ \ {t})∗, f (x) = M(x). Then f is called a recursivefunction.

For example the function from {0, 1}∗ to {0, 1,t}, that replaces 0with 1 and vice versa until it encounters a t, is recursive by theexample.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 15/ 71

Page 32: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Definition (k-string Turing-machines)

A k-string Turing-machine is a quadruple M = (Q,Σ, δ, s), whereQ, Σ and s are exactly as in ordinary Turing-machines. But here δis a function from Q × Σ∗ to(Q ∪ {h, “yes”, “no”})× (Σ× {←,→,—})k . We still assume that. is at the start of each string, cannot be overwritten and uponreading it the cursor must move to the right.The input of M is written on the first string and the output on thelast string.

Intuitively, δ decides the next state of the machine by looking at itscurrent state and the symbol at the cursor of each band. It thenoverwrites the current symbol on each band by another and movesthe cursors on each band either left or right or not at all.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 16/ 71

Page 33: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Definition (k-string Turing-machines)

A k-string Turing-machine is a quadruple M = (Q,Σ, δ, s), whereQ, Σ and s are exactly as in ordinary Turing-machines. But here δis a function from Q × Σ∗ to(Q ∪ {h, “yes”, “no”})× (Σ× {←,→,—})k . We still assume that. is at the start of each string, cannot be overwritten and uponreading it the cursor must move to the right.The input of M is written on the first string and the output on thelast string.

Intuitively, δ decides the next state of the machine by looking at itscurrent state and the symbol at the cursor of each band. It thenoverwrites the current symbol on each band by another and movesthe cursors on each band either left or right or not at all.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 16/ 71

Page 34: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Analogous to 1-string Turing-machines we define configuration andyields for k-string Turing-machines:A configuration is a k + 2 tuple, with the first coordinate being thecurrent state, the even ones being the word on the left of thecursor, the odd ones the word on the right of the cursor.Yields is defined exactly as in 1-string machines after taking thegreater number of strings into account.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 17/ 71

Page 35: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Example (Palindromes)

We now construct a 2-string Turing-machine, that decides thelanguage of palindromes on Σ = {0, 1}. It first copies its input onthe second string, then it moves the first cursor on the first symbolof the input and the second on the last symbol. Then it moves thetwo cursors in opposite direction comparing the two symbols at thecursors.

There is no Turing-machine significantly faster at decidingpalindromes than this one.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 18/ 71

Page 36: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Example (Palindromes)

We now construct a 2-string Turing-machine, that decides thelanguage of palindromes on Σ = {0, 1}. It first copies its input onthe second string, then it moves the first cursor on the first symbolof the input and the second on the last symbol. Then it moves thetwo cursors in opposite direction comparing the two symbols at thecursors.There is no Turing-machine significantly faster at decidingpalindromes than this one.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 18/ 71

Page 37: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Example (Palindromes)q ∈ Q l1 ∈ Σ l2 ∈ Σ δ(q, l1, l2)

s . . (s, .,→, .,→)s 0 t (s, 0,→, 0,→)s 1 t (s, 1,→, 1,→)s t t (q,t,←,t,—)

q 0 t (q, 0,←,t,—)q 1 t (q, 1,←,t,—)q . t (p, .,→,t,←)p 0 0 (p, 0,→, 0,←)p 1 1 (p, 1,→, 1,←)p 0 1 (“no”, 0,→, 1,←)p 1 0 (“no”, 1,→, 0,←)p t . (“yes”,t,→, .,←)

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 19/ 71

Page 38: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Example (Palindromes)q ∈ Q l1 ∈ Σ l2 ∈ Σ δ(q, l1, l2)

s . . (s, .,→, .,→)s 0 t (s, 0,→, 0,→)s 1 t (s, 1,→, 1,→)s t t (q,t,←,t,—)q 0 t (q, 0,←,t,—)q 1 t (q, 1,←,t,—)q . t (p, .,→,t,←)

p 0 0 (p, 0,→, 0,←)p 1 1 (p, 1,→, 1,←)p 0 1 (“no”, 0,→, 1,←)p 1 0 (“no”, 1,→, 0,←)p t . (“yes”,t,→, .,←)

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 19/ 71

Page 39: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Turing-machines

Example (Palindromes)q ∈ Q l1 ∈ Σ l2 ∈ Σ δ(q, l1, l2)

s . . (s, .,→, .,→)s 0 t (s, 0,→, 0,→)s 1 t (s, 1,→, 1,→)s t t (q,t,←,t,—)q 0 t (q, 0,←,t,—)q 1 t (q, 1,←,t,—)q . t (p, .,→,t,←)p 0 0 (p, 0,→, 0,←)p 1 1 (p, 1,→, 1,←)p 0 1 (“no”, 0,→, 1,←)p 1 0 (“no”, 1,→, 0,←)p t . (“yes”,t,→, .,←)

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 19/ 71

Page 40: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Nondeterminism

Nondeterminism

Definition (Nondeterministic Turing-machines)

A nondeterministic Turing-machine is a quadruple N = (Q,Σ, δ, s),where Q, Σ and s are as in deterministic Turing-machines. Butnow δ is a function from Q × Σ toP((Q ∪ {h, “yes”, “no”})× Σ× {←,→,—}). That is, for anondeterministic machine there may be more than one appropriatenext step or none at all. It can also be in multiple configurations atonce.

A computation of a nondeterministic machine can be imagined asa computation tree where each path can be computed by adeterministic machine.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 20/ 71

Page 41: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Nondeterminism

Nondeterminism

Definition (Nondeterministic Turing-machines)

A nondeterministic Turing-machine is a quadruple N = (Q,Σ, δ, s),where Q, Σ and s are as in deterministic Turing-machines. Butnow δ is a function from Q × Σ toP((Q ∪ {h, “yes”, “no”})× Σ× {←,→,—}). That is, for anondeterministic machine there may be more than one appropriatenext step or none at all. It can also be in multiple configurations atonce.

A computation of a nondeterministic machine can be imagined asa computation tree where each path can be computed by adeterministic machine.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 20/ 71

Page 42: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Nondeterminism

Definition (Yields for nondeterministic Turing-machines)

Similarily we define (q,w , u) yields (q′,w ′, u′) in one step as withdeterministic machines except that only one (q′, l ′,D) ∈ δ(q, l)must match the definition of yields in one step for deterministicmachines.

Yields in k steps and yields are defined exactly as withdeterministic machines.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 21/ 71

Page 43: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Nondeterminism

Definition (Yields for nondeterministic Turing-machines)

Similarily we define (q,w , u) yields (q′,w ′, u′) in one step as withdeterministic machines except that only one (q′, l ′,D) ∈ δ(q, l)must match the definition of yields in one step for deterministicmachines.Yields in k steps and yields are defined exactly as withdeterministic machines.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 21/ 71

Page 44: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Nondeterminism

Definition (Deciding languages for nondeterministicTuring-machines)

We say N decides a language L, if for any x ∈ Σ∗ the following istrue: x ∈ L if and only if (s, ., x) yields (“yes”,w , u) for somewords w and u.

This definition of decision sets the nondeterministic machine apartfrom the deterministic one: An input is accepted if there is onecomputation path that results in “yes”.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 22/ 71

Page 45: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Outline

Languages and Turing-machinesTuring-machinesNondeterminism

Complexity ClassesP and NPSpace ComplexityRelation between various Complexity ClassesCompleteness

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 23/ 71

Page 46: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

P and NP

P and NP

We now introduce now the notion of the time needed to computean output.

Definition (TIME(f (n)))

For an input x of a k-string Turing-machine M the time requiredby M on input x is simply the number of steps to halting. If Mdoes not halt on x the time required is ∞.

Now let f : N→ N be a function. We say the M operates withintime f (n) if, for any input x , the time required by M on x is atmost f (|x |). f is then called a time bound for M.Finally let L ⊂ (Σ \ {t})∗ be language decided by M operating intime f (n). Then we say that L ∈ TIME(f (n)).

That is, TIME(f (n)) contains exactly those languages that can bedecided by a Turing-machine within time bound f (n).

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 24/ 71

Page 47: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

P and NP

P and NP

We now introduce now the notion of the time needed to computean output.

Definition (TIME(f (n)))

For an input x of a k-string Turing-machine M the time requiredby M on input x is simply the number of steps to halting. If Mdoes not halt on x the time required is ∞.Now let f : N→ N be a function. We say the M operates withintime f (n) if, for any input x , the time required by M on x is atmost f (|x |). f is then called a time bound for M.

Finally let L ⊂ (Σ \ {t})∗ be language decided by M operating intime f (n). Then we say that L ∈ TIME(f (n)).

That is, TIME(f (n)) contains exactly those languages that can bedecided by a Turing-machine within time bound f (n).

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 24/ 71

Page 48: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

P and NP

P and NP

We now introduce now the notion of the time needed to computean output.

Definition (TIME(f (n)))

For an input x of a k-string Turing-machine M the time requiredby M on input x is simply the number of steps to halting. If Mdoes not halt on x the time required is ∞.Now let f : N→ N be a function. We say the M operates withintime f (n) if, for any input x , the time required by M on x is atmost f (|x |). f is then called a time bound for M.Finally let L ⊂ (Σ \ {t})∗ be language decided by M operating intime f (n). Then we say that L ∈ TIME(f (n)).

That is, TIME(f (n)) contains exactly those languages that can bedecided by a Turing-machine within time bound f (n).

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 24/ 71

Page 49: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

P and NP

Example (Palindromes)

In our example we constructed a Turing-machine M, which decidesthe language of palindromes L on {0, 1}. Now let us count howmany steps M needs in the worst case to accept a word x withlength n.

At first the machine copies x to the second band and moves thefirst cursor to the first symbol needing 2n + 3 steps. Then iscompares the symbols of the first band with the symbols on thesecond band needing n steps.Altogether M needs at most 3n + 3 steps and as suchL ∈ TIME(3n + 3).

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 25/ 71

Page 50: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

P and NP

Example (Palindromes)

In our example we constructed a Turing-machine M, which decidesthe language of palindromes L on {0, 1}. Now let us count howmany steps M needs in the worst case to accept a word x withlength n.At first the machine copies x to the second band and moves thefirst cursor to the first symbol needing 2n + 3 steps. Then iscompares the symbols of the first band with the symbols on thesecond band needing n steps.

Altogether M needs at most 3n + 3 steps and as suchL ∈ TIME(3n + 3).

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 25/ 71

Page 51: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

P and NP

Example (Palindromes)

In our example we constructed a Turing-machine M, which decidesthe language of palindromes L on {0, 1}. Now let us count howmany steps M needs in the worst case to accept a word x withlength n.At first the machine copies x to the second band and moves thefirst cursor to the first symbol needing 2n + 3 steps. Then iscompares the symbols of the first band with the symbols on thesecond band needing n steps.Altogether M needs at most 3n + 3 steps and as suchL ∈ TIME(3n + 3).

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 25/ 71

Page 52: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

P and NP

Definition (P)

P is the set of all languages decidable by a Turing-machine in apolynomial time bound. That is:

P =∞⋃

k=0

TIME(nk)

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 26/ 71

Page 53: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

P and NP

The number of strings does not significantly increase the speed ofTuring-machines.

Theorem (Simulating a k-string Turing machine with 1 string)

Given any k-string Turing machine operating within time boundf (n), there is a 1-string Turing-machine M ′ operating within timeO(f (n)2), such that M(x) = M ′(x) for any input x.

This theorem also holds for nondeterministic Turing-machines.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 27/ 71

Page 54: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

P and NP

Now analogous to the definition of TIME and P:

Definition (NTIME(f (n)))

We say that a nondeterministic Turing-machine N decides alanguage L in time f (n), where f : N→ N, if N decides L and forall words x with length n no computation path may be longer thanf (n).

Then NTIME(f (n)) is the set of languages decidable by anondeterministic Turing-machine within time bound f (n).

Note that we do not tax non-deterministic machines for the wholeamount of computation going on; just for the longest path.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 28/ 71

Page 55: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

P and NP

Now analogous to the definition of TIME and P:

Definition (NTIME(f (n)))

We say that a nondeterministic Turing-machine N decides alanguage L in time f (n), where f : N→ N, if N decides L and forall words x with length n no computation path may be longer thanf (n).Then NTIME(f (n)) is the set of languages decidable by anondeterministic Turing-machine within time bound f (n).

Note that we do not tax non-deterministic machines for the wholeamount of computation going on; just for the longest path.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 28/ 71

Page 56: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

P and NP

Now analogous to the definition of TIME and P:

Definition (NTIME(f (n)))

We say that a nondeterministic Turing-machine N decides alanguage L in time f (n), where f : N→ N, if N decides L and forall words x with length n no computation path may be longer thanf (n).Then NTIME(f (n)) is the set of languages decidable by anondeterministic Turing-machine within time bound f (n).

Note that we do not tax non-deterministic machines for the wholeamount of computation going on; just for the longest path.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 28/ 71

Page 57: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

P and NP

Definition (NP)

NP is the set of all languages decidable by a nondeterministicTuring-machine within a polynomial time bound. That is:

NP =∞⋃

k=0

NTIME(nk)

NP does not depend on the number of strings of theTuring-machines.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 29/ 71

Page 58: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

P and NP

Obviously it holds that P ⊂ NP: The deterministicTuring-machines are exactly those nondeterministic machineswhere |δ(q, l)| = 1 for all q and l .

Whether the other inclusion also holds is unknown: This is thefamous problem

P?= NP.

It is strongly conjected to be not the case.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 30/ 71

Page 59: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

P and NP

Obviously it holds that P ⊂ NP: The deterministicTuring-machines are exactly those nondeterministic machineswhere |δ(q, l)| = 1 for all q and l .Whether the other inclusion also holds is unknown: This is thefamous problem

P?= NP.

It is strongly conjected to be not the case.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 30/ 71

Page 60: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

P and NP

Obviously it holds that P ⊂ NP: The deterministicTuring-machines are exactly those nondeterministic machineswhere |δ(q, l)| = 1 for all q and l .Whether the other inclusion also holds is unknown: This is thefamous problem

P?= NP.

It is strongly conjected to be not the case.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 30/ 71

Page 61: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

P and NP

Example (Traveling Salesman Problem)

A3

@@@@

@@@

1

5555

5555

5555

5555

5555

5555

5

4B

3~~~~~~~

8

@@@@

@@@

2

****

****

****

****

****

* C

D

3

~~~~~~~

F

12 @@@@

@@@ G

5

OOOOOOOOOOOOOO

H

4oooooooooooooo

7

Given a weighted, possiblydirected graph, what is theshortest path such that eachvertice is visited at least once.It can be transformed in adecision problem: Given aninteger B is there a path withlength at most B such that eachvertice is visited at least once.We call this problem TSP(D).

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 31/ 71

Page 62: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

P and NP

Example (Traveling Salesman Problem)

By encoding the problem TSP(D) in an alphabet, we can useTuring-machines to solve it: the most obvious algorithm iscalculating all routes and checking if the shortest one is shorterthan B or not. If n is the number of vertices, then this takes aboutn! steps; the best known algorithm is not much better than that.

Still it is unknown whether there is an algorithm solving TSP(D) inpolynomial time. If this were the case then P = NP.But TSP(D) is obviously in NP: a nondeterministicTuring-machine can calculate all routes at once and check if it isshorter than B or not, a task which takes roughly n2 steps.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 32/ 71

Page 63: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

P and NP

Example (Traveling Salesman Problem)

By encoding the problem TSP(D) in an alphabet, we can useTuring-machines to solve it: the most obvious algorithm iscalculating all routes and checking if the shortest one is shorterthan B or not. If n is the number of vertices, then this takes aboutn! steps; the best known algorithm is not much better than that.Still it is unknown whether there is an algorithm solving TSP(D) inpolynomial time. If this were the case then P = NP.

But TSP(D) is obviously in NP: a nondeterministicTuring-machine can calculate all routes at once and check if it isshorter than B or not, a task which takes roughly n2 steps.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 32/ 71

Page 64: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

P and NP

Example (Traveling Salesman Problem)

By encoding the problem TSP(D) in an alphabet, we can useTuring-machines to solve it: the most obvious algorithm iscalculating all routes and checking if the shortest one is shorterthan B or not. If n is the number of vertices, then this takes aboutn! steps; the best known algorithm is not much better than that.Still it is unknown whether there is an algorithm solving TSP(D) inpolynomial time. If this were the case then P = NP.But TSP(D) is obviously in NP: a nondeterministicTuring-machine can calculate all routes at once and check if it isshorter than B or not, a task which takes roughly n2 steps.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 32/ 71

Page 65: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

P and NP

We now give a more intuitive characterization of NP.

Let R ⊂ Σ∗ × Σ∗ be a relation. R is said to be polynomiallydecidable if there is a deterministic Turing-machine which decidesthe language {x#y , (x , y) ∈ R} in polynomial time. R is calledpolynomially balanced if (x , y) ∈ R implies |y | ≤ |x |k for somek ≥ 1.

TheoremLet L be a language. Then L ∈ NP if and only if there is apolynomially decidable and polynomially balanced relation R, suchthat L = {x , (x , y) ∈ R for some y}.Such a y is called certificate for x .An example for a certificate would be the vertices of a path shorterthan B for TSP(D).

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 33/ 71

Page 66: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

P and NP

We now give a more intuitive characterization of NP.Let R ⊂ Σ∗ × Σ∗ be a relation. R is said to be polynomiallydecidable if there is a deterministic Turing-machine which decidesthe language {x#y , (x , y) ∈ R} in polynomial time. R is calledpolynomially balanced if (x , y) ∈ R implies |y | ≤ |x |k for somek ≥ 1.

TheoremLet L be a language. Then L ∈ NP if and only if there is apolynomially decidable and polynomially balanced relation R, suchthat L = {x , (x , y) ∈ R for some y}.Such a y is called certificate for x .An example for a certificate would be the vertices of a path shorterthan B for TSP(D).

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 33/ 71

Page 67: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

P and NP

We now give a more intuitive characterization of NP.Let R ⊂ Σ∗ × Σ∗ be a relation. R is said to be polynomiallydecidable if there is a deterministic Turing-machine which decidesthe language {x#y , (x , y) ∈ R} in polynomial time. R is calledpolynomially balanced if (x , y) ∈ R implies |y | ≤ |x |k for somek ≥ 1.

TheoremLet L be a language. Then L ∈ NP if and only if there is apolynomially decidable and polynomially balanced relation R, suchthat L = {x , (x , y) ∈ R for some y}.Such a y is called certificate for x .

An example for a certificate would be the vertices of a path shorterthan B for TSP(D).

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 33/ 71

Page 68: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

P and NP

We now give a more intuitive characterization of NP.Let R ⊂ Σ∗ × Σ∗ be a relation. R is said to be polynomiallydecidable if there is a deterministic Turing-machine which decidesthe language {x#y , (x , y) ∈ R} in polynomial time. R is calledpolynomially balanced if (x , y) ∈ R implies |y | ≤ |x |k for somek ≥ 1.

TheoremLet L be a language. Then L ∈ NP if and only if there is apolynomially decidable and polynomially balanced relation R, suchthat L = {x , (x , y) ∈ R for some y}.Such a y is called certificate for x .An example for a certificate would be the vertices of a path shorterthan B for TSP(D).

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 33/ 71

Page 69: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

P and NP

Now we can describe P and NP informally:

P contains those languages L, for which x ∈ L can be decidedquickly

NP contains those languages L, for which a certificate for x ∈ Lcan quickly be verified.

This is another reason why it is believed that P = NP does nothold: It is usually much easier to verify a solution than finding one.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 34/ 71

Page 70: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

P and NP

Now we can describe P and NP informally:

P contains those languages L, for which x ∈ L can be decidedquickly

NP contains those languages L, for which a certificate for x ∈ Lcan quickly be verified.

This is another reason why it is believed that P = NP does nothold: It is usually much easier to verify a solution than finding one.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 34/ 71

Page 71: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

P and NP

Theorem (Simulating a nondeterministic Turing-machine by adeterministic one)

Let L be language decided by a nondeterministic Turing-machineN in time f (n). Then there is deterministic Turing-machine Mdeciding L in time O(c f (n)), where c > 1 depends on N alone.Or put differently:

NTIME(f (n)) ⊂⋃c>1

TIME(c f (n))

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 35/ 71

Page 72: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Space Complexity

Space Complexity

We now introduce another way of quantifying “complexity”: by thesum of the maximum lengths of the strings.

To do this properly we have to introduce a special version ofTuring-machines: Ones with special input and output bands.Otherwise we could not study machines which need asymptoticallyless or equal space for computation than the length of the inputrespectively output.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 36/ 71

Page 73: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Space Complexity

Space Complexity

We now introduce another way of quantifying “complexity”: by thesum of the maximum lengths of the strings.To do this properly we have to introduce a special version ofTuring-machines: Ones with special input and output bands.Otherwise we could not study machines which need asymptoticallyless or equal space for computation than the length of the inputrespectively output.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 36/ 71

Page 74: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Space Complexity

Definition (k-string Turing-machine with input and output)

A (non)deterministic k-string Turing-machine, k ≥ 3, with inputand output is a Turing-machine that scans over its input only once,does not overwrite it and stops at the end of the input string.Furthermore it never moves the last cursor to the left.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 37/ 71

Page 75: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Space Complexity

Definition (Space required)

Let M be a k-string Turing-machine with input x such that thestarting configuration (s, ., x , ., ε, . . .) yields(H,w1, u1, . . . ,wk , uk), where H is halting state. Then the spacerequired by M on input x is

∑ki=1 |wiui |.

If however M is a Turing-machine with input and output then thefirst and last band are not counted: the space required by M oninput x is then

∑k−1i=2 |wiui |.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 38/ 71

Page 76: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Space Complexity

Definition (Space required)

Let M be a k-string Turing-machine with input x such that thestarting configuration (s, ., x , ., ε, . . .) yields(H,w1, u1, . . . ,wk , uk), where H is halting state. Then the spacerequired by M on input x is

∑ki=1 |wiui |.

If however M is a Turing-machine with input and output then thefirst and last band are not counted: the space required by M oninput x is then

∑k−1i=2 |wiui |.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 38/ 71

Page 77: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Space Complexity

Now we can define the deterministic space complexity class justlike the time complexity one.

Definition (SPACE(f (n)))

Let f : N→ N be a function and M be a Turing-machine. We sayM operates within space bound f (n), if for any input x the spacerequired by M is at most than f (|x |).We say a language L is in (f (n)), if there is a Turing-machine withinput and output that decides L in space bound f (n).

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 39/ 71

Page 78: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Space Complexity

Now we define space complexity for nondeterministic machines.

Definition (Deciding in space f (n))

Let f : N→ N be a function and N be a k-string nondeterministicTuring-machine with input and output. We say N decides L inspace f (n), if N decides L and if for any input x this implicationholds:

(s, ., x , ., ε, . . .)N→∗

(q,w1, u1, . . . ,wk , uk)

⇒k−1∑i=2

|wiui | ≤ f (|x |)

So N may not use in any computation path more space than f (|x |).Note that we do not require for N to halt on all computations.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 40/ 71

Page 79: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Space Complexity

Definition (NSPACE(f (n)))

Let f : N→ N be a function. We say that a language L is inNSPACE(f (n)), if there is a k-string nondeterministicTuring-machine with input and output that decides L in space f (n).

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 41/ 71

Page 80: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Space Complexity

Definition (Some space complexity classes)

PSPACE :=∞⋃

k=1

SPACE(nk)

NPSPACE :=∞⋃

k=1

NSPACE(nk)

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 42/ 71

Page 81: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Relation between various Complexity Classes

Relation between various Complexity Classes

Theorem (Relation between deterministic and nondeterministicclasses)

1. SPACE(f (n)) ⊂ NSPACE(f (n)), TIME(f (n)) ⊂ NTIME(f (n))

2. NTIME(f (n)) ⊂ SPACE(f (n))

3. NSPACE(f (n)) ⊂ TIME(k log(n)+f (n))

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 43/ 71

Page 82: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Relation between various Complexity Classes

Relation between various Complexity Classes

Theorem (Relation between deterministic and nondeterministicclasses)

1. SPACE(f (n)) ⊂ NSPACE(f (n)), TIME(f (n)) ⊂ NTIME(f (n))

2. NTIME(f (n)) ⊂ SPACE(f (n))

3. NSPACE(f (n)) ⊂ TIME(k log(n)+f (n))

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 43/ 71

Page 83: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Relation between various Complexity Classes

Relation between various Complexity Classes

Theorem (Relation between deterministic and nondeterministicclasses)

1. SPACE(f (n)) ⊂ NSPACE(f (n)), TIME(f (n)) ⊂ NTIME(f (n))

2. NTIME(f (n)) ⊂ SPACE(f (n))

3. NSPACE(f (n)) ⊂ TIME(k log(n)+f (n))

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 43/ 71

Page 84: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Relation between various Complexity Classes

For any complexity class S we can define coS = {L, L{ ∈ S} asthe class of the complements of languages in S .

Theorem (Deterministic classes and coclasses)

Any deterministic complexity class D is closed under complement,i.e. for L ∈ C its complement L{ is also in C .

Proof.Let L be a language in C and M be a Turing-machine that decidesL within the bound required by the class D. Now let M ′ be theTuring-machine whose output is “no” whenever the output of M is“yes” and vice versa. Then M decides L{ in the same bound as Mand therefore L{ ∈ D.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 44/ 71

Page 85: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Relation between various Complexity Classes

For any complexity class S we can define coS = {L, L{ ∈ S} asthe class of the complements of languages in S .

Theorem (Deterministic classes and coclasses)

Any deterministic complexity class D is closed under complement,i.e. for L ∈ C its complement L{ is also in C .

Proof.Let L be a language in C and M be a Turing-machine that decidesL within the bound required by the class D. Now let M ′ be theTuring-machine whose output is “no” whenever the output of M is“yes” and vice versa. Then M decides L{ in the same bound as Mand therefore L{ ∈ D.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 44/ 71

Page 86: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Relation between various Complexity Classes

For any complexity class S we can define coS = {L, L{ ∈ S} asthe class of the complements of languages in S .

Theorem (Deterministic classes and coclasses)

Any deterministic complexity class D is closed under complement,i.e. for L ∈ C its complement L{ is also in C .

Proof.Let L be a language in C and M be a Turing-machine that decidesL within the bound required by the class D. Now let M ′ be theTuring-machine whose output is “no” whenever the output of M is“yes” and vice versa. Then M decides L{ in the same bound as Mand therefore L{ ∈ D.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 44/ 71

Page 87: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Relation between various Complexity Classes

Theorem (Relation between space complexity classes)

PSPACE = NPSPACE

NPSPACE = coNPSPACE

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 45/ 71

Page 88: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Relation between various Complexity Classes

Open questions

It is unknown whether:

I P = NP?

I NP = coNP?

Both answer are suspected to be “no”, but so far a proofsupporting either way remains elusive since the beginning of thetheory of complexity classes.

Various deterministic and nondeterministic complexity classes canbe defined analogous to P and NP using other functions thanpolynomials, e.g. logarithms or exponentionals.For all of these it is also unknown whether they are equal or not.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 46/ 71

Page 89: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Relation between various Complexity Classes

Open questions

It is unknown whether:

I P = NP?

I NP = coNP?

Both answer are suspected to be “no”, but so far a proofsupporting either way remains elusive since the beginning of thetheory of complexity classes.Various deterministic and nondeterministic complexity classes canbe defined analogous to P and NP using other functions thanpolynomials, e.g. logarithms or exponentionals.

For all of these it is also unknown whether they are equal or not.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 46/ 71

Page 90: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Relation between various Complexity Classes

Open questions

It is unknown whether:

I P = NP?

I NP = coNP?

Both answer are suspected to be “no”, but so far a proofsupporting either way remains elusive since the beginning of thetheory of complexity classes.Various deterministic and nondeterministic complexity classes canbe defined analogous to P and NP using other functions thanpolynomials, e.g. logarithms or exponentionals.For all of these it is also unknown whether they are equal or not.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 46/ 71

Page 91: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Completeness

Completeness

Definition (Reduction)

Let Σ and Γ be alphabets and L1 ⊂ Σ∗ and L2 ⊂ Γ∗ be languages.We say that L1 is reducible to L2, if there is a function f : Σ∗ → Γ∗

computable by a deterministic Turing-machine in logarithmic spacesuch that the following holds for all inputs x : x ∈ L1 if and only iff (x) ∈ L2. f is then called reduction from L1 to L2.

Note that the composition of reductions is also a reduction; itfollows that reducible is a transitive relation.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 47/ 71

Page 92: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Completeness

TheoremP, NP, coNP, PSPACE, NPSPACE are closed under reductions,i.e. if L2 ∈ P/NP/coNP/PSPACE/NPSPACE and L1 can bereduced to L2 then L1 ∈ P/NP/coNP/PSPACE/NPSPACE .

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 48/ 71

Page 93: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Completeness

Definition (Completeness)

Let L be a language in a complexity class C . Then L is calledC -complete if any language L′ ∈ C can be reduced to C .

Completeness can be a very useful tool for establishing relationsbetween the classes:

TheoremLet C be a complexity class and D ⊂ C be another complexityclass closed under reductions. If L ∈ C is a C -complete language,then L ∈ D if and only if C = D.

Proof.“⇐”: trivial. “⇒”: Let L′ a language in C ; since L ∈ D iscomplete, L′ can be reduced to L. The reduction is also in D sinceD is closed under reductions. Therefore C = D.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 49/ 71

Page 94: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Completeness

Definition (Completeness)

Let L be a language in a complexity class C . Then L is calledC -complete if any language L′ ∈ C can be reduced to C .

Completeness can be a very useful tool for establishing relationsbetween the classes:

TheoremLet C be a complexity class and D ⊂ C be another complexityclass closed under reductions. If L ∈ C is a C -complete language,then L ∈ D if and only if C = D.

Proof.“⇐”: trivial. “⇒”: Let L′ a language in C ; since L ∈ D iscomplete, L′ can be reduced to L. The reduction is also in D sinceD is closed under reductions. Therefore C = D.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 49/ 71

Page 95: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Completeness

Definition (Completeness)

Let L be a language in a complexity class C . Then L is calledC -complete if any language L′ ∈ C can be reduced to C .

Completeness can be a very useful tool for establishing relationsbetween the classes:

TheoremLet C be a complexity class and D ⊂ C be another complexityclass closed under reductions. If L ∈ C is a C -complete language,then L ∈ D if and only if C = D.

Proof.“⇐”: trivial. “⇒”: Let L′ a language in C ; since L ∈ D iscomplete, L′ can be reduced to L. The reduction is also in D sinceD is closed under reductions. Therefore C = D.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 49/ 71

Page 96: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Completeness

NP-complete problems

So one way to solve P?= NP positively, is to search for a

NP-complete problem and find a polynomial time deterministicalgorithm to solve it.

Here is short list of such problems:

I SAT

I HAMILTON PATH

I TSP(D)

I CLIQUE

I KNAPSACK

I BIN PACKING

I PARTITION

I . . .

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 50/ 71

Page 97: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Completeness

NP-complete problems

So one way to solve P?= NP positively, is to search for a

NP-complete problem and find a polynomial time deterministicalgorithm to solve it.Here is short list of such problems:

I SAT

I HAMILTON PATH

I TSP(D)

I CLIQUE

I KNAPSACK

I BIN PACKING

I PARTITION

I . . .

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 50/ 71

Page 98: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Completeness

NP-complete problems

So one way to solve P?= NP positively, is to search for a

NP-complete problem and find a polynomial time deterministicalgorithm to solve it.Here is short list of such problems:

I SAT

I HAMILTON PATH

I TSP(D)

I CLIQUE

I KNAPSACK

I BIN PACKING

I PARTITION

I . . .

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 50/ 71

Page 99: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Completeness

NP-complete problems

So one way to solve P?= NP positively, is to search for a

NP-complete problem and find a polynomial time deterministicalgorithm to solve it.Here is short list of such problems:

I SAT

I HAMILTON PATH

I TSP(D)

I CLIQUE

I KNAPSACK

I BIN PACKING

I PARTITION

I . . .

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 50/ 71

Page 100: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Completeness

NP-complete problems

So one way to solve P?= NP positively, is to search for a

NP-complete problem and find a polynomial time deterministicalgorithm to solve it.Here is short list of such problems:

I SAT

I HAMILTON PATH

I TSP(D)

I CLIQUE

I KNAPSACK

I BIN PACKING

I PARTITION

I . . .

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 50/ 71

Page 101: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Completeness

NP-complete problems

So one way to solve P?= NP positively, is to search for a

NP-complete problem and find a polynomial time deterministicalgorithm to solve it.Here is short list of such problems:

I SAT

I HAMILTON PATH

I TSP(D)

I CLIQUE

I KNAPSACK

I BIN PACKING

I PARTITION

I . . .

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 50/ 71

Page 102: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Completeness

NP-complete problems

So one way to solve P?= NP positively, is to search for a

NP-complete problem and find a polynomial time deterministicalgorithm to solve it.Here is short list of such problems:

I SAT

I HAMILTON PATH

I TSP(D)

I CLIQUE

I KNAPSACK

I BIN PACKING

I PARTITION

I . . .

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 50/ 71

Page 103: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Completeness

NP-complete problems

So one way to solve P?= NP positively, is to search for a

NP-complete problem and find a polynomial time deterministicalgorithm to solve it.Here is short list of such problems:

I SAT

I HAMILTON PATH

I TSP(D)

I CLIQUE

I KNAPSACK

I BIN PACKING

I PARTITION

I . . .

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 50/ 71

Page 104: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Languages and Turing-machines Complexity Classes

Completeness

NP-complete problems

So one way to solve P?= NP positively, is to search for a

NP-complete problem and find a polynomial time deterministicalgorithm to solve it.Here is short list of such problems:

I SAT

I HAMILTON PATH

I TSP(D)

I CLIQUE

I KNAPSACK

I BIN PACKING

I PARTITION

I . . .

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 50/ 71

Page 105: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

Part II

Propositional Logic

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 51/ 71

Page 106: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

Definition (Syntax of propositional logic)

Let V = {x1, x2, . . .} be a countable set of variables and C be afinite set of logical connectives with arbitrary, finite arity. Then allof the following are propositional formulas:

I The signs ⊥ and >I Variables

I ⊕(p1, . . . , pk), where ⊕ ∈ C is a logical connective (with arityk) and p1, . . . , pk are propositional formulas.

Parentheses may be added to clarify the precedence of logicalconnectives.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 52/ 71

Page 107: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

Definition (Valuation)

A valuation v : V → {>,⊥} is a function that gives variables thevalues “true” or “false”

Definition (Propositional language)

Given a set of variable V , a finite set of connectives C and avaluation v a propositional language defines the value of apropositional formula inductively:

I > means “true”, ⊥ means “false”

I Each x ∈ V means v(x)

I For each k ∈ N0, each connective ⊕ in C and each k-tuple offormulas (t1, . . . , tk) each ti meaning either “true” or “false”it defines whether ⊕(t1, . . . , tk) is “true” or “false”

After fixing a language we can give any formula φ a meaning ofeither “true” or “false” using a valuation v . For this we write φ(v).

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 53/ 71

Page 108: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

Definition (Valuation)

A valuation v : V → {>,⊥} is a function that gives variables thevalues “true” or “false”

Definition (Propositional language)

Given a set of variable V , a finite set of connectives C and avaluation v a propositional language defines the value of apropositional formula inductively:

I > means “true”, ⊥ means “false”

I Each x ∈ V means v(x)

I For each k ∈ N0, each connective ⊕ in C and each k-tuple offormulas (t1, . . . , tk) each ti meaning either “true” or “false”it defines whether ⊕(t1, . . . , tk) is “true” or “false”

After fixing a language we can give any formula φ a meaning ofeither “true” or “false” using a valuation v . For this we write φ(v).

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 53/ 71

Page 109: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

Definition (Valuation)

A valuation v : V → {>,⊥} is a function that gives variables thevalues “true” or “false”

Definition (Propositional language)

Given a set of variable V , a finite set of connectives C and avaluation v a propositional language defines the value of apropositional formula inductively:

I > means “true”, ⊥ means “false”

I Each x ∈ V means v(x)

I For each k ∈ N0, each connective ⊕ in C and each k-tuple offormulas (t1, . . . , tk) each ti meaning either “true” or “false”it defines whether ⊕(t1, . . . , tk) is “true” or “false”

After fixing a language we can give any formula φ a meaning ofeither “true” or “false” using a valuation v . For this we write φ(v).

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 53/ 71

Page 110: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

Example (A propositional logic)

Here is a well known propositional language:

V = {x1, . . .}, C = {∨,∧,¬}

Examples of such propositional formulas

x1 ∧ x2, (¬(x3 ∨ x1)) ∧ x1, . . .

With the usual meaning of the connectives this propositionallanguage is called standard base. Usually when we talk aboutpropositional formulas, we mean this language.

The other well known symbols p ⇒ q and p ⇔ q can be seen asabbreviations of ¬p ∨ (p ∧ q) or (p ⇒ q) ∧ (q ⇒ p).

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 54/ 71

Page 111: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

Example (A propositional logic)

Here is a well known propositional language:

V = {x1, . . .}, C = {∨,∧,¬}

Examples of such propositional formulas

x1 ∧ x2, (¬(x3 ∨ x1)) ∧ x1, . . .

With the usual meaning of the connectives this propositionallanguage is called standard base. Usually when we talk aboutpropositional formulas, we mean this language.The other well known symbols p ⇒ q and p ⇔ q can be seen asabbreviations of ¬p ∨ (p ∧ q) or (p ⇒ q) ∧ (q ⇒ p).

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 54/ 71

Page 112: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

The standard way to prove theorems about a propositional formulaφ is the induction on the structure of p. For example:

TheoremLet φ be a propositional formula and v1 and v2 be valuations thatagree on the set P of variables in φ, i.e. v1|P = v2|P . Thenφ(v1) = φ(v2).

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 55/ 71

Page 113: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

Proof.Proof by induction on the structure of φ.

I φ = ⊥ or φ = >:φ(v) =“true” respectively “false” regardless of valuation v

I φ = x with x variable:φ(v1) = v1(x) = v2(x) = φ(v2) because v1 and v2 agree on{x}.

I φ = ⊕(τ1, . . . , τk) where τi are propositional formulas forwhich the hypothesis τi (v1) = τi (v2) holds:φ(v1) = ⊕(τ1(v1), . . . , τk(v1)) = ⊕(τ1(v2), . . . , τk(v2)) =φ(v2)

Therefore the hypothesis holds.

Many proofs about propositional formulas follow the same scheme.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 56/ 71

Page 114: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

Definition (Satisfiability and Tautology)

A propositional formula φ is called

satisfiable , if there is a valuation v such that φ(v) =“true”.

unsatisfiable , if there is no such valuation.

tautology , if for any valuation v φ(v) =“true”.

equivalent to a formula ψ if φ⇔ ψ is a tautology.

The set of all satisfiable formulas is called SAT, the set of alltautology TAUT.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 57/ 71

Page 115: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

Definition (Satisfiability and Tautology)

A propositional formula φ is called

satisfiable , if there is a valuation v such that φ(v) =“true”.

unsatisfiable , if there is no such valuation.

tautology , if for any valuation v φ(v) =“true”.

equivalent to a formula ψ if φ⇔ ψ is a tautology.

The set of all satisfiable formulas is called SAT, the set of alltautology TAUT.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 57/ 71

Page 116: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

Definition (Satisfiability and Tautology)

A propositional formula φ is called

satisfiable , if there is a valuation v such that φ(v) =“true”.

unsatisfiable , if there is no such valuation.

tautology , if for any valuation v φ(v) =“true”.

equivalent to a formula ψ if φ⇔ ψ is a tautology.

The set of all satisfiable formulas is called SAT, the set of alltautology TAUT.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 57/ 71

Page 117: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

Definition (Satisfiability and Tautology)

A propositional formula φ is called

satisfiable , if there is a valuation v such that φ(v) =“true”.

unsatisfiable , if there is no such valuation.

tautology , if for any valuation v φ(v) =“true”.

equivalent to a formula ψ if φ⇔ ψ is a tautology.

The set of all satisfiable formulas is called SAT, the set of alltautology TAUT.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 57/ 71

Page 118: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

About SAT and TAUTSAT is in NP: A nondeterministic machine can “guess” allvaluations of a formula at once and then check if one is true. Thiscan be done polynomial time.

It even is NP-complete: For any nondeterministic machine Ndeciding L in polynomial time and any input x , there is a formulaF constructible in logarithmic space that is satisfiable if and only ifx ∈ L.Instead of asking if φ ∈TAUT one can ask if ¬φ ∈SAT. In thatsense SAT and TAUT are essentially the same.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 58/ 71

Page 119: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

About SAT and TAUTSAT is in NP: A nondeterministic machine can “guess” allvaluations of a formula at once and then check if one is true. Thiscan be done polynomial time.It even is NP-complete: For any nondeterministic machine Ndeciding L in polynomial time and any input x , there is a formulaF constructible in logarithmic space that is satisfiable if and only ifx ∈ L.

Instead of asking if φ ∈TAUT one can ask if ¬φ ∈SAT. In thatsense SAT and TAUT are essentially the same.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 58/ 71

Page 120: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

About SAT and TAUTSAT is in NP: A nondeterministic machine can “guess” allvaluations of a formula at once and then check if one is true. Thiscan be done polynomial time.It even is NP-complete: For any nondeterministic machine Ndeciding L in polynomial time and any input x , there is a formulaF constructible in logarithmic space that is satisfiable if and only ifx ∈ L.Instead of asking if φ ∈TAUT one can ask if ¬φ ∈SAT. In thatsense SAT and TAUT are essentially the same.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 58/ 71

Page 121: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

Outline

Abstract Proof Systems

Example of a Propositional Proof System: Resolution

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 59/ 71

Page 122: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

Proof Systems

Definition ((Abstract) Proof systems)

A proof system for a language L is a deterministic Turing-machineM operating in polynomial time that for any word x , there exists acertificate p, such that M accepts x#p if and only if x ∈ L.

Recall the characterization of NP through certificates: It is clearthat the language L is in NP.In that case, p is called a proof for x .The time bound of the machine M is called (time) complexity ofthe proof.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 60/ 71

Page 123: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

Definition (Propositional proof system)

A propositional proof system is a proof system for the languageTAUT of tautologies.If there exists a proof p in this system for every tautology x , thenthe system is called complete.If the existence of a proof p for x in this system implies that x is atautology, then the system is called sound.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 61/ 71

Page 124: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

Since a formula is a tautology if and only if its negation isunsatisfiable, we can give an alternative definition:

Definition (Propositional proof system)

A propositional proof system is a proof system for the languageUNSAT of unsatisfiable formulas.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 62/ 71

Page 125: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

Since there is a great number of propositional proof systems, it isuseful to have a way of saying that one is as strong as another.

Definition (Simulation)

Let M and M ′ be two proof systems. We say that M polynomiallysimulates M ′ if M and M ′ prove the same language and proofs inM ′ can be polynomially converted into proofs in M, i.e. thereexists a in polynomial time computable function such that p is aproof in M ′ if and only if f (p) is a proof in M ′.

Definition (Equivalence of proof systems)

Two proof systems M and M ′ are said to be equivalent if Mpolynomially simulates M ′ and vice versa.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 63/ 71

Page 126: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

Since there is a great number of propositional proof systems, it isuseful to have a way of saying that one is as strong as another.

Definition (Simulation)

Let M and M ′ be two proof systems. We say that M polynomiallysimulates M ′ if M and M ′ prove the same language and proofs inM ′ can be polynomially converted into proofs in M, i.e. thereexists a in polynomial time computable function such that p is aproof in M ′ if and only if f (p) is a proof in M ′.

Definition (Equivalence of proof systems)

Two proof systems M and M ′ are said to be equivalent if Mpolynomially simulates M ′ and vice versa.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 63/ 71

Page 127: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

Outline

Abstract Proof Systems

Example of a Propositional Proof System: Resolution

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 64/ 71

Page 128: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

Examples of Propositional Proof Systems

Now a short introduction to a common proof system: ResolutionThe proof systems will be described algorithmically rather thanstating the corresponding Turing machine.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 65/ 71

Page 129: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

Resolution

Definition (Literal, Conjunctive and Disjunctive Normal Form)

A propositional formula φ is

a literal if φ is a variable or a negated variable.

in conjunctive normal form (CNF) if it is a conjunction ofdisjunctions of literals.

in disjunctive normal form (DNF) if it is a disjunction ofconjunctions of literals.

Any formula has an equivalent formula in CNF and one in DNF.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 66/ 71

Page 130: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

Definition (Equisatisfiable)

Two formulas φ and φ′ are called equisatisfiable, if φ is satisfiableif and only if φ′ is satisfiable.

Example: (x ⇔ p) ∧ (x ∨ q) and p ∨ q, with p, q formulas, areequisatisfiable, but not equivalent.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 67/ 71

Page 131: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

Let φ be a formula in CNF represented as a set Φ of sets ofliterals, e.g. φ = (x1 ∨ x2) ∧ x3 ∧ ¬x2 is represented asΦ = {{x1, x2}, {x3}, {x2}}. Resolution is an algorithm for decidingif φ ∈SAT working on that set Φ.

Example:

{{a, b}, {a,¬b}, {¬a, b}, {¬a,¬b}}{{a}, {¬a}}

Each step in this example resolved on a variable: On the first weresolved on b, on the second on a.The formula represented by this set of sets is not satisfiable.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 68/ 71

Page 132: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

Let φ be a formula in CNF represented as a set Φ of sets ofliterals, e.g. φ = (x1 ∨ x2) ∧ x3 ∧ ¬x2 is represented asΦ = {{x1, x2}, {x3}, {x2}}. Resolution is an algorithm for decidingif φ ∈SAT working on that set Φ.Example:

{{a, b}, {a,¬b}, {¬a, b}, {¬a,¬b}}{{a}, {¬a}}

Each step in this example resolved on a variable: On the first weresolved on b, on the second on a.The formula represented by this set of sets is not satisfiable.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 68/ 71

Page 133: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

Definition (Resolvent)

Let C and D be set of literals representing a disjunction and x bevariable. If x ∈ C and ¬x ∈ D, then the set(C \ {x}) ∪ (D \ {¬x}) is called the resolvent of C and D.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 69/ 71

Page 134: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

DavisPutnam algorithm

Let S be a set of sets of literals representing a CNF and l be avariable. Define

I P := {C \ {l}, l ∈ C ∈ S}

I N := {D \ {¬l}, ¬l ∈ D ∈ S}I S0 := {E ∈ S , l ,¬l /∈ E}I S ′ := S0 ∪ {C ∪ D, C ∈ P, D ∈ N}

Then the formulas represented by S and S ′ are equisatisfiable.This is one DavisPutnam step building all possible resolvents.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 70/ 71

Page 135: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

DavisPutnam algorithm

Let S be a set of sets of literals representing a CNF and l be avariable. Define

I P := {C \ {l}, l ∈ C ∈ S}I N := {D \ {¬l}, ¬l ∈ D ∈ S}

I S0 := {E ∈ S , l ,¬l /∈ E}I S ′ := S0 ∪ {C ∪ D, C ∈ P, D ∈ N}

Then the formulas represented by S and S ′ are equisatisfiable.This is one DavisPutnam step building all possible resolvents.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 70/ 71

Page 136: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

DavisPutnam algorithm

Let S be a set of sets of literals representing a CNF and l be avariable. Define

I P := {C \ {l}, l ∈ C ∈ S}I N := {D \ {¬l}, ¬l ∈ D ∈ S}I S0 := {E ∈ S , l ,¬l /∈ E}

I S ′ := S0 ∪ {C ∪ D, C ∈ P, D ∈ N}

Then the formulas represented by S and S ′ are equisatisfiable.This is one DavisPutnam step building all possible resolvents.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 70/ 71

Page 137: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

DavisPutnam algorithm

Let S be a set of sets of literals representing a CNF and l be avariable. Define

I P := {C \ {l}, l ∈ C ∈ S}I N := {D \ {¬l}, ¬l ∈ D ∈ S}I S0 := {E ∈ S , l ,¬l /∈ E}I S ′ := S0 ∪ {C ∪ D, C ∈ P, D ∈ N}

Then the formulas represented by S and S ′ are equisatisfiable.This is one DavisPutnam step building all possible resolvents.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 70/ 71

Page 138: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

DavisPutnam algorithm

Let S be a set of sets of literals. Construct S ′ by one DavisPutnamstep from S , S ′′ by one resolution step from S ′, S (3) from S ′′ andso on, each time using a new variable.

If there is a n ∈ N such that ∅ ∈ S (n) then the formula representedby S (n) is unsatisfiable and therefore also the one represented by S .Is it not possible to choose a variable to construct a new resolventanymore, then the formula represented by S is satisfiable.

Resolution is therefore a complete and sound proof system forpropositional formulas in CNF.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 71/ 71

Page 139: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

DavisPutnam algorithm

Let S be a set of sets of literals. Construct S ′ by one DavisPutnamstep from S , S ′′ by one resolution step from S ′, S (3) from S ′′ andso on, each time using a new variable.If there is a n ∈ N such that ∅ ∈ S (n) then the formula representedby S (n) is unsatisfiable and therefore also the one represented by S .

Is it not possible to choose a variable to construct a new resolventanymore, then the formula represented by S is satisfiable.

Resolution is therefore a complete and sound proof system forpropositional formulas in CNF.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 71/ 71

Page 140: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

DavisPutnam algorithm

Let S be a set of sets of literals. Construct S ′ by one DavisPutnamstep from S , S ′′ by one resolution step from S ′, S (3) from S ′′ andso on, each time using a new variable.If there is a n ∈ N such that ∅ ∈ S (n) then the formula representedby S (n) is unsatisfiable and therefore also the one represented by S .Is it not possible to choose a variable to construct a new resolventanymore, then the formula represented by S is satisfiable.

Resolution is therefore a complete and sound proof system forpropositional formulas in CNF.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 71/ 71

Page 141: Introduction to the Theory of Complexity Classes and Logic · Languages and Turing-machines Complexity Classes De nition (Language) I For a word w we write jwjfor its length. I Shorthand

Abstract Proof Systems Example of a Propositional Proof System: Resolution

DavisPutnam algorithm

Let S be a set of sets of literals. Construct S ′ by one DavisPutnamstep from S , S ′′ by one resolution step from S ′, S (3) from S ′′ andso on, each time using a new variable.If there is a n ∈ N such that ∅ ∈ S (n) then the formula representedby S (n) is unsatisfiable and therefore also the one represented by S .Is it not possible to choose a variable to construct a new resolventanymore, then the formula represented by S is satisfiable.

Resolution is therefore a complete and sound proof system forpropositional formulas in CNF.

Stefan Kunkel: Introduction to the Theory of Complexity Classes and Logic 71/ 71