introduction to theoretical computer science · 2019-02-08 · introduction to theoretical computer...
TRANSCRIPT
![Page 1: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/1.jpg)
Introduction to Theoretical Computer Science
Zdenek Sawa
Department of Computer Science, FEI,Technical University of Ostrava
17. listopadu 15, Ostrava-Poruba 708 33Czech republic
February 8, 2019
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 1 / 569
![Page 2: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/2.jpg)
Lecturer
Name: doc. Ing. Zdenek Sawa, Ph.D.
E-mail: [email protected]
Room: EA413
Web: http://www.cs.vsb.cz/sawa/uti/index-en.html
On these pages you will find:
Information about the course
Study texts
Slides from lectures
Exercises for tutorials
Recent news for the course
A link to a page with animations
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 2 / 569
![Page 3: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/3.jpg)
Requirements
Credit (22 points):
Written test (16 points) — it will be written on a tutorialThe minimal requirement for obtaining the credit is 9 points.A correcting test for 14 points.
Activity on tutorials (6 points)The minimal requirement for obtaining the credit is 3 points.
Exam (78 points)
A written exam consisting of three parts (26 points for eachpart); it is necessary to obtain at least 10 points for each part.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 3 / 569
![Page 4: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/4.jpg)
Theoretical Computer Science
Theoretical computer science — a scientific field on the border betweencomputer science and mathematics
investigation of general questions concerning algorithms andcomputations
study of different kinds of formalisms for description of algorithms
study of different approaches for description of syntax and semanticsof formal languages (mainly programming languages)
a mathematical approach to analysis and solution of problems (proofsof general mathematical propositions concerning algorithms)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 4 / 569
![Page 5: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/5.jpg)
Theoretical Computer Science
Examples of some typical questions studied in theoretical computer science:
Is it possible to solve the given problem using some algorithm?
If the given problem can be solved by an algorithm, what is thecomputational complexity of this algorithm?
Is there an efficient algorithm solving the given problem?
How to check that a given algorithm is really a correct solution of thegiven problem?
What kinds instructions are sufficient for a given machine to performa given algorithm?
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 5 / 569
![Page 6: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/6.jpg)
An example of an algorithmic problem
Problem “’Finding the shortest path in an (undirected) graph’
Input: An undirected graph G = (V ,E ) with edges labelled withnumbers, and a pair of nodes u, v ∈ V .
Output: The shortest path from node u to node v .
Example:
u v
10
129
14
116
9
13 10
7
12
11
810
17
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 6 / 569
![Page 7: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/7.jpg)
Algorithms and Problems
Theoretical computer science overlaps with many other areas ofmathematics and computer science:
graph theory
number theory
computational geometry
searching in text
game theory
. . .
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 7 / 569
![Page 8: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/8.jpg)
Logic
Logic — study of reasoning and argumentation
it studies when a conclusion follows from given assumptions
it studies questions concerning proofs and provability
it provides a basic language for mathematics and all sciences based onmathematics
it is connected with study of foundations of mathematics
it is used in computer science on many different levels
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 8 / 569
![Page 9: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/9.jpg)
Propositional Logic
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 9 / 569
![Page 10: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/10.jpg)
Logical Inference
- If the train arrives late and there are no taxis at the station, then
John is late for his meeting.
- John is not late for his meeting.
- The train did arrive late.
- There were taxis at the station.
- If it is raining and Jane does not have her umbrella with her, then
she will get wet.
- Jane is not wet.
- It is raining.
- Jane has her umbrella with her.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 10 / 569
![Page 11: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/11.jpg)
Logical Inference
p The train is late. It is raining.q There are taxis at the station. Jane has her umbrella with her.r John is late for his meeting. Jane gets wet.
If p and not q, then r .Not r .p.
q.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 11 / 569
![Page 12: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/12.jpg)
Propositions
Examples of propositions:
“Jane gets wet.”
“If it is raining and Jane does not have her umbrella with her, then
she will get wet.”
“Paris is the capital of Japan.”
“There are infinitely many primes.”
“1+ 1 = 3”
“Number√2 is irrational.”
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 12 / 569
![Page 13: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/13.jpg)
Logical Connectives
Atomic proposition — it cannot be decomposed into simpler propositions
“It is raining.”
Compound proposition — it is composed from some simpler propositions
“If it is raining and Jane does not have her umbrella with her, then
she will get wet.”
It consists of propositions:
“It is raining.”
“Jane has her umbrella with her.”
“Jane gets wet.”
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 13 / 569
![Page 14: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/14.jpg)
Logical Connectives
More complicated propositions can be constructed from simplerpropositions using logical connectives:
Symbol Log. connective Example of use Informal meaning
¬ negation ¬p “not p”
∧ conjunction p ∧ q “p and q”
∨ disjunction p ∨ q “p or q”
→ implication p → q “if p then q”
↔ equivalence p ↔ q “p if and only if q”
Atomic propositions — p, q, r , . . .(possibly with indexes — p0, p1, p2, . . . )
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 14 / 569
![Page 15: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/15.jpg)
Logical Connectives
Propositions are represented using formulas — formulas have a preciselydefined syntax and semantics.
“If it is raining and Jane does not have her umbrella with her, then she will
get wet.”
The proposition written as a formula:
(p ∧ ¬q)→ r
Atomic propositions:
p — “It is raining.”
q — “Jane has her umbrella with her.”
r — “Jane gets wet.”
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 15 / 569
![Page 16: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/16.jpg)
Truth Values
1 0true falseyes no
We will use 0 and 1 to denote the truth values.
The truth values are also called boolean values.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 16 / 569
![Page 17: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/17.jpg)
Negation
The negation of a proposition ϕ is the proposition “not ϕ”, or theproposition “it is not the case that ϕ”. For example, the negation of
“the number 5 is a prime”
is a proposition
“it is not true that the number 5 is a prime”
or“the number 5 is not a prime”.
In formulas, negation is denoted by symbol “¬”.
Formally: ¬ϕ
ϕ ¬ϕ
0 11 0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 17 / 569
![Page 18: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/18.jpg)
Conjunction
The conjunction of propositions ϕ and ψ is proposition “ϕ and ψ”.
Example: The conjuction of propositions“Copenhagen is the capital of Denmark” and “2+ 2 = 4” is proposition
“Copenhagen is the capital of Denmark and 2+ 2 = 4.”
In formulas, conjuction is denoted by symbol “∧”.
p ∧ q
p — “Copenhagen is the capital of Denmark”
q — “2+ 2 = 4”
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 18 / 569
![Page 19: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/19.jpg)
Conjunction
ϕ ψ ϕ∧ψ
0 0 00 1 01 0 01 1 1
Examples of false propositions:
“Helsinki are the capital of Italy and Charles University was founded
in 1348.”
“Asia is the largest continent and 3+ 5 = 14.”
“There are only finitely many primes and Pilsen is the capital of
USA.”
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 19 / 569
![Page 20: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/20.jpg)
Disjunction
The disjunction of propositions ϕ and ψ is proposition “ϕ or ψ”.
Example: The disjunction of propositions “whales are mammals” and“Czeck Republic is in Europe” is proposition
“whales are mammals or Czech Republic is in Europe”.
In formulas, disjunction is denoted by symbol “∨”.
p ∨ q
p — “whales are mammals”
q — “Czech Republic is in Europe”
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 20 / 569
![Page 21: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/21.jpg)
Disjunction
Disjunction is “or” in non-exclusive sense.
ϕ ψ ϕ∨ψ
0 0 00 1 11 0 11 1 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 21 / 569
![Page 22: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/22.jpg)
Implication
Implication — “if ϕ then ψ”
ϕ — assumption (hypothesis)
ψ — conclusion
Example:
“If Peter was well-prepared for the exam, he obtained a good
grade.”
Implication is denoted by symbol “→”.
p → q
p — “Peter was well-prepared for the exam”
q — “Peter obtained a good grade”
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 22 / 569
![Page 23: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/23.jpg)
Implication
ϕ ψ ϕ→ ψ
0 0 10 1 11 0 01 1 1
Remark: Formula p → q is true exactly in those cases where the followingformula is true:
¬p ∨ q
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 23 / 569
![Page 24: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/24.jpg)
Implication
Implication does not express causal dependence.
Example:
“If Washington is the capital of USA, then 1+ 1 = 2.”
“If Washington is the capital of USA, then 1+ 1 = 3.”
“If Tokyo is the capital of USA, then 1+ 1 = 2.”
“If Tokyo is the capital of USA, then 1+ 1 = 3.”
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 24 / 569
![Page 25: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/25.jpg)
Implication
Implication p → q can be expressed in a natural language in manydifferent ways:
“q if p”
“p only if q”
“p implies q”
“q provided that p”
“from p follows q”
“p is a sufficient condition for q”
“q is a necessary condition for p”
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 25 / 569
![Page 26: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/26.jpg)
Implication
If ϕ→ ψ is true and also ϕ is true, we can infer from this that also ψ istrue.
Example: When it holds that
“if today is Tuesday, then tomorrow is Wednesday”
“today is Tuesday”
we can infer from this that
“tomorrow is Wednesday”
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 26 / 569
![Page 27: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/27.jpg)
Equivalence
Equivalence — “ϕ if and only if ψ”
Example:
“Triangle ABC has all three sides of the same length if and only
if it has all three angles of the same size.”
The logical connective equivalence is denoted by symbol “↔”
p ↔ q
p — “triangle ABC has all three sides of the same length”
q — “triangle ABC has all three angles of the same size”
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 27 / 569
![Page 28: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/28.jpg)
Equivalence
ϕ ψ ϕ↔ ψ
0 0 10 1 01 0 01 1 1
Remark: Formula p ↔ q says basically the same thing as
(p → q) ∧ (q → p)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 28 / 569
![Page 29: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/29.jpg)
Equivalence
Alternatives for expressing equivalence p ↔ p:
“p is a necessary and sufficient condition for q”
“p iff q”
Equivalence is often used in definitions of new notions:
Example:
“A triangle is isoscele if and only if at least two of its sides are equal
in length.”
“A triangle is isoscele if at least two of its sides are equal in length.”
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 29 / 569
![Page 30: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/30.jpg)
Formulas of Propositional Logic
Syntax — what are well-formed formulas of propositional logic
Semantics — assigns meaning to formulas and to individual symbolsoccurring in these formulas
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 30 / 569
![Page 31: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/31.jpg)
Syntax of Formulas of Propositional Logic
Formulas — sequences of symbols from a given alphabet:
atomic propositions — for example symbols “p”, “q”, “r”, etc.
logical connectives — symbols “¬”, “∧”, “∨” “→”, “↔”
parentheses — symbols “(” and “)”
Not every sequence of these symbols is a formula.
For example, this is not a formula:
∧∨)p¬((¬
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 31 / 569
![Page 32: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/32.jpg)
Syntax of Formulas of Propositional Logic
Definition
Well-formed formulas of propositional logic are sequences of symbolsconstructed according to the following rules:
1 If p is an atomic proposition, then p is a well-formed formula.
2 If ϕ and ψ are well-formed formulas, then also (¬ϕ), (ϕ∧ψ),(ϕ∨ψ), (ϕ→ ψ) a (ϕ↔ ψ) are well-formed formulas.
3 There are no other well-formed formulas than those constructedaccording to two previous rules.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 32 / 569
![Page 33: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/33.jpg)
Syntax of Formulas of Propositional Logic
Examples of well-formed formulas:
q
(¬q)
r
((¬q)→ r)
p
(p ↔ r)
(¬(p ↔ r))
(((¬q)→ r)∧ (¬(p ↔ r)))
An example of a sequnce of symbols, which is not a well-formed formula:
(p ∧∨q)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 33 / 569
![Page 34: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/34.jpg)
Syntax of Formulas of Propositional Logic
Formula ψ is a subformula of formula ϕ if at least one of the followingpossibilities holds:
Formula ψ is the same formula as formula ϕ.
If formula ϕ is of the form (¬χ), then ψ is a subformula of formula χ.
If formula ϕ is of the form (χ1 ∧ χ2), (χ1 ∨ χ2), (χ1 → χ2), or(χ1 ↔ χ2), then ψ is a subformula of formula χ1 or a subformula offormula χ2.
Example: Subformulas of formula ((¬(p ∧ q))↔ r):
p q r (p ∧ q) (¬(p ∧ q)) ((¬(p ∧ q))↔ r)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 34 / 569
![Page 35: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/35.jpg)
Syntax of Formulas of Propositional Logic
Alternative symbols for logical connectives:
Connective Symbol Alternative symbols
negation ¬ ∼
conjunction ∧ &
implication → ⇒, ⊃equivalence ↔ ⇔, ≡
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 35 / 569
![Page 36: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/36.jpg)
Syntax of Formulas of Propositional Logic
An abstract syntax tree of formula (((¬q)→ r)∧ (¬(p ↔ r))):
pq
r
r¬
¬
∧
→
↔
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 36 / 569
![Page 37: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/37.jpg)
Syntax of Formulas of Propositional Logic
p (¬ψ1) (ψ1 ∧ψ2) (ψ1 ∨ψ2)
p
ψ1
ψ ¬
ψ1 ψ2
∧
ψ1 ψ2
∨
(ψ1 → ψ2) (ψ1 ↔ ψ2)
ψ1 ψ2
→
ψ1 ψ2
↔
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 37 / 569
![Page 38: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/38.jpg)
Syntax of Formulas of Propositional Logic
Arity of logical connectives:
unary connective (arity 1): ¬
binary connectives (arity 2): ∧, ∨, →, ↔
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 38 / 569
![Page 39: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/39.jpg)
Syntax of Formulas of Propositional Logic
Conventions for omitting parentheses:
Outermost pair of parentheses can be omitted.
Priority of logical connectives (from the highest to the lowest):
¬ ∧ ∨ → ↔
Instead of ¬(¬ϕ), it is possible to write ¬¬ϕ.
Example: Instead of ((¬p)∧ (r → (q ∨ s))), it is possible to write
¬p ∧ (r → q ∨ s)
Remark: Other conventions will be described later.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 39 / 569
![Page 40: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/40.jpg)
Semantics of Propositional Logic
At — a set of atomic propositions
For example
At = p, q, r , or
At = p0, p1, p2, . . .
Definition
A truth valuation is an assignment of truth values (i.e., values from theset 0, 1) to all atomic propositions from the set At .(Formally, a truth valuation can be defined as a function v : At → 0, 1.)
Example: A truth valuation v for At = p, q, r , where
v(p) = 1 v(q) = 0 v(r) = 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 40 / 569
![Page 41: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/41.jpg)
Semantics of Propositional Logic
If set At is finite and contains n atomic propositions, then there are 2n
truth valuations.
Example: At = p, q, r
v0: v0(p) = 0, v0(q) = 0, v0(r) = 0v1: v1(p) = 0, v1(q) = 0, v1(r) = 1v2: v2(p) = 0, v2(q) = 1, v2(r) = 0v3: v3(p) = 0, v3(q) = 1, v3(r) = 1v4: v4(p) = 1, v4(q) = 0, v4(r) = 0v5: v5(p) = 1, v5(q) = 0, v5(r) = 1v6: v6(p) = 1, v6(q) = 1, v6(r) = 0v7: v7(p) = 1, v7(q) = 1, v7(r) = 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 41 / 569
![Page 42: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/42.jpg)
Semantics of Propositional Logic
At truth valuation v , formula ϕ has truth value 1:
v |= ϕ
At truth valuation v , formula ϕ has truth value 0:
v 6|= ϕ
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 42 / 569
![Page 43: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/43.jpg)
Semantics of Propositional Logic
Definition
Truth values of formulas of propositional logic in a given truthvaluation v are defined as follows:
For atomic proposition p, v |= p iff v(p) = 1.(So, if v(p) = 0, then v 6|= p.)
v |= ¬ϕ iff v 6|= ϕ.v |= ϕ∧ψ iff v |= ϕ and v |= ψ.
v |= ϕ∨ψ iff v |= ϕ or v |= ψ.
v |= ϕ→ ψ iff v 6|= ϕ or v |= ψ.
v |= ϕ↔ ψ iff v |= ϕ and v |= ψ, or v 6|= ϕ and v 6|= ψ.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 43 / 569
![Page 44: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/44.jpg)
Semantics of Propositional Logic
ϕ ¬ϕ
0 11 0
ϕ ψ ϕ∧ψ ϕ∨ψ ϕ→ ψ ϕ↔ ψ
0 0 0 0 1 10 1 0 1 1 01 0 0 1 0 01 1 1 1 1 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 44 / 569
![Page 45: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/45.jpg)
Semantics of Propositional Logic
Example: At = p, q, r
valuation v , where v(p) = 1, v(q) = 0, and v(r) = 1
p q r ¬q ¬q → r p ↔ r ¬(p ↔ r) ϕ
ϕ := (¬q → r)∧ ¬(p ↔ r)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 45 / 569
![Page 46: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/46.jpg)
Semantics of Propositional Logic
Example: At = p, q, r
valuation v , where v(p) = 1, v(q) = 0, and v(r) = 1
v |= p
v 6|= q
v |= r
p q r ¬q ¬q → r p ↔ r ¬(p ↔ r) ϕ
1 0 1
ϕ := (¬q → r)∧ ¬(p ↔ r)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 45 / 569
![Page 47: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/47.jpg)
Semantics of Propositional Logic
Example: At = p, q, r
valuation v , where v(p) = 1, v(q) = 0, and v(r) = 1
v |= p
v 6|= q
v |= r
v |= ¬q
p q r ¬q ¬q → r p ↔ r ¬(p ↔ r) ϕ
1 0 1 1
ϕ := (¬q → r)∧ ¬(p ↔ r)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 45 / 569
![Page 48: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/48.jpg)
Semantics of Propositional Logic
Example: At = p, q, r
valuation v , where v(p) = 1, v(q) = 0, and v(r) = 1
v |= p
v 6|= q
v |= r
v |= ¬q
v |= ¬q → r
p q r ¬q ¬q → r p ↔ r ¬(p ↔ r) ϕ
1 0 1 1 1
ϕ := (¬q → r)∧ ¬(p ↔ r)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 45 / 569
![Page 49: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/49.jpg)
Semantics of Propositional Logic
Example: At = p, q, r
valuation v , where v(p) = 1, v(q) = 0, and v(r) = 1
v |= p
v 6|= q
v |= r
v |= ¬q
v |= ¬q → r
v |= p ↔ r
p q r ¬q ¬q → r p ↔ r ¬(p ↔ r) ϕ
1 0 1 1 1 1
ϕ := (¬q → r)∧ ¬(p ↔ r)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 45 / 569
![Page 50: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/50.jpg)
Semantics of Propositional Logic
Example: At = p, q, r
valuation v , where v(p) = 1, v(q) = 0, and v(r) = 1
v |= p
v 6|= q
v |= r
v |= ¬q
v |= ¬q → r
v |= p ↔ r
v 6|= ¬(p ↔ r)
p q r ¬q ¬q → r p ↔ r ¬(p ↔ r) ϕ
1 0 1 1 1 1 0
ϕ := (¬q → r)∧ ¬(p ↔ r)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 45 / 569
![Page 51: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/51.jpg)
Semantics of Propositional Logic
Example: At = p, q, r
valuation v , where v(p) = 1, v(q) = 0, and v(r) = 1
v |= p
v 6|= q
v |= r
v |= ¬q
v |= ¬q → r
v |= p ↔ r
v 6|= ¬(p ↔ r)
v 6|= (¬q → r)∧ ¬(p ↔ r)
p q r ¬q ¬q → r p ↔ r ¬(p ↔ r) ϕ
1 0 1 1 1 1 0 0
ϕ := (¬q → r)∧ ¬(p ↔ r)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 45 / 569
![Page 52: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/52.jpg)
Semantics of Propositional Logic
ϕ := (¬q → r)∧ ¬(p ↔ r)
pq
r
r¬
¬
∧
→
↔
=
p q r ¬q ¬q → r p ↔ r ¬(p ↔ r) ϕ
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 46 / 569
![Page 53: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/53.jpg)
Semantics of Propositional Logic
ϕ := (¬q → r)∧ ¬(p ↔ r)
pq
r
r¬
¬
∧
→
↔
=
0
1
1 1
p q r ¬q ¬q → r p ↔ r ¬(p ↔ r) ϕ
1 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 46 / 569
![Page 54: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/54.jpg)
Semantics of Propositional Logic
ϕ := (¬q → r)∧ ¬(p ↔ r)
pq
r
r¬
¬
∧
→
↔
=
0
1 1
1 1
p q r ¬q ¬q → r p ↔ r ¬(p ↔ r) ϕ
1 0 1 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 46 / 569
![Page 55: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/55.jpg)
Semantics of Propositional Logic
ϕ := (¬q → r)∧ ¬(p ↔ r)
pq
r
r¬
¬
∧
→
↔
=
0
1 1
1
1 1
p q r ¬q ¬q → r p ↔ r ¬(p ↔ r) ϕ
1 0 1 1 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 46 / 569
![Page 56: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/56.jpg)
Semantics of Propositional Logic
ϕ := (¬q → r)∧ ¬(p ↔ r)
pq
r
r¬
¬
∧
→
↔
=
0
1 1
1
1 1
1
p q r ¬q ¬q → r p ↔ r ¬(p ↔ r) ϕ
1 0 1 1 1 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 46 / 569
![Page 57: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/57.jpg)
Semantics of Propositional Logic
ϕ := (¬q → r)∧ ¬(p ↔ r)
pq
r
r¬
¬
∧
→
↔
=
0
1 1
1
1 1
1
0
p q r ¬q ¬q → r p ↔ r ¬(p ↔ r) ϕ
1 0 1 1 1 1 0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 46 / 569
![Page 58: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/58.jpg)
Semantics of Propositional Logic
ϕ := (¬q → r)∧ ¬(p ↔ r)
pq
r
r¬
¬
∧
→
↔
=
0
1 1
1
1 1
1
0
0
p q r ¬q ¬q → r p ↔ r ¬(p ↔ r) ϕ
1 0 1 1 1 1 0 0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 46 / 569
![Page 59: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/59.jpg)
Semantics of Propositional Logic
ϕ := (¬q → r)∧ ¬(p ↔ r)
pq
r
r¬
¬
∧
→
↔
=
0
1 0
0
0 0
1
0
0
v0(p) = 0 v0(q) = 0 v0(r) = 0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 46 / 569
![Page 60: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/60.jpg)
Semantics of Propositional Logic
ϕ := (¬q → r)∧ ¬(p ↔ r)
pq
r
r¬
¬
∧
→
↔
=
0
1 1
1
0 1
0
1
1
v1(p) = 0 v1(q) = 0 v1(r) = 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 46 / 569
![Page 61: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/61.jpg)
Semantics of Propositional Logic
ϕ := (¬q → r)∧ ¬(p ↔ r)
pq
r
r¬
¬
∧
→
↔
=
1
0 0
1
0 0
1
0
0
v2(p) = 0 v2(q) = 1 v2(r) = 0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 46 / 569
![Page 62: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/62.jpg)
Semantics of Propositional Logic
ϕ := (¬q → r)∧ ¬(p ↔ r)
pq
r
r¬
¬
∧
→
↔
=
1
0 1
1
0 1
0
1
1
v3(p) = 0 v3(q) = 1 v3(r) = 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 46 / 569
![Page 63: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/63.jpg)
Semantics of Propositional Logic
ϕ := (¬q → r)∧ ¬(p ↔ r)
pq
r
r¬
¬
∧
→
↔
=
0
1 0
0
1 0
0
1
0
v4(p) = 1 v4(q) = 0 v4(r) = 0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 46 / 569
![Page 64: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/64.jpg)
Semantics of Propositional Logic
ϕ := (¬q → r)∧ ¬(p ↔ r)
pq
r
r¬
¬
∧
→
↔
=
0
1 1
1
1 1
1
0
0
v5(p) = 1 v5(q) = 0 v5(r) = 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 46 / 569
![Page 65: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/65.jpg)
Semantics of Propositional Logic
ϕ := (¬q → r)∧ ¬(p ↔ r)
pq
r
r¬
¬
∧
→
↔
=
1
0 0
1
1 0
0
1
1
v6(p) = 1 v6(q) = 1 v6(r) = 0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 46 / 569
![Page 66: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/66.jpg)
Semantics of Propositional Logic
ϕ := (¬q → r)∧ ¬(p ↔ r)
pq
r
r¬
¬
∧
→
↔
=
1
0 1
1
1 1
1
0
0
v7(p) = 1 v7(q) = 1 v7(r) = 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 46 / 569
![Page 67: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/67.jpg)
Semantics of Propositional Logic
ϕ := (¬q → r)∧ ¬(p ↔ r)
p q r ¬q ¬q → r p ↔ r ¬(p ↔ r) ϕ
0 0 0 1 0 1 0 00 0 1 1 1 0 1 10 1 0 0 1 1 0 00 1 1 0 1 0 1 11 0 0 1 0 0 1 01 0 1 1 1 1 0 01 1 0 0 1 0 1 11 1 1 0 1 1 0 0
Those valuations, where the given formula is true, are called its models:
v1: v1(p) = 0, v1(q) = 0, v1(r) = 1,v3: v3(p) = 0, v3(q) = 1, v3(r) = 1,v6: v6(p) = 1, v6(q) = 1, v6(r) = 0,
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 47 / 569
![Page 68: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/68.jpg)
Formulas Represented as Directed Acyclic Graphs
ϕ := ((p ↔ r)∨ (p ∧ ¬q)) ∧ ((p ∧ ¬q)→ ¬r)
ppp qq rr
¬ ¬¬
∧ ∧
∧
∨ →
↔
In an abstract syntax tree, nodes correspond to occurrences ofsubformulas.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 48 / 569
![Page 69: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/69.jpg)
Formulas Represented as Directed Acyclic Graphs
ϕ := ((p ↔ r)∨ (p ∧ ¬q)) ∧ ((p ∧ ¬q)→ ¬r)
ppp qq rr
¬ ¬¬
∧ ∧
∧
∨ →
↔
Alternatively, a formula can be represented as a directed acyclic graph.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 48 / 569
![Page 70: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/70.jpg)
Formulas Represented as Directed Acyclic Graphs
ϕ := ((p ↔ r)∨ (p ∧ ¬q)) ∧ ((p ∧ ¬q)→ ¬r)
ppp qq rr
¬ ¬¬
∧ ∧
∧
∨ →
↔
Edges are oriented from children to their parents.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 48 / 569
![Page 71: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/71.jpg)
Formulas Represented as Directed Acyclic Graphs
Leafs labelled with the same atomic proposition are merged together.
Those nodes, which are labelled with the same symbol and whichhave the same predecessors, can be merged.
∧∧∧
Such merging of nodes can be done repeatedly — when some nodesare merged, merging of some other nodes may become possible.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 49 / 569
![Page 72: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/72.jpg)
Formulas Represented as Directed Acyclic Graphs
ϕ := ((p ↔ r)∨ (p ∧ ¬q)) ∧ ((p ∧ ¬q)→ ¬r)
p q r
¬
¬
∧
∧
∨ →
↔
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 50 / 569
![Page 73: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/73.jpg)
Formulas Represented as Directed Acyclic Graphs
When we merge all nodes that can be possibly merged this way, weobtain a graph where individual nodes correspond to differentsubformulas of a given formula.
A directed acyclic graph representing a given formula can be viewedas a logic circuit:
Inputs — nodes labelled with atomic propositions
Output — the node corresponding to the whole formula
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 51 / 569
![Page 74: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/74.jpg)
Formulas Represented as Directed Acyclic Graphs
ϕ := ((p ↔ r)∨ (p ∧ ¬q)) ∧ ((p ∧ ¬q)→ ¬r)
p q r
¬
¬
∧
∧
∨ →
↔
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 52 / 569
![Page 75: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/75.jpg)
Formulas Represented as Directed Acyclic Graphs
ϕ := ((p ↔ r)∨ (p ∧ ¬q)) ∧ ((p ∧ ¬q)→ ¬r)
p q r
0 0 0
1
1
0 1
1 1
1
¬
¬
∧
∧
∨ →
↔
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 52 / 569
![Page 76: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/76.jpg)
Formulas Represented as Directed Acyclic Graphs
ϕ := ((p ↔ r)∨ (p ∧ ¬q)) ∧ ((p ∧ ¬q)→ ¬r)
p q r
0 0 1
0
1
0 0
0 1
0
¬
¬
∧
∧
∨ →
↔
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 52 / 569
![Page 77: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/77.jpg)
Formulas Represented as Directed Acyclic Graphs
ϕ := ((p ↔ r)∨ (p ∧ ¬q)) ∧ ((p ∧ ¬q)→ ¬r)
p q r
0 1 0
1
0
0 1
1 1
1
¬
¬
∧
∧
∨ →
↔
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 52 / 569
![Page 78: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/78.jpg)
Formulas Represented as Directed Acyclic Graphs
ϕ := ((p ↔ r)∨ (p ∧ ¬q)) ∧ ((p ∧ ¬q)→ ¬r)
p q r
0 1 1
0
0
0 0
0 1
0
¬
¬
∧
∧
∨ →
↔
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 52 / 569
![Page 79: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/79.jpg)
Formulas Represented as Directed Acyclic Graphs
ϕ := ((p ↔ r)∨ (p ∧ ¬q)) ∧ ((p ∧ ¬q)→ ¬r)
p q r
1 0 0
0
1
1 1
1 1
1
¬
¬
∧
∧
∨ →
↔
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 52 / 569
![Page 80: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/80.jpg)
Formulas Represented as Directed Acyclic Graphs
ϕ := ((p ↔ r)∨ (p ∧ ¬q)) ∧ ((p ∧ ¬q)→ ¬r)
p q r
1 0 1
1
1
1 0
1 0
0
¬
¬
∧
∧
∨ →
↔
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 52 / 569
![Page 81: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/81.jpg)
Formulas Represented as Directed Acyclic Graphs
ϕ := ((p ↔ r)∨ (p ∧ ¬q)) ∧ ((p ∧ ¬q)→ ¬r)
p q r
1 1 0
0
0
0 1
0 1
0
¬
¬
∧
∧
∨ →
↔
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 52 / 569
![Page 82: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/82.jpg)
Formulas Represented as Directed Acyclic Graphs
ϕ := ((p ↔ r)∨ (p ∧ ¬q)) ∧ ((p ∧ ¬q)→ ¬r)
p q r
1 1 1
1
0
0 0
1 1
1
¬
¬
∧
∧
∨ →
↔
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 52 / 569
![Page 83: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/83.jpg)
Tautologies
Definition
Formula ϕ is a tautology if v |= ϕ holds for every truth valuation v
(i.e., if ϕ is true in every valuation).
Example: “If it is raining, then it is raining.”
p → p
Example: “It is Friday today, or it is not Friday today.”
q ∨ ¬q
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 53 / 569
![Page 84: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/84.jpg)
Tautologies
An example of a more complicated tautology:
(p → q)→ ((p → ¬q)→ ¬p)
p q p → q ¬q p → ¬q ¬p (p → ¬q)→ ¬p ϕ
0 0 1 1 1 1 1 10 1 1 0 1 1 1 11 0 0 1 1 0 0 11 1 1 0 0 0 1 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 54 / 569
![Page 85: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/85.jpg)
Tautologies
Quite important are tautologies of the form ϕ→ ψ or ϕ↔ ψ
— they can be used for logical inference:
If ϕ→ ψ holds and ϕ holds, then also ψ must hold.
In particular, if ϕ→ ψ is a tautology and ϕ holds, we can deducethat also ψ holds.
Example: (p ∧ q)→ p is a tautology.
If p ∧ q holds, then also p holds.
Example: (p → q)→ (¬q → ¬p) is a tautology.
If p → q holds and ¬q holds, then ¬p holds.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 55 / 569
![Page 86: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/86.jpg)
Tautologies
If ϕ↔ ψ holds and ϕ holds, then ψ must hold.
Similarly, if ϕ↔ ψ holds and ψ holds, then ϕ must hold.
Example: (¬p → q)↔ (q ∨ p) is a tautology.
If ¬p → q holds, then also q ∨ p must hold.
If q ∨ p holds, then also ¬p → q must hold.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 56 / 569
![Page 87: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/87.jpg)
Tautologies
When we take a tautology ϕ and replace all atomic propositions byarbitrary formulas, we obtain a tautology by this replacement.
Example: Formula p → (p ∨ q) is a tautology.
This means that
ψ→ (ψ∨ χ)
is a tautology for arbitrary formulas ψ and χ.
Replacement of atomic propositions:
p is replaced with q ∨ ¬(r → ¬s)
q is replaced with ¬¬(q ↔ p)
We obtain tautology
(q ∨ ¬(r → ¬s))→ ((q ∨ ¬(r → ¬s))∨ ¬¬(q ↔ p))
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 57 / 569
![Page 88: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/88.jpg)
Contradictions
Definition
A formula ϕ is a contradiction if v 6|= ϕ holds for every truth valuation v
(i.e., when ϕ is false in every valuation).
Example: “It is Wednesday today, and it is not Wednesday today.”
p ∧ ¬p
ϕ is a tautology iff ¬ϕ is a contradiction
ϕ is a contradiction iff ¬ϕ is a tautology
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 58 / 569
![Page 89: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/89.jpg)
Satisfiable Formulas
Definition
A formula ϕ is satisfiable if there is at least one truth valuation v suchthat v |= ϕ.
A formula is satisfiable iff it is not a contradiction.
Every tautology is satisfiable but not every satisfiable formula isa tautology.
Example: A formula, which is satisfiable but not a tautology:
(p ∨ q)→ p
For example in valuation v1, where v1(p) = 1 and v1(q) = 0, theformula is true.
In valuation v2, where v2(p) = 0 and v2(q) = 1, it is false.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 59 / 569
![Page 90: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/90.jpg)
Satisfiable Formulas
ϕ is a tautology iff ¬ϕ is not satisfiable
ϕ is satisfiable iff ¬ϕ is not a tautology
Satisfiable formulas:
To show that a formula is satisfiable, it is sufficient to find a valuation,in which the formula is true.
To show that a formula is not satisfiable, it necessary to show thatthere is no valuation, in which the formula is true.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 60 / 569
![Page 91: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/91.jpg)
Tautologies and Contradictions
Tautologies:
To show that a formula is not a tautology, it is sufficient to finda valuation, in which the formula is false.
To show that a formula is a tautology, it necessary to show that thereis no valuation, in which the formula is false.
Contradictions:
To show that formula is not a contradiction, it is sufficient to finda valuation, in which the formula is true.
To show that a formula is a contradiction, it necessary to show thatthere is no valuation, in which the formula is true.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 61 / 569
![Page 92: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/92.jpg)
Truth Valuations
For decing whether a formula ϕ is or is not a tautology(resp. a contradiction, satisfiable), the table method can be used:
To go through all possible truth valuations systematically.
It is usually not necessary to construct the whole table. It is sufficient toconcentrate on “interesting” cases.
We can draw a graph representing the given formula and try to assignvalues 0 and 1 to its nodes in such a way that either we find anexample of a truth valuation we are looking for (e.g., some valuationwhere the formula is false), or we find out that such valuation doesnot exist.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 62 / 569
![Page 93: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/93.jpg)
Truth Valuations
For example, for deciding if a formula is a tautology:
We need to find out whether there exists some valuation where theformula is false.
In this valuation, the node corresponding to the whole formula shouldhave value 0.
So we try to assign value 0 to this node.
Then we try to assign values to other nodes in such a way that theassigned values are consistent with values assigned previously.
If we succeed in labelling whole graph consistently, we havea valuation, in which the formula is false.
In this case, it is clear that the formula is not a tautology.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 63 / 569
![Page 94: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/94.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ∧ψ
0 0 00 1 01 0 01 1 1
∧
1
? ?
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 95: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/95.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ∧ψ
0 0 00 1 01 0 01 1 1
∧
1
1 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 96: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/96.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ∧ψ
0 0 00 1 01 0 01 1 1
∧
?
0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 97: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/97.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ∧ψ
0 0 00 1 01 0 01 1 1
∧
0
0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 98: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/98.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ∧ψ
0 0 00 1 01 0 01 1 1
∧
0
1 ?
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 99: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/99.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ∧ψ
0 0 00 1 01 0 01 1 1
∧
0
1 0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 100: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/100.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ∨ψ
0 0 00 1 11 0 11 1 1
∨
?
1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 101: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/101.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ∨ψ
0 0 00 1 11 0 11 1 1
∨
1
1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 102: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/102.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ∨ψ
0 0 00 1 11 0 11 1 1
∨
0
? ?
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 103: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/103.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ∨ψ
0 0 00 1 11 0 11 1 1
∨
0
0 0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 104: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/104.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ∨ψ
0 0 00 1 11 0 11 1 1
∨
1
0 ?
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 105: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/105.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ∨ψ
0 0 00 1 11 0 11 1 1
∨
1
0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 106: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/106.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ→ ψ
0 0 10 1 11 0 01 1 1
→?
0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 107: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/107.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ→ ψ
0 0 10 1 11 0 01 1 1
→1
0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 108: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/108.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ→ ψ
0 0 10 1 11 0 01 1 1
→?
1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 109: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/109.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ→ ψ
0 0 10 1 11 0 01 1 1
→1
1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 110: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/110.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ→ ψ
0 0 10 1 11 0 01 1 1
→0
? ?
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 111: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/111.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ→ ψ
0 0 10 1 11 0 01 1 1
→0
1 0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 112: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/112.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ→ ψ
0 0 10 1 11 0 01 1 1
→1
1 ?
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 113: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/113.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ→ ψ
0 0 10 1 11 0 01 1 1
→1
1 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 114: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/114.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ→ ψ
0 0 10 1 11 0 01 1 1
→1
? 0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 115: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/115.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ→ ψ
0 0 10 1 11 0 01 1 1
→1
0 0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 116: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/116.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ↔ ψ
0 0 10 1 01 0 01 1 1
↔1
0 ?
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 117: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/117.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ↔ ψ
0 0 10 1 01 0 01 1 1
↔1
0 0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 118: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/118.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ↔ ψ
0 0 10 1 01 0 01 1 1
↔1
1 ?
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 119: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/119.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ↔ ψ
0 0 10 1 01 0 01 1 1
↔1
1 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 120: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/120.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ↔ ψ
0 0 10 1 01 0 01 1 1
↔1
? 0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 121: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/121.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ↔ ψ
0 0 10 1 01 0 01 1 1
↔1
0 0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 122: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/122.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ↔ ψ
0 0 10 1 01 0 01 1 1
↔0
1 ?
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 123: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/123.jpg)
Truth Valuations
If some values were already assigned to some nodes, this assignmentcan impose some constraints on values that can be assigned to othernodes.
Examples where some previously assigned values enforce someparticular value at some other node (resp. nodes):
ϕ ψ ϕ↔ ψ
0 0 10 1 01 0 01 1 1
↔0
1 0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 64 / 569
![Page 124: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/124.jpg)
Is a given formula a tautology?
Example: ϕ1 := (p → (q ∨ r))∨ (p → r)
pp q r r
∨
∨
→ →
↔
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 65 / 569
![Page 125: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/125.jpg)
Is a given formula a tautology?
Example: ϕ1 := (p → (q ∨ r))∨ (p → r)
p q r
∨
∨
→ →
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 65 / 569
![Page 126: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/126.jpg)
Is a given formula a tautology?
Example: ϕ1 := (p → (q ∨ r))∨ (p → r)
p q r
∨
∨
→ →
0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 65 / 569
![Page 127: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/127.jpg)
Is a given formula a tautology?
Example: ϕ1 := (p → (q ∨ r))∨ (p → r)
p q r
∨
∨
→ →
0
0 0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 65 / 569
![Page 128: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/128.jpg)
Is a given formula a tautology?
Example: ϕ1 := (p → (q ∨ r))∨ (p → r)
p q r
∨
∨
→ →
0
0 0
1
0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 65 / 569
![Page 129: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/129.jpg)
Is a given formula a tautology?
Example: ϕ1 := (p → (q ∨ r))∨ (p → r)
p q r
∨
∨
→ →
0
0 0
1
0
0 0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 65 / 569
![Page 130: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/130.jpg)
Is a given formula a tautology?
Example: ϕ1 := (p → (q ∨ r))∨ (p → r)
p q r
∨
∨
→ →
0
0 0
1
0
0 0
Formula ϕ1 is not a tautology — it is false in valuation v where v(p) = 1,v(q) = 0, v(r) = 0.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 65 / 569
![Page 131: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/131.jpg)
Is a given formula a tautology?
Example: ϕ2 := (p ↔ (¬q ∨ r))→ (¬p → q)
p q r
¬¬
∨
→
→
↔
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 66 / 569
![Page 132: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/132.jpg)
Is a given formula a tautology?
Example: ϕ2 := (p ↔ (¬q ∨ r))→ (¬p → q)
p q r
¬¬
∨
→
→
↔
0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 66 / 569
![Page 133: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/133.jpg)
Is a given formula a tautology?
Example: ϕ2 := (p ↔ (¬q ∨ r))→ (¬p → q)
p q r
¬¬
∨
→
→
↔
0
1
0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 66 / 569
![Page 134: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/134.jpg)
Is a given formula a tautology?
Example: ϕ2 := (p ↔ (¬q ∨ r))→ (¬p → q)
p q r
¬¬
∨
→
→
↔
0
1
0
1
0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 66 / 569
![Page 135: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/135.jpg)
Is a given formula a tautology?
Example: ϕ2 := (p ↔ (¬q ∨ r))→ (¬p → q)
p q r
¬¬
∨
→
→
↔
0
1
0
1
00
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 66 / 569
![Page 136: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/136.jpg)
Is a given formula a tautology?
Example: ϕ2 := (p ↔ (¬q ∨ r))→ (¬p → q)
p q r
¬¬
∨
→
→
↔
0
1
0
1
00
1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 66 / 569
![Page 137: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/137.jpg)
Is a given formula a tautology?
Example: ϕ2 := (p ↔ (¬q ∨ r))→ (¬p → q)
p q r
¬¬
∨
→
→
↔
0
1
0
1
00
1
1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 66 / 569
![Page 138: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/138.jpg)
Is a given formula a tautology?
Example: ϕ2 := (p ↔ (¬q ∨ r))→ (¬p → q)
p q r
¬¬
∨
→
→
↔
0
1
0
1
00
1
1,0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 66 / 569
![Page 139: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/139.jpg)
Is a given formula a tautology?
Example: ϕ2 := (p ↔ (¬q ∨ r))→ (¬p → q)
p q r
¬¬
∨
→
→
↔
0
1
0
1
00
1
1,0 – contradition
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 66 / 569
![Page 140: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/140.jpg)
Is a given formula a tautology?
Example: ϕ2 := (p ↔ (¬q ∨ r))→ (¬p → q)
p q r
¬¬
∨
→
→
↔
0
1
0
1
00
1
1,0 – contradition
Formula ϕ2 is a tautology.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 66 / 569
![Page 141: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/141.jpg)
Semantic Contradiction
Semantic contradition — the case when we find out that in a valuationwith the given property we are looking for (e.g., a valuation where a givenformula is false), some formula should be true and false at the same time.
There could not exist a valuation where some formula would be trueand false at the same time.
This way we can justify for example that a given formula isa tautology (and so always true), because by finding a semanticcontradiction we show there can not exist a valuation where thisformula is false.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 67 / 569
![Page 142: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/142.jpg)
Is a given formula a tautology?
The approach from the previous example can described by the followingsequnce of arguments:
1. Let us assume that (p ↔ (¬q ∨ r))→ (¬p → q) is false. Then:2. p ↔ (¬q ∨ r) is true - it follows from 1.3. ¬p → q is false - it follows from 1.4. ¬p is true - it follows from 3.5. q is false - it follows from 3.6. p is false - it follows from 4.7. ¬q is true - it follows from 5.8. ¬q ∨ r is true - it follows from 7.9. ¬q ∨ r is false - it follows from 2. a 6.
10. It is not possible that (p ↔ (¬q ∨ r))→ (¬p → q) is false because if itwould be so, ¬q ∨ r would have to be true and false at the same timein this case (see 8. a 9.).
Remark: Note that in this justification the graph representing the givenformula is not mentioned at all. We talk there only about truth and falsityof subformulas of this formula.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 68 / 569
![Page 143: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/143.jpg)
Is a given formula a tautology?
It is not always the case that values that could be assigned to somenodes are uniquely determined by values previously assigned to someother nodes.
When we are in a situation where it is not possible to assign a uniquevalue to a node, it is necessary to try several possibilities.
We choose some node and a value assigned to it. Then possibly somevalues that must be assigned to some other nodes are determined.
If we do not succeed in finding a valuation we are looking for, wemust backtrack, assign a diffent value to the given node, and try thisnew possibility.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 69 / 569
![Page 144: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/144.jpg)
Is a given formula a tautology?
Example: ϕ3 := ((p ∧ q)∨ (¬p ∧ ¬q))∨ (¬p ∧ q)
p q
¬
¬
∧
∧
∧
∨
∨
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 70 / 569
![Page 145: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/145.jpg)
Is a given formula a tautology?
Example: ϕ3 := ((p ∧ q)∨ (¬p ∧ ¬q))∨ (¬p ∧ q)
p q
¬
¬
∧
∧
∧
∨
∨
0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 70 / 569
![Page 146: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/146.jpg)
Is a given formula a tautology?
Example: ϕ3 := ((p ∧ q)∨ (¬p ∧ ¬q))∨ (¬p ∧ q)
p q
¬
¬
∧
∧
∧
∨
∨
0
0 0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 70 / 569
![Page 147: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/147.jpg)
Is a given formula a tautology?
Example: ϕ3 := ((p ∧ q)∨ (¬p ∧ ¬q))∨ (¬p ∧ q)
p q
¬
¬
∧
∧
∧
∨
∨
0
0 0
0 0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 70 / 569
![Page 148: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/148.jpg)
Is a given formula a tautology?
Example: ϕ3 := ((p ∧ q)∨ (¬p ∧ ¬q))∨ (¬p ∧ q)
p q
¬
¬
∧
∧
∧
∨
∨
0
0 0
0 0
0
We try to assign value zero to node p.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 70 / 569
![Page 149: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/149.jpg)
Is a given formula a tautology?
Example: ϕ3 := ((p ∧ q)∨ (¬p ∧ ¬q))∨ (¬p ∧ q)
p q
¬
¬
∧
∧
∧
∨
∨
0
0 0
0 0
0
1
We try to assign value zero to node p.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 70 / 569
![Page 150: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/150.jpg)
Is a given formula a tautology?
Example: ϕ3 := ((p ∧ q)∨ (¬p ∧ ¬q))∨ (¬p ∧ q)
p q
¬
¬
∧
∧
∧
∨
∨
0
0 0
0 0
0
1
0
We try to assign value zero to node p.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 70 / 569
![Page 151: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/151.jpg)
Is a given formula a tautology?
Example: ϕ3 := ((p ∧ q)∨ (¬p ∧ ¬q))∨ (¬p ∧ q)
p q
¬
¬
∧
∧
∧
∨
∨
0
0 0
0 0
0
1
0
1
We try to assign value zero to node p.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 70 / 569
![Page 152: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/152.jpg)
Is a given formula a tautology?
Example: ϕ3 := ((p ∧ q)∨ (¬p ∧ ¬q))∨ (¬p ∧ q)
p q
¬
¬
∧
∧
∧
∨
∨
0
0 0,1
0 0
0
1
0
1
We try to assign value zero to node p.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 70 / 569
![Page 153: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/153.jpg)
Is a given formula a tautology?
Example: ϕ3 := ((p ∧ q)∨ (¬p ∧ ¬q))∨ (¬p ∧ q)
p q
¬
¬
∧
∧
∧
∨
∨
0
0 0,1 – contradiction
0 0
0
1
0
1
We try to assign value zero to node p.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 70 / 569
![Page 154: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/154.jpg)
Is a given formula a tautology?
Example: ϕ3 := ((p ∧ q)∨ (¬p ∧ ¬q))∨ (¬p ∧ q)
p q
¬
¬
∧
∧
∧
∨
∨
0
0 0
0 0
1
So node p must have value 1.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 70 / 569
![Page 155: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/155.jpg)
Is a given formula a tautology?
Example: ϕ3 := ((p ∧ q)∨ (¬p ∧ ¬q))∨ (¬p ∧ q)
p q
¬
¬
∧
∧
∧
∨
∨
0
0 0
0 0
1
0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 70 / 569
![Page 156: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/156.jpg)
Is a given formula a tautology?
Example: ϕ3 := ((p ∧ q)∨ (¬p ∧ ¬q))∨ (¬p ∧ q)
p q
¬
¬
∧
∧
∧
∨
∨
0
0 0
0 0
1
0
0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 70 / 569
![Page 157: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/157.jpg)
Is a given formula a tautology?
Example: ϕ3 := ((p ∧ q)∨ (¬p ∧ ¬q))∨ (¬p ∧ q)
p q
¬
¬
∧
∧
∧
∨
∨
0
0 0
0 0
1
0
1
0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 70 / 569
![Page 158: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/158.jpg)
Is a given formula a tautology?
Example: ϕ3 := ((p ∧ q)∨ (¬p ∧ ¬q))∨ (¬p ∧ q)
p q
¬
¬
∧
∧
∧
∨
∨
0
0 0
0 0
1
0
1
0
Formula ϕ3 is not a tautology — it is false in valuation v where v(p) = 1,v(q) = 0.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 70 / 569
![Page 159: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/159.jpg)
Equivalence of Formulas
Definition
Formulas ϕ and ψ are logically equivalent if for each truth valuation v itholds that ϕ and ψ have the same truth value in valuation v , i.e.,
v |= ϕ iff v |= ψ.
The fact that formulas ϕ and ψ are logically equivalent is denoted
ϕ ⇔ ψ.
Formulas ϕ and ψ are logically equivalent iff ϕ↔ ψ is a tautology.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 71 / 569
![Page 160: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/160.jpg)
Equivalence of Formulas
Example: ¬(p → q) ⇔ p ∧ ¬q
p q p → q ¬(p → q) ¬q p ∧ ¬q
0 0 1 0 1 00 1 1 0 0 01 0 0 1 1 11 1 1 0 0 0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 72 / 569
![Page 161: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/161.jpg)
Equivalence of Formulas
To show that formulas ϕ and ψ are not equivalent, it is sufficient to finda valuation v such that:
v |= ϕ and v 6|= ψ, orv 6|= ϕ and v |= ψ.
Example: p ∨ (q ∧ r) is not equivalent to (p ∨ q)∧ r
Valuation v , where:
v(p) = 1
v(q) = 1
v(r) = 0
In this valuation, p ∨ (q ∧ r) holds but (p ∨ q)∧ r does not hold.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 73 / 569
![Page 162: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/162.jpg)
Some Important Equivalences
– Equivalences for negation:
¬¬p ⇔ p double negation
– Equivalences for conjunction:
(p ∧ q)∧ r ⇔ p ∧ (q ∧ r) associativity
p ∧ q ⇔ q ∧ p commutativity
p ∧ p ⇔ p idempotence
– Equivalences for disjunction:
(p ∨ q)∨ r ⇔ p ∨ (q ∨ r) associativity
p ∨ q ⇔ q ∨ p commutativity
p ∨ p ⇔ p idempotence
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 74 / 569
![Page 163: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/163.jpg)
Some Important Equivalences
– Distributivity of ∧ and ∨:
p ∧ (q ∨ r) ⇔ (p ∧ q)∨ (p ∧ r)
p ∨ (q ∧ r) ⇔ (p ∨ q)∧ (p ∨ r)
– De Morgan’s laws:
¬(p ∧ q) ⇔ ¬p ∨ ¬q
¬(p ∨ q) ⇔ ¬p ∧ ¬q
– Equivalences for implication:
p → q ⇔ ¬p ∨ q
¬(p → q) ⇔ p ∧ ¬q
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 75 / 569
![Page 164: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/164.jpg)
Some Important Equivalences
– Equivalences for ↔:
(p ↔ q)↔ r ⇔ p ↔ (q ↔ r) associativity
p ↔ q ⇔ q ↔ p commutativity
p ↔ q ⇔ (p → q)∧ (q → p)
p ↔ q ⇔ (p ∨ ¬q)∧ (¬p ∨ q)
p ↔ q ⇔ (p ∧ q)∨ (¬p ∧ ¬q)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 76 / 569
![Page 165: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/165.jpg)
Equivalence of Formulas
Let us assume that formulas ϕ and ψ are logically equivalent, i.e.,
ϕ ⇔ ψ .
If we replace atomic propositions in ϕ and ψ by arbitrary formulas, weobtain again a pair of equivalent formulas.
Example: ¬(p ∨ q) ⇔ ¬p ∧ ¬q
Therefore, for arbitrary formulas χ1 and χ2 is
¬(χ1 ∨ χ2) ⇔ ¬χ1 ∧ ¬χ2
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 77 / 569
![Page 166: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/166.jpg)
Equivalence of Formulas
¬(p ∨ q) ⇔ ¬p ∧ ¬q
Replacement of atomic propositions:
p replaced by q ∨ ¬(r → ¬s)
q replaced by ¬(q ↔ p)
We obtain
¬((q ∨ ¬(r → ¬s))∨ ¬(q ↔ p)) ⇔ ¬(q ∨ ¬(r → ¬s))∧ ¬¬(q ↔ p)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 78 / 569
![Page 167: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/167.jpg)
Equivalence of Formulas
Let us assume that ϕ is a formula and ψ its subformula.
If we replace some occurrence of subformula ψ in formula ϕ witha formula ψ ′ such that ψ ⇔ ψ ′, we obtain a formula ϕ ′ such that
ϕ ⇔ ϕ ′ .
Example: In formula
¬((p → q)∨ (¬(p → q)→ r))
we replace the second occurrence of subformula p → q with an equivalentformula ¬p ∨ q.
We obtain¬((p → q)∨ (¬(¬p ∨ q)→ r))
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 79 / 569
![Page 168: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/168.jpg)
Equivalent Transformations
For arbitrary formulas ϕ, ψ, and χ, it holds:
ϕ ⇔ ϕ.
If ϕ ⇔ ψ, then ψ⇔ ϕ.
If ϕ ⇔ ψ and ψ⇔ χ, then ϕ ⇔ χ.
When we try to prove equivalence of formulas, we can proceed by smallersteps:
For example, if it holds that ϕ1 ⇔ ϕ2, ϕ2 ⇔ ϕ3, ϕ3 ⇔ ϕ4, andϕ4 ⇔ ϕ5, we can conclude that
ϕ1 ⇔ ϕ5 .
This can be written as
ϕ1 ⇔ ϕ2 ⇔ ϕ3 ⇔ ϕ4 ⇔ ϕ5
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 80 / 569
![Page 169: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/169.jpg)
Equivalent Transformations
Example: The proof that
(p ∧ q)→ r ⇔ p → (q → r)
(p ∧ q)→ r ⇔ ¬(p ∧ q)∨ r
⇔ (¬p ∨ ¬q)∨ r
⇔ ¬p ∨ (¬q ∨ r)
⇔ ¬p ∨ (q → r)
⇔ p → (q → r)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 81 / 569
![Page 170: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/170.jpg)
Equivalent Transformations
Every formula can be transformed to an equivalent formula that uses only“¬”, “∧”, and “∨” as logical connectives.
The connective “↔” can be replaced by other connectives using thefollowing equivalences:
p ↔ q ⇔ (p → q)∧ (q → p)
p ↔ q ⇔ (p ∨ ¬q)∧ (¬p ∨ q)
p ↔ q ⇔ (p ∧ q)∨ (¬p ∧ ¬q)
The connective “→” can be replaced by “¬” and “∨” using thefollowing equivalence:
p → q ⇔ ¬p ∨ q
Example:
(¬q → r)∧ ¬(p ↔ r) ⇔ (¬¬q ∨ r)∧ ¬(p ↔ r)
⇔ (¬¬q ∨ r)∧ ¬((p ∧ r)∨ (¬p ∧ ¬r))
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 82 / 569
![Page 171: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/171.jpg)
Equivalent Transformations
Every formula can be transformed to an equivalent formula, whichcontains only logical connectives “¬”, “∧” and “∨”, and where negationsare applied only to atomic propositions.
We can assume that formula contains only “¬”, “∧” and “∨”.
Negations can be “pushed” to atomic propositions using the followingequivalences:
¬¬p ⇔ p
¬(p ∧ q) ⇔ ¬p ∨ ¬q
¬(p ∨ q) ⇔ ¬p ∧ ¬q
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 83 / 569
![Page 172: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/172.jpg)
Equivalent Transformations
Example:
(¬¬q ∨ r)∧ ¬((p ∧ r)∨ (¬p ∧ ¬r))
⇔ (q ∨ r)∧ ¬((p ∧ r)∨ (¬p ∧ ¬r))
⇔ (q ∨ r)∧ (¬(p ∧ r)∧ ¬(¬p ∧ ¬r))
⇔ (q ∨ r)∧ ((¬p ∨ ¬r)∧ ¬(¬p ∧ ¬r))
⇔ (q ∨ r)∧ ((¬p ∨ ¬r)∧ (¬¬p ∨ ¬¬r))
⇔ (q ∨ r)∧ ((¬p ∨ ¬r)∧ (p ∨ ¬¬r))
⇔ (q ∨ r)∧ ((¬p ∨ ¬r)∧ (p ∨ r))
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 84 / 569
![Page 173: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/173.jpg)
Logical Constants
For some purposes it can be useful to introduce the following specialformulas:
⊤ — a formula, which is always true
⊥ — a formula, which is always false
For every truth valuation v it holds:
v |= ⊤ (⊤ has always truth value 1)
v 6|= ⊥ (⊥ has always truth value 0)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 85 / 569
![Page 174: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/174.jpg)
Logical Constants
Symbols ⊤ and ⊥ can be viewed as abbreviations:
⊤ stands for an arbitrary tautology (e.g., p → p)
⊥ stands for an arbitrary contradiction (e.g., p ∧ ¬p)
Alternatively, we could extend the definition of syntax and semantics ofpropositional logic.
Symbols ⊤ and ⊥ can be viewed as logical connectives with arity 0.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 86 / 569
![Page 175: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/175.jpg)
Logical Constants
Examples of equivalences that hold for ⊤ and ⊥ (and for arbitrary p):
⊤ ⇔ p ∨ ¬p ⊥ ⇔ p ∧ ¬p
¬⊤ ⇔ ⊥ ¬⊥ ⇔ ⊤p ∧⊤ ⇔ p p ∨⊥ ⇔ p
p ∨⊤ ⇔ ⊤ p ∧⊥ ⇔ ⊥
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 87 / 569
![Page 176: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/176.jpg)
Equivalence of Formulas
It is not necessary for equivalent formulas to contain the same atomicpropositions.
Example: (q → ¬¬q)∧ ¬p ⇔ p → (r ∧ ¬r)
(q → ¬¬q)∧ ¬p ⇔ (q → q)∧ ¬p
⇔ ⊤∧ ¬p
⇔ ¬p
⇔ ¬p ∨⊥⇔ p → ⊥⇔ p → (r ∧ ¬r)
For example, also all tautologies are logically equivalent.Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 88 / 569
![Page 177: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/177.jpg)
Conjunctions and Disjunctions of Several Formulas
Due to associativity of conjunction, it holds for example:
p ∧ ((q ∧ r)∧ (s ∧ t)) ⇔ (p ∧ q)∧ ((r ∧ s)∧ t)
Both these formulas are also equivalent to formulas
p ∧ (q ∧ (r ∧ (s ∧ t)))
(((p ∧ q)∧ r)∧ s)∧ t
All these formulas are true iff all propositions p, q, r , s, and t are true.
Convention: Due to associativity of conjunction, the parentheses can beomitted and we can write
p ∧ q ∧ r ∧ s ∧ t
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 89 / 569
![Page 178: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/178.jpg)
Conjunctions and Disjunctions of Several Formulas
Because conjunction is not only associative but also commutative, theorder of members of such more complicated conjunction is not important.For example:
r ∧ t ∧ q ∧ s ∧ p ⇔ p ∧ q ∧ r ∧ s ∧ t
Due to idempotence, also the number of occurrences of each member isnot important.For example:
p ∧ q ∧ p ⇔ q ∧ p ∧ q ∧ q
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 90 / 569
![Page 179: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/179.jpg)
Conjunctions and Disjunctions of Several Formulas
The same holds also for disjunction, e.g.:
(p ∨ q)∨ (r ∨ q) ⇔ q ∨ (p ∨ (r ∨ (r ∨ r)))
Convention: Instead of (p ∨ q)∨ (r ∨ (s ∨ t)) we can write
p ∨ q ∨ r ∨ s ∨ t
All this holds not only for atomic propositions but also for arbitraryformulas, e.g.:
Instead of (ϕ1 ∧ϕ2)∧ (ϕ3 ∧ (ϕ4 ∧ϕ5)) we can write
ϕ1 ∧ϕ2 ∧ϕ3 ∧ϕ4 ∧ϕ5
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 91 / 569
![Page 180: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/180.jpg)
Conjunctions and Disjunctions of Several Formulas
Conjunction of n formulas ϕ1, ϕ2, . . . , ϕn, where n ≥ 0, is the formula
ϕ1 ∧ϕ2 ∧ · · ·∧ϕn
In particular:
For n = 0, the conjunction is the formula ⊤.
For n = 1, the conjunction is the formula ϕ1.
Disjunction of n formulas ϕ1, ϕ2, . . . , ϕn, where n ≥ 0, is the formula
ϕ1 ∨ϕ2 ∨ · · ·∨ϕn
In particular:
For n = 0, the disjunction is the formula ⊥.
For n = 1, the disjunction is the formula ϕ1.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 92 / 569
![Page 181: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/181.jpg)
Conjunctions and Disjunctions of Several Formulas
Conjunction ϕ1 ∧ϕ2 ∧ · · ·∧ϕn:
The whole formula is true iff all formulas ϕ1, ϕ2, . . . , ϕn are true.
If some formula ϕi is equivalent to ⊥, then the whole formula isequivalent to ⊥.
If some formula ϕi is equivalent to a negation of some formula ϕj
(i.e., ϕi ⇔ ¬ϕj), then the whole formula is equivalent to ⊥.
If some formula ϕi is equivalent to ⊤, then it is possible to omit theformula ϕi from the whole formula.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 93 / 569
![Page 182: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/182.jpg)
Conjunctions and Disjunctions of Several Formulas
Disjunction ϕ1 ∨ϕ2 ∨ · · ·∨ϕn:
The whole formula is true iff at least one of formulas ϕ1, ϕ2, . . . , ϕn
is true.
If some formula ϕi is equivalent to ⊤, then the whole formula isequivalent to ⊤.
If some formula ϕi is equivalent to a negation of some formula ϕj
(i.e., ϕi ⇔ ¬ϕj), then the whole formula is equivalent to ⊤.
If some formula ϕi is equilvalent to ⊥, then it is possible to omit theformula ϕi from the whole formula.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 94 / 569
![Page 183: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/183.jpg)
Normal Forms of Fomulas
Literal — an atomic proposition or its negation, e.g.,
p ¬q ¬r
An elementary conjunction — a conjunction of one or more literals,e.g.,
(p ∧ ¬q) (r) (q ∧ ¬r ∧ p)
An elementary disjunction (clause) — a disjunction of one or moreliterals, e.g.,
(p ∨ ¬q) (r) (q ∨ ¬r ∨ p)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 95 / 569
![Page 184: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/184.jpg)
Normal Forms of Fomulas
Example:
Elementary conjunction
(p ∧ ¬q ∧ r ∧ ¬s ∧ ¬t)
is true in exactly those truth valuations v where
v(p) = 1 v(q) = 0 v(r) = 1 v(s) = 0 v(t) = 0
Elementary disjunction
(p ∨ ¬q ∨ r ∨ ¬s ∨ ¬t)
is false in exactly those truth valuations v where
v(p) = 0 v(q) = 1 v(r) = 0 v(s) = 1 v(t) = 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 96 / 569
![Page 185: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/185.jpg)
Normal Forms of Fomulas
Disjunctive normal form (DNF) — a disjunction of zero or moreelementary conjunctions, e.g.,
(p ∧ ¬q) ∨ (¬r) ∨ (¬r ∧ ¬p ∧ ¬q)
Conjunctive normal form (CNF) — a conjunction of zero or moreelementary disjunctions (clauses), e.g.,
(p ∨ ¬q) ∧ (¬r) ∧ (¬r ∨ ¬p ∨ ¬q)
Remark: So formula ⊥ is a special case of a formula in DNF, andformula ⊤ is a special case of a formula in CNF.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 97 / 569
![Page 186: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/186.jpg)
Normal Forms of Fomulas
A formula in CNF is a tautology iff for each elemetary disjunction there issome atomic proposition p such that literals p and ¬p occur in theelemetary disjunction.
Example: (p ∨ q ∨ ¬r ∨ ¬q) ∧ (¬p ∨ ¬s ∨ s) ∧ (t ∨ ¬r ∨ s ∨ ¬t ∨ q)
A formula in DNF is a contradiction iff for each elemetary conjunctionthere is some atomic proposition p such that literals p and ¬p occur in theelemetary conjunction.
Example: (p ∧ q ∧ ¬r ∧ ¬q) ∨ (¬p ∧ ¬s ∧ s) ∨ (t ∧ ¬r ∧ s ∧ ¬t ∨ q)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 98 / 569
![Page 187: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/187.jpg)
Normal Forms of Fomulas
Transformation of a formula to DNF and CNF:
We can assume that the formula contains only atomic propositions,connectives “¬” applied to atomic propositions, and connectives “∧”and “∨”.
The required form of the formula can be obtained by use of thefollowing equivalences:
p ∧ (q ∨ r) ⇔ (p ∧ q)∨ (p ∧ r) — for transformation to DNF
p ∨ (q ∧ r) ⇔ (p ∨ q)∧ (p ∨ r) — for transformation to CNF
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 99 / 569
![Page 188: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/188.jpg)
Normal Forms of Fomulas
Example: Transformation of formula q ∧ ((¬p ∨ ¬r)∧ (p ∨ r)) to DNF:
q ∧ ((¬p ∨ ¬r)∧ (p ∨ r))
⇔ (q ∧ (¬p ∨ ¬r))∧ (p ∨ r)
⇔ ((q ∧ ¬p)∨ (q ∧ ¬r))∧ (p ∨ r)
⇔ (((q ∧ ¬p)∨ (q ∧ ¬r))∧ p) ∨ (((q ∧ ¬p)∨ (q ∧ ¬r))∧ r)
⇔ (((q ∧ ¬p)∧ p)∨ ((q ∧ ¬r)∧ p)) ∨ (((q ∧ ¬p)∨ (q ∧ ¬r))∧ r)
⇔ (q ∧ ¬p ∧ p) ∨ (q ∧ ¬r ∧ p) ∨ (((q ∧ ¬p)∨ (q ∧ ¬r))∧ r)
⇔ (q ∧⊥) ∨ (q ∧ ¬r ∧ p) ∨ (((q ∧ ¬p)∨ (q ∧ ¬r))∧ r)
⇔ ⊥ ∨ (q ∧ ¬r ∧ p) ∨ (((q ∧ ¬p)∨ (q ∧ ¬r))∧ r)
⇔ (q ∧ ¬r ∧ p) ∨ (((q ∧ ¬p)∨ (q ∧ ¬r))∧ r)
⇔ (p ∧ q ∧ ¬r) ∨ (((q ∧ ¬p)∨ (q ∧ ¬r))∧ r)
⇔ . . .
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 100 / 569
![Page 189: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/189.jpg)
Normal Forms of Fomulas
. . .
⇔ (p ∧ q ∧ ¬r) ∨ (((q ∧ ¬p)∨ (q ∧ ¬r))∧ r)
⇔ (p ∧ q ∧ ¬r) ∨ (((q ∧ ¬p)∧ r) ∨ ((q ∧ ¬r)∧ r))
⇔ (p ∧ q ∧ ¬r) ∨ (q ∧ ¬p ∧ r) ∨ (q ∧ ¬r ∧ r)
⇔ (p ∧ q ∧ ¬r) ∨ (¬p ∧ q ∧ r) ∨ (q ∧ ¬r ∧ r)
⇔ (p ∧ q ∧ ¬r) ∨ (¬p ∧ q ∧ r) ∨ (q ∧⊥)
⇔ (p ∧ q ∧ ¬r) ∨ (¬p ∧ q ∧ r) ∨ ⊥⇔ (p ∧ q ∧ ¬r) ∨ (¬p ∧ q ∧ r)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 101 / 569
![Page 190: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/190.jpg)
Normal Forms of Fomulas
It is easy to construct a formula in CNF or DNF for a given truth table:
p q r ϕ
0 0 0 00 0 1 10 1 0 10 1 1 01 0 0 01 0 1 11 1 0 01 1 1 0
DNF:(¬p ∧ ¬q ∧ r)∨ (¬p ∧ q ∧ ¬r)∨ (p ∧ ¬q ∧ r)
CNF:(p∨q∨ r)∧(p∨¬q∨¬r)∧(¬p∨q∨ r)∧(¬p∨¬q∨ r)∧(¬p∨¬q∨¬r)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 102 / 569
![Page 191: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/191.jpg)
Normal Forms of Fomulas
When we consider a fixed finite set of atomic propositions At :
Complete disjunctive normal form (CDNF) — a formula in DNF,where every elementary conjunction contains every atomic propositionfrom At exactly once.
Example: (p ∧ ¬q ∧ ¬r)∨ (p ∧ q ∧ ¬r)∨ (¬p ∧ q ∧ ¬r)
Complete conjunctive normal form (CCNF) — a formula in CNF,where every clause contains every atomic proposition from At exactlyonce.
Example: (p ∨ ¬q ∨ ¬r)∧ (p ∨ q ∨ ¬r)∧ (¬p ∨ q ∨ ¬r)
Remark: In the examples is At = p, q, r .
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 103 / 569
![Page 192: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/192.jpg)
Minimal Sets of Logical Connectives
We can see from the previous discussion that connectives “¬”, “∧”, and“∨” suffice for contructing a formula for every truth table.
In fact, some smaller sets of logical connectives are sufficient for thispurpose:
“¬”, “∧”:ϕ∨ψ can be expressed as ¬(¬ϕ∧ ¬ψ)
“¬”, “∨”:ϕ∧ψ can be expressed as ¬(¬ϕ∨ ¬ψ)
“¬”, “→”:ϕ∨ψ can be expressed as ¬ϕ→ ψ
ϕ∧ψ can be expressed as ¬(ϕ→ ¬ψ)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 104 / 569
![Page 193: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/193.jpg)
Minimal Sets of Logical Connectives
“→”, “⊥”:¬ϕ can be expressed as ϕ→ ⊥ϕ∨ψ can be expressed as (ϕ→ ⊥)→ ψ
ϕ∧ψ can be expressed as (ϕ→ (ψ→ ⊥))→ ⊥
“ | ” — NAND — Sheffer stroke (also denoted by “↑”):
ϕ ψ ϕ |ψ
0 0 10 1 11 0 11 1 0
¬ϕ can be expressed as ϕ |ϕ
ϕ∨ψ can be expressed as (ϕ |ϕ) | (ψ |ψ)
ϕ∧ψ can be expressed as (ϕ |ψ) | (ϕ |ψ)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 105 / 569
![Page 194: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/194.jpg)
Minimal Sets of Logical Connectives
“↓” — NOR — Peirce’s arrow:
ϕ ψ ϕ ↓ ψ0 0 10 1 01 0 01 1 0
¬ϕ can be expressed as ϕ ↓ ϕϕ∨ψ can be expressed as (ϕ ↓ ψ) ↓ (ϕ ↓ ψ)ϕ∧ψ can be expressed as (ϕ ↓ ϕ) ↓ (ψ ↓ ψ)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 106 / 569
![Page 195: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/195.jpg)
Logical Entailment
Definition
Formula ψ logically follows from assumptions ϕ1, ϕ2, . . . , ϕn ifformula ψ is true in every truth valuation v where all these assumptionsare true.
The fact the ψ logically follows from ϕ1, ϕ2, . . . , ϕn is denoted
ϕ1, ϕ2, . . . , ϕn |= ψ.
ϕ1, ϕ2, . . . , ϕn — assumptions
ψ — conclusion
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 107 / 569
![Page 196: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/196.jpg)
Logical Entailment
Example: Conclusion r → p logically follows from assumptionp ∨ (q ∧ ¬r), i.e.,
p ∨ (q ∧ ¬r) |= r → p
p q r p ∨ (q ∧ ¬r) r → p
0 0 0 0 10 0 1 0 0
∗ 0 1 0 1 10 1 1 0 0
∗ 1 0 0 1 1∗ 1 0 1 1 1∗ 1 1 0 1 1∗ 1 1 1 1 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 108 / 569
![Page 197: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/197.jpg)
Logical Entailment
Example:- If the train arrives late and there are no taxis at the station, then
John is late for his meeting.
- John is not late for his meeting.
- The train did arrive late.
- There were taxis at the station.
(p ∧ ¬q)→ r , ¬r , p |= q
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 109 / 569
![Page 198: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/198.jpg)
Logical Entailment
(p ∧ ¬q)→ r , ¬r , p |= q
p q r (p ∧ ¬q)→ r ¬r p q
0 0 0 1 1 0 00 0 1 1 0 0 00 1 0 1 1 0 10 1 1 1 0 0 11 0 0 0 1 1 01 0 1 1 0 1 0
∗ 1 1 0 1 1 1 11 1 1 1 0 1 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 110 / 569
![Page 199: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/199.jpg)
Logical Entailment
To find out whether ψ logically follows from assumptions ϕ1, ϕ2, . . . , ϕn,the table method can be used:
If, in all lines corresponding to valuations where all assumptionsϕ1, ϕ2, . . . , ϕn have value 1, ψ also have value 1 then theconclusion ψ logically follows from assumptions ϕ1, ϕ2, . . . , ϕn.
If there exists at least one valuation in the table where ϕ1, ϕ2, . . . , ϕn
have value 1 and conclusion ψ has value 0 then this conclusion doesnot logically follow from the assumptions.
Remark: Those valuations where at least one of assumptionsϕ1, ϕ2, . . . , ϕn has value 0 are not important with respect to logicalentailment — the conclusion ψ can be true or false in these valuations.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 111 / 569
![Page 200: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/200.jpg)
Logical Entailment
To find out whether ψ logically follows from assumptions ϕ1, ϕ2, . . . , ϕn,also semantic contradiction can be used:
A directed acyclic graph common for all formular ϕ1, ϕ2, . . . , ϕn
and ψ is created.
Values 1 are assigned to nodes corresponding to assumptionsϕ1, ϕ2, . . . , ϕn and value 0 to the node corresponding toconclusion ψ.
If it is possible to assign values to all remaining nodes of the graph,we have an example of a valuation where the assumptions are truebut the conclusion is false — i.e., the conclusion does not logicallyfollow from the assumptions.
If we show that there is no such valuation (because every attempt toassign remaining values to nodes leads to a contradiction), theconclusion logically follows from the assumptions.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 112 / 569
![Page 201: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/201.jpg)
Logical Entailment
If a formula ψ is a tautology then it logically follows from every set ofassumptions, i.e., for every set of assumptions ϕ1, ϕ2, . . . , ϕn it holds that
ϕ1, ϕ2, . . . , ϕn |= ψ
In particular, if ψ is a tautology then it follows from the empty set ofassumptions:
|= ψ
Tautologies are the only formulas that logically follow from the empty setof assumptions.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 113 / 569
![Page 202: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/202.jpg)
Logical Entailment
The question whether a given conclusion logically follows from givenassumptions can be reformulated as a question whether a certain formulais a tautology:
ϕ1, ϕ2, ϕ3, . . . , ϕn |= ψ
iff
ϕ1 → (ϕ2 → (ϕ3 → (· · ·→ (ϕn → ψ) · · · ))) is a tautology
Example:
ϕ1, ϕ2, ϕ3, ϕ4 |= ψ
iff
ϕ1 → (ϕ2 → (ϕ3 → (ϕ4 → ψ))) is a tautology
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 114 / 569
![Page 203: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/203.jpg)
Logical Entailment
The following two formulas are logically equivalent:
ϕ1 → (ϕ2 → (ϕ3 → (· · ·→ (ϕn → ψ) · · · )))(ϕ1 ∧ϕ2 ∧ · · ·∧ϕn)→ ψ
For example
ϕ1 → (ϕ2 → (ϕ3 → (ϕ4 → ψ))) ⇔ (ϕ1 ∧ϕ2 ∧ϕ3 ∧ϕ4)→ ψ
(This can be easily checked by equivalent transformations using thefollowing equivalence: p → (q → r) ⇔ (p ∧ q)→ r)
So it also holds that
ϕ1, ϕ2, . . . , ϕn |= ψ
iff
(ϕ1 ∧ϕ2 ∧ · · ·∧ϕn)→ ψ is a tautology
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 115 / 569
![Page 204: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/204.jpg)
Logical Entailment
One more possibility how to characterize when a conclusion follows fromgiven assumptions, is provided by the following equivalence:
ϕ1, ϕ2, . . . ϕn |= ψ
iff
ϕ1 ∧ϕ2 ∧ · · ·∧ϕn ⇔ ϕ1 ∧ϕ2 ∧ · · ·∧ϕn ∧ψ
When some conclusion ψ, which logically follows from given assumptionsϕ1, ϕ2, . . . ϕn, to these assumptions as new additional assumption, it doesnot change the set of truth valuations where the assutions are true.(The sets of assumptions ϕ1, ϕ2, . . . , ϕn and ϕ1, ϕ2, . . . , ϕn, ψ are trueat the same truth valuations.)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 116 / 569
![Page 205: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/205.jpg)
Logical Entailment
So when an assumption ψ that logically follows from given assumption isadded to these assumptions, the set of all conclusions that follow theassumptions is not affected:
ϕ1, ϕ2, . . . ϕn |= ψ
iff
it holds for each formula χ that:
ϕ1, ϕ2, . . . ϕn |= χ iff ϕ1, ϕ2, . . . ϕn, ψ |= χ
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 117 / 569
![Page 206: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/206.jpg)
Logical Entailment
If some concluctions logically follow from given assumptions and someother concluction follows from these concluctions, then this concluctionlogically follows also from the original assumptions.
Let us assume that
ϕ1, ϕ2, . . . , ϕn |= χ1 ϕ1, ϕ2, . . . , ϕn |= χ2
and also χ1, χ2 |= ψ.
Then ϕ1, ϕ2, . . . , ϕn |= ψ.
Example:
If ϕ1, ϕ2, ϕ3 |= (q ∨ ¬p) and ϕ1, ϕ2, ϕ3 |= ¬s then
ϕ1, ϕ2, ϕ3 |= (q ∨ ¬p)∧ ¬s
because q ∨ ¬p, ¬s |= (q ∨ ¬p)∧ ¬s.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 118 / 569
![Page 207: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/207.jpg)
Logical Entailment
Example:
If ϕ1, ϕ2, ϕ3 |= p → q and ϕ1, ϕ2, ϕ3 |= p then
ϕ1, ϕ2, ϕ3 |= q
because p → q, p |= q.
Example:
If ϕ1, ϕ2, ϕ3, ϕ4 |= ¬p → ¬q then
ϕ1, ϕ2, ϕ3, ϕ4 |= q → p
because ¬p → ¬q |= q → p.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 119 / 569
![Page 208: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/208.jpg)
Logical Entailment
When we try to prove that ψ logically follows from assumptionsϕ1, ϕ2, . . . , ϕn, we can proceed via smaller steps.
We start we the assumptions, for example:
ϕ1, ϕ2, ϕ3
Then we gradually add other formulas in such a way that every newlyadded formula logically follows from the previous formulas. For example:
ϕ1, ϕ2, ϕ3, χ1, χ2, χ3, χ4, χ5, χ6, χ7, χ8, ψ
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 120 / 569
![Page 209: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/209.jpg)
Logical Entailment
Assumptions ϕ1, ϕ2, . . . , ϕn are inconsistent (contradictory) if there isno truth valuation v , in which all these assumptions would be true.
Assumptions ϕ1, ϕ2, . . . , ϕn are inconsistent iff
ϕ1 ∧ϕ2 ∧ · · ·∧ϕn
is a contradiction.
Example: Assumptions p → q, r → p, r , ¬q are inconsistent.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 121 / 569
![Page 210: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/210.jpg)
Logical Entailment
From inconsistent assumptions, any conclusion logically follows.
If assumptions ϕ1, ϕ2, . . . , ϕn are inconsistent then it holds for everyformula ψ that
ϕ1, ϕ2, . . . , ϕn |= ψ.
So for example also the following conclusions follow from inconsistentassumptions:
⊥formulas χ and ¬χ, where χ is an arbitrary formula
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 122 / 569
![Page 211: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/211.jpg)
Logical Entailment
Formula ⊥ cannot be true and it is also not possible that formulas χ and¬χ are both true at some truth valuation.
So when we find out that
⊥ or,
χ and also ¬χ,
logically follow from assumptions ϕ1, ϕ2, . . . , ϕn, this means that theassumptions ϕ1, ϕ2, . . . , ϕn are inconsistent and anything follows fromthem.
Remark: Note that the following formulas are tautologies:
⊥→ ψ
χ→ (¬χ→ ψ)
So ⊥ |= ψ and χ,¬χ |= ψ.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 123 / 569
![Page 212: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/212.jpg)
Logical Entailment
The principle of proof by contradiction
ϕ1, ϕ2, . . . , ϕn |= ψ
iff
assumptions ϕ1, ϕ2, . . . , ϕn,¬ψ are inconsistent
So in a proof by contradiction, justification that a given conclusion followsfrom given assumptions is transformed to justification that it is notpossible that the assumptions and the negation of the conclusion would betrue at the same time.
The question whether ϕ1, ϕ2, . . . , ϕn |= ψ can be transformed to thequestion whether
ϕ1 ∧ϕ2 ∧ · · ·∧ϕn ∧ ¬ψ
is a contradiction.Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 124 / 569
![Page 213: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/213.jpg)
Resolution Method
The resolution method is one of algorithms for finding out whethera given conclusion follows from given assumptions.
It solves the following problem:
Input: Formulas ϕ1, ϕ2, . . . , ϕn, ψ.
Question: Is it true that ϕ1, ϕ2, . . . , ϕn |= ψ ?
Remark: The method can be used for finding out whether a given formulais a tautology, a contradiction, or satisfiable.
Different variants of the resolution method are used for example in somesystems for automatic theorem proving and also in implementations oflogic programming languages such as Prolog.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 125 / 569
![Page 214: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/214.jpg)
Resolution Method
It works with formulas in CNF.
It constructs a proof that the given conclusion follows from theassumptions.
It is a proof by contradiction — the algorithm generates successivelyformulas following from the assumptions
ϕ1, ϕ2, . . . , ϕn,¬ψ
A computation can finish in two different ways:
A contradiction is found, i.e., formula ⊥ is derived — then theconclusion ψ logically follows from assumptions ϕ1, ϕ2, . . . , ϕn.
The algorithm does not succeed in deriving formula ⊥ and no othernew formulas can be added — then the conclusion ψ does not followfrom the assumptions.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 126 / 569
![Page 215: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/215.jpg)
Resolution Method
The resolution method works with formulas that have the form ofelementary disjunctions, e.g.,
(¬p ∨ q ∨ ¬s ∨ ¬t)
These formulas are called clauses.
A special case of clause is the empty clause ⊥ that representsa found contradiction.
The algorithm starts the computation by transforming formulas
ϕ1, ϕ2, . . . , ϕn,¬ψ
to CNF. Then it takes all clauses from the transformed formulas asthe initial set of assumptions
χ1, χ2, . . . , χm.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 127 / 569
![Page 216: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/216.jpg)
Resolution Method
For generating other clauses, which are added to already constructedclauses, the algorithm uses so called resolution rule (or resolutionprinciple):
For each formulas ϕ, ψ and χ it holds that
ϕ∨ψ, ¬ϕ∨ χ |= ψ∨ χ
In the resolution method, this principle is used only for clauses.In the resolution method, ϕ∨ψ, ¬ϕ∨ χ and ψ∨ χ are always clauses,and ϕ is always an atomic proposition.
Example: From clauses
p ∨ ¬q ∨ r ∨ s a ¬r ∨ t ∨ ¬u
we can derive the following clause by the resolution rule:p ∨ ¬q ∨ s ∨ t ∨ ¬u.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 128 / 569
![Page 217: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/217.jpg)
Resolution Method
Remarks:
An order of literals in a clause is not important.
Multiple occurrences of the same literals in one clause can beeliminated.
If a currently generated clause is the same as some previouslygenerated clause (and differs only in the order of literals), it makes nosense to add it.
Clauses containing both literals p and ¬p are equivalent to ⊤ and canbe eliminated.
Clauses can be used for the application of the resolution rulerepeatedly (with other clauses).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 129 / 569
![Page 218: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/218.jpg)
Resolution Method
Some special cases of the use of the resolution rule:
One of clauses contains just one literal and the other more than oneliteral:
From clauses
¬q p ∨ q ∨ ¬t
we can derive clause p ∨ ¬t.
Both clauses contain just one literal:
From clauses
p ¬p
we can derive the empty clause ⊥, i.e., the contradiction.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 130 / 569
![Page 219: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/219.jpg)
Resolution Method
We want to check validity of the following deduction:
- It is not true that Jane is at school and Peter is not at home.
- Jane is not at school or it’s a working day or it’s raining.
- If it’s a working day then Peter is not at home.
- If Jane is at school then it’s raining.
At first, we formalize the individual propositions by formulae ofpropositional logic:
¬(j ∧ ¬p)
¬j ∨ d ∨ r
d → ¬p
j → r
j – Jane is at schoolp – Peter is at homed – it’s a working dayr – it’s raining
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 131 / 569
![Page 220: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/220.jpg)
Resolution Method
¬(j ∧ ¬p)
¬j ∨ d ∨ r
d → ¬p
j → r
We transform the individual assumptions into CNF:
¬(j ∧ ¬p) ⇔ ¬j ∨ p
¬j ∨ d ∨ r
d → ¬p ⇔ ¬d ∨ ¬p
We negate the conclusion and transform it into CNF:
¬(j → r) ⇔ j ∧ ¬r
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 132 / 569
![Page 221: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/221.jpg)
Resolution Method
Let us write down the individual clauses:
1. ¬j ∨ p – assumption 12. ¬j ∨ d ∨ r – assumption 23. ¬d ∨ ¬p – assumption 34. j – clause 1 of the negated conclusion5. ¬r – clause 2 of the negated conclusion
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 133 / 569
![Page 222: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/222.jpg)
Resolution Method
Let us write down the individual clauses:
1. ¬j ∨ p – assumption 12. ¬j ∨ d ∨ r – assumption 23. ¬d ∨ ¬p – assumption 34. j – clause 1 of the negated conclusion5. ¬r – clause 2 of the negated conclusion
6. p – resolution: 1,4
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 133 / 569
![Page 223: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/223.jpg)
Resolution Method
Let us write down the individual clauses:
1. ¬j ∨ p – assumption 12. ¬j ∨ d ∨ r – assumption 23. ¬d ∨ ¬p – assumption 34. j – clause 1 of the negated conclusion5. ¬r – clause 2 of the negated conclusion
6. p – resolution: 1,47. d ∨ r – resolution: 2,4
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 133 / 569
![Page 224: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/224.jpg)
Resolution Method
Let us write down the individual clauses:
1. ¬j ∨ p – assumption 12. ¬j ∨ d ∨ r – assumption 23. ¬d ∨ ¬p – assumption 34. j – clause 1 of the negated conclusion5. ¬r – clause 2 of the negated conclusion
6. p – resolution: 1,47. d ∨ r – resolution: 2,48. ¬d – resolution: 3,6
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 133 / 569
![Page 225: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/225.jpg)
Resolution Method
Let us write down the individual clauses:
1. ¬j ∨ p – assumption 12. ¬j ∨ d ∨ r – assumption 23. ¬d ∨ ¬p – assumption 34. j – clause 1 of the negated conclusion5. ¬r – clause 2 of the negated conclusion
6. p – resolution: 1,47. d ∨ r – resolution: 2,48. ¬d – resolution: 3,69. r – resolution: 7,8
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 133 / 569
![Page 226: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/226.jpg)
Resolution Method
Let us write down the individual clauses:
1. ¬j ∨ p – assumption 12. ¬j ∨ d ∨ r – assumption 23. ¬d ∨ ¬p – assumption 34. j – clause 1 of the negated conclusion5. ¬r – clause 2 of the negated conclusion
6. p – resolution: 1,47. d ∨ r – resolution: 2,48. ¬d – resolution: 3,69. r – resolution: 7,810. ⊥ – resolution: 5,9
A contradition was derived, so the conclusion really follows from the givenassumptions.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 133 / 569
![Page 227: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/227.jpg)
Resolution Method
Remarks:
The resolution method can be viewed as a construction of one “big”formula in CNF, which is equivalent to
ϕ1 ∧ϕ2 ∧ · · ·∧ϕn ∧ ¬ψ,
and which is constructed by a successive addition of clauses.
If a contradiction can not be generated, then the derived clauses canbe used for finding a truth valuation v where the assumptionsϕ1, ϕ2, . . . , ϕn are true and the conclusion ψ is false.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 134 / 569
![Page 228: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/228.jpg)
Resolution Method
It is also possible to proceed by a direct method, where the algorithmstarts only with assumptions
ϕ1, ϕ2, . . . , ϕn
and tries to generate all clauses of the conclusion ψ.
In this approach, it is not guaranteed that the algorithm succeeds inall cases when a conclusion ψ logically follows from assumptionsϕ1, ϕ2, . . . , ϕn.
Example: Clause p ∨ q cannot be generated this way from theassumption p, although it holds that
p |= p ∨ q.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 135 / 569
![Page 229: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/229.jpg)
Predicate Logic
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 136 / 569
![Page 230: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/230.jpg)
Predicate Logic
- Fish are vertebrates living in water.
- Carps are fish.
- There exists at least one carp.
- There exists at least one vertebrate living in water.
- Triangles are convex polygons.
- Equilateral triangles are triangles.
- There exists at least one equilateral triangle.
- There exists at least one convex polygon.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 137 / 569
![Page 231: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/231.jpg)
Predicate Logic
- Fish are vertebrates living in water.
- Carps are fish.
- There exists at least one carp.
- There exists at least one vertebrate living in water.
The use of variables:
- For each x it holds that if x is a fish then x is a vertebrate and
x lives in water.
- For each x it holds that if x is a carp then x is a fish.
- There exists at least one x such that x is a carp.
- There exists at least one x such that x is a vertebrate and x lives in
water.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 138 / 569
![Page 232: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/232.jpg)
Predicate Logic
- Triangles are convex polygons.
- Equilateral triangles are triangles.
- There exists at least one equilateral triangle.
- There exists at least one convex polygon.
The use of variables:
- For each x it holds that if x is a triangle then x is a polygon and x
is convex.
- For each x it holds that if x is an equilateral triangle then x is
a triangle.
- There exists at least one x such that x is an equilateral triangle.
- There exists at least one x such that x is a polygon and x is convex.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 139 / 569
![Page 233: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/233.jpg)
Predicate Logic
- For each x it holds that if x has property P then x has property Q
and x has property R.
- For each x it holds that if x has property S then x has property P.
- There exists at least one x such that x has property S.
- There exists at least one x such that x has property Q and x has
property R.
P is a fish is a triangleQ is a vertebrate is a polygonR lives in water is convexS is a carp is an equilateral triangle
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 140 / 569
![Page 234: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/234.jpg)
Predicate Logic
- For each x it holds that if P(x) then Q(x) and R(x).
- For each x it holds that if S(x) then P(x).
- There exists x such that S(x).
- There exists x such that Q(x) and R(x).
P(x) x is a fish x is a triangleQ(x) x is a vertebrate x is a polygonR(x) x lives in water x is convexS(x) x is a carp x is an equilateral triangle
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 141 / 569
![Page 235: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/235.jpg)
Predicate Logic
- For each x, (P(x)→ (Q(x)∧ R(x))).
- For each x, (S(x)→ P(x)).
- There exists x such that S(x).
- There exists x such that (Q(x)∧ R(x)).
P(x) x is a fish x is a triangleQ(x) x is a vertebrate x is a polygonR(x) x lives in water x is convexS(x) x is a carp x is an equilateral triangle
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 141 / 569
![Page 236: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/236.jpg)
Predicate Logic
- ∀x(P(x)→ (Q(x)∧ R(x)))
- ∀x(S(x)→ P(x))
- ∃x S(x)- ∃x(Q(x)∧ R(x))
P(x) x is a fish x is a triangleQ(x) x is a vertebrate x is a polygonR(x) x lives in water x is convexS(x) x is a carp x is an equilateral triangle
∀ — universal quantifier (“for all”)
∃ — existential quantifier (“there exists”)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 141 / 569
![Page 237: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/237.jpg)
Predicate Logic
Formulas of propositional logic express propositions about objects withsome properties and which can be in some relationships.
Interpretation or interpretation structure — a particular set of theseobjects, their properties and relationships.
Universe — the set of all objects in a given interpretation
An arbitrary non-empty set can be the universe.
Objects in a given universe are called the elements of the universe.
Valuation — an assignment of elements of the universe to variables
The truth values of formulas depend on a given interpretation andvaluation.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 142 / 569
![Page 238: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/238.jpg)
Predicate Logic
An example of a universe:
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 143 / 569
![Page 239: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/239.jpg)
Predicate Logic
Other examples of universes:
Some precisely specified set of people, for example, the set of peoplethat live in some specified house (“John Smith”, “John Doe”, . . . )
The set of all books in a given library.
The set of natural numbers N = 0, 1, 2, 3, . . ..
The set of all points in a plane.
The set a, b, c , d , e.
The set a.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 144 / 569
![Page 240: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/240.jpg)
Variables
Variables — x , y , z , . . . , possibly with indexes — x0, x1, x2, . . .
It is assumed that there are infinitely many variables.
Valuation — an assignment of elements of the universe to the variables
Example:
Universe — a set of people; valuation v , where:
v(x) = “John Doe”
v(y) = “Mary Smith”
. . .
Universe — the set of natural numbers N = 0, 1, 2, . . .;valuation v , where
v(x) = 57 v(y) = 3 v(z) = 57 . . .
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 145 / 569
![Page 241: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/241.jpg)
Predicates
Predicates — P , Q, R , . . .
Unary predicates — they represent properties of elements of theuniverse
Example: Predicate P representing the property “to be blue”:
P(x) — “x is blue”
A unary predicate assigns truth values to the elements of the universe.
E.g., the value of P(x) can be:
1 — the element assigned to variable x has property P (i.e., it is blue)
0 — the element assigned to variable x does not have this property P
(i.e., it is not blue)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 146 / 569
![Page 242: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/242.jpg)
Predicates
Binary predicates — they represent relationships between pairs ofelements of the universe
Example: Predicate R representing the relationship “to be a parent
of”:
R(x , y) — “x is a parent of y”
A binary predicate assigns truth values to pair of elements of theuniverse.
E.g., the value of R(x , y) can be:
1 — when x and y are in the given relationship (i.e., when x isa parent of y)
0 — when x and y are not in the given relationship (i.e., when x is nota parent of y)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 147 / 569
![Page 243: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/243.jpg)
Predicates
We can consider predicates of arbitrary arities.
For example:
Ternary predicate T (i.e., predicate of arity 3) representing therelationship between parents and their child:
T (x , y , z)
— x and y are parents of child z , and x is his/her mother and y ishis/her father
Nulary predicates (i.e., precates of arity 0) can be viewed as atomicpropositions, not related to the elements of the universe.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 148 / 569
![Page 244: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/244.jpg)
Formulas of Predicate Logic
Atomic formula — a predicate applied on some variables
Example:
P — a unary predicate representing property “to be blue”
Q — a unary predicate representing propery “to be a square”
R — a binary predicate representing relationships “overlaps”
P(x) — “x is blue”
P(y) — “y is blue”
Q(y) — “y is a square”
R(z , x) — “z overlaps x”
R(y , y) — “y overlaps itself”
Remark: Later, we will extend the notion of an atomic formula a little bit.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 149 / 569
![Page 245: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/245.jpg)
Formulas of Predicate Logic
Using logical connectives (“¬”, “∧”, “∨”, “→”, “↔”), morecomplicated formulas can be created from simpler formulas, similarly as inpropositional logic.
Example:
P — unary predicate representing property “is blue”
Q — unary predicate representing property “is a square”
R — binary predicate representing relationship “overlaps”
“If x is a blue square or y does not overlap x, then z is not a square.”
(
(P(x) ∧ Q(x)) ∨ ¬R(y , x))
→ ¬Q(z)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 150 / 569
![Page 246: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/246.jpg)
Formulas of Predicate Logic
Using logical connectives (“¬”, “∧”, “∨”, “→”, “↔”), morecomplicated formulas can be created from simpler formulas, similarly as inpropositional logic.
Example:
P — unary predicate representing property “is a woman”
Q — unary predicate representing property “has dark hair”
R — binary predicate representing relationship “is a parent of”
“If x is a woman with dark hair or y is not a parent of x, then z does not
have dark hair.”
(
(P(x) ∧ Q(x)) ∨ ¬R(y , x))
→ ¬Q(z)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 150 / 569
![Page 247: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/247.jpg)
Formulas of Predicate Logic
Using logical connectives (“¬”, “∧”, “∨”, “→”, “↔”), morecomplicated formulas can be created from simpler formulas, similarly as inpropositional logic.
Example:
P — unary predicate representing property “is even”
Q — unary predicate representing property “is a prime”
R — binary predicate representing relationship “is greater than”
“If x is an even prime or y is not greater than x, then z is not a prime.”
(
(P(x) ∧ Q(x)) ∨ ¬R(y , x))
→ ¬Q(z)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 150 / 569
![Page 248: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/248.jpg)
Quantifiers
Universal quantifier — symbol “ ∀ ”
If ϕ is a formula representing some proposition then
∀xϕ
is a formula representing proposition
“for every x ϕ holds”.
Example: P — “to be a square”
∀x P(x)
“For every x it holds that x is a square.”
“Every x is a square.”
“All elements are squares.”
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 151 / 569
![Page 249: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/249.jpg)
Quantifiers
Example:
“For every x it holds that if x is a square then x is green.”
“For each x it holds that if x is a square then x is green.”
“For all x it holds that if x is a square then x is green.”
“All squares are green.”
∀x(P(x)→ Q(x))
P — “to be a square” (arity 1)
Q — “to be green” (arity 1)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 152 / 569
![Page 250: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/250.jpg)
Quantifiers
Example:
“If it holds for all x that x is a square or x is green then it holds for
all y that y is a triangle.”
“If every object is a square or is green then all objects are triangles.”
∀x(P(x)∨ Q(x))→ ∀yT (y)
P — “to be a square” (arity 1)
Q — “to be green” (arity 1)
T — “to be a triangle” (arity 1)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 153 / 569
![Page 251: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/251.jpg)
Quantifiers
There is a big difference between the following formulas:
P(x) — “x is a square”
It claims something about one particular element assigned tovariable x .
The truth value of this claim depends on the particular elementassigned to variable x , i.e., on the particular valuation.
∀xP(x) — “every x is a square” (i.e., “all elements are squares”)
It claims something about all elements of the universe.
The truth value of this claim does not depend on a valuation.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 154 / 569
![Page 252: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/252.jpg)
Quantifiers
Example:
“If x is a prime then x is odd.”
P(x)→ L(x)
“For every x it holds that if x is a prime then it is odd”. (I.e., “allprimes are odd”.)
∀x(P(x)→ L(x))
Predicates:
P — “to be a prime” (arity 1)
L — “to be odd” (arity 1)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 155 / 569
![Page 253: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/253.jpg)
Quantifiers
Example:
“It holds for every y that if y is green then x overlaps y .”
“Object x overlaps all green objects.”
∀y(G (y)→ R(x , y))
Predicates:
R — “overlaps” (arity 2)
G — “to be green” (arity 1)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 156 / 569
![Page 254: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/254.jpg)
Quantifiers
Example:
“It holds for every x that it holds for every y that if x is a parent of y
then x loves y .”
“It holds for each x and y that if x is a parent of y then x loves y .”
“For every pair of elements x and y it holds that if x is a parent of y
then x loves y .”
∀x∀y(R(x , y)→ S(x , y))
Predicates:
R — “is a parent” (arity 2)
S — “loves” (arity 2)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 157 / 569
![Page 255: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/255.jpg)
Quantifiers
Existential quantifier — symbol “ ∃ ”
If ϕ is a formula representing some proposition then
∃xϕ
is a formula representing proposition
“there exists x, for which ϕ holds”.
Example: P — “to be a square”
∃x P(x)
“There exists x, for which it holds that x is a square.”
“There is x such that x is a square.”
“There exists at least one square.”
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 158 / 569
![Page 256: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/256.jpg)
Quantifiers
Example:
“There exists x, for which it holds that x is a square and x is green.”
“There is x such that x is a square and x is green.”
“For some x it holds that x is a square and x is green.”
“There exists a green square.”
“Some squares are green.”
“At least one x is a green square.”
∃x(P(x)∧ Q(x))
Predicates:
P — “to be a square” (arity 1)
Q — “to be green” (arity 1)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 159 / 569
![Page 257: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/257.jpg)
Quantifiers
Example:
“There exists x such that for each y it holds that x is greater than y.”
∃x∀y P(x , y)
“For each y there is x such that x is greater than y.”
∀y∃x P(x , y)
P — “to be greater than” (arity 2)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 160 / 569
![Page 258: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/258.jpg)
Syntax of Formulas of Predicate Logic
Alphabet:
logical connectives — “¬”, “∧”, “∨” “→”, “↔”
quantifiers — “∀”, “∃”auxiliary symbols — “(”, “)”, “,”
variables — “x”, “y”, “z”, . . . , “x0”, “x1”, “x2”, . . .
predicate symbols — for example symbols “P”, “Q”, “R”, etc.(for each symbol, its arity must be specified)
. . .
Remark: Other types of symbols will be described later.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 161 / 569
![Page 259: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/259.jpg)
Syntax of Formulas of Predicate Logic
Definition
Well-formed atomic formulas of predicate logic are formulas of the form:
P(x1, x2, . . . , xn), where P is a predicate symbol of arity n andx1, x2, . . . , xn are (not necessarily different) variables.
. . .
Remark: This is not the whole definition. Later, it will be generalizeda little bit and some additional items will be added.
Example:
P(x , y) R(z , z , z) S(y)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 162 / 569
![Page 260: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/260.jpg)
Syntax of Formulas of Predicate Logic
Definition
Well-formed formulas of predicate logic are sequences of symbolsconstructed according to the following rules:
1 Well-formed atomic formulas are well-formed formulas.
2 If ϕ and ψ are well-formed formulas, then also (¬ϕ), (ϕ∧ψ),(ϕ∨ψ), (ϕ→ ψ) a (ϕ↔ ψ) are well-formed formulas.
3 If ϕ is a well-formed formula and x is a variable, then ∀xϕ and ∃xϕare well-formed formulas.
4 There are no other well-formed formulas than those constructedaccording to the previous rules.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 163 / 569
![Page 261: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/261.jpg)
Syntax of Formulas of Predicate Logic
Notions like
subformulas
an abstract syntax tree
are introduced in a similar way like in propositional logic (they are onlyextended with the additional constructions not present in propositionallogic).
Convention for omitting parentheses:
The same conventions as in propositional logic.
Quantifiers (“∀” and “∃”) have the same priority as negation (“¬”),i.e., the highest priority.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 164 / 569
![Page 262: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/262.jpg)
Syntax of Formulas of Predicate Logic
An abstract syntax tree of formula
∀x∃y(R(y , z)∨ P(x))→ ¬∀y¬Q(y , x , y)
P QR
x x
x
y yy
yy
z
¬
¬
∨
→
∀
∀
∃
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 165 / 569
![Page 263: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/263.jpg)
Free and Bound Occurrences of Variables
Every occurrence of variable x in a subformula of the form ∃xϕ or ∀xϕ isbound.
An occurrence of a variable, which is not bound, is free.
Example: Formula
∀x∃y(R(y , z)∨ P(x))→ ¬∀y¬Q(y , x , y)
y in subformula R(y , z) — the bound occurrence (∃y)z in subformula R(y , z) — the free occurrence
x in subformula P(x) — the bound occurrence (∀x)both occurrences of y in subformula Q(y , x , y) — the boundoccurrences (∀y)x in subformula Q(y , x , y) — the free occurrence
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 166 / 569
![Page 264: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/264.jpg)
Free and Bound Occurrences of Variables
The set of those variables, which occur as free variables in formula ϕ, willbe denoted free(ϕ).
Example:
If ϕ is formula P(x , y), then free(ϕ) = x , y .
If ψ is formula ∃x∃yP(x , y), then free(ψ) = ∅.
If χ is formula
∀x∃y(R(y , z)∨ P(x))→ ¬∀y¬Q(y , x , y)
then free(χ) = x , z.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 167 / 569
![Page 265: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/265.jpg)
Free and Bound Occurrences of Variables
The set of free variables free(ϕ) can be described by the followinginductive definition:
free(P(x1, x2, . . . , xn)) = x1, x2, . . . , xn
(where P is a predicate symbol)
free(¬ϕ) = free(ϕ)
free(ϕ∧ψ) = free(ϕ) ∪ free(ψ)
(it is similar for formulas of the form ϕ∨ψ, ϕ→ ψ, and ϕ↔ ψ)
free(∀xϕ) = free(ϕ) − x (where x is a variable)
free(∃xϕ) = free(ϕ) − x (where x is a variable)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 168 / 569
![Page 266: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/266.jpg)
Free and Bound Occurrences of Variables
A formula ϕ is closed if it contains no free occurrences of variables(i.e., when free(ϕ) = ∅).A formula ϕ is open if it is not closed (i.e., when free(ϕ) 6= ∅).
Remark: Closed formulas are sometimes also called sentences.
Example:
Formula ∃x∃yP(x , y) is closed.Formula ∀x∃y(R(y , z)∨ P(x))→ ¬∀y¬Q(y , x , y) is open (becauseit contains free occurrences of variables z and x).
Truth values of closed formulas do not depend on a valuation, only on aninterpretation.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 169 / 569
![Page 267: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/267.jpg)
Semantics of Predicate Logic
Formulas are evaluated in a given interpretation (interpretationstructure) and valuation.
The fact that formula ϕ holds (i.e., it has truth value 1) ininterpretation A and valuation v , is denoted
A, v |= ϕ
The fact that formula ϕ does not hold (i.e., it has truth value 0) ininterpretation A and valuation v , is denoted A, v 6|= ϕ.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 170 / 569
![Page 268: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/268.jpg)
Semantics of Predicate Logic
An interpretation A is a structure consisting of the following items:
Universe A — an arbitraty non-empty set
Some subset of the set A is assigned to every unary predicatesymbol P — it is denoted PA.
(And so PA ⊆ A.)
Some binary relation on A is assigned to every binary predicatesymbol Q — it is denoted QA.
(And so QA ⊆ A× A.)
It is similar for predicate symbols with other arities (3, 4, 5, . . . ).
Remark: This definition is not complete yet, and it will be later extendedby other items.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 171 / 569
![Page 269: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/269.jpg)
Semantics of Predicate Logic
An example of an interpretation A:
universe A
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 172 / 569
![Page 270: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/270.jpg)
Semantics of Predicate Logic
An example of an interpretation A:
universe A
PA
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 172 / 569
![Page 271: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/271.jpg)
Semantics of Predicate Logic
An example of an interpretation A:
universe A
PA
QA
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 172 / 569
![Page 272: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/272.jpg)
Semantics of Predicate Logic
An example of an interpretation A:
universe A
PA
QA RA
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 172 / 569
![Page 273: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/273.jpg)
Semantics of Predicate Logic
Other example of an interpretation A:
universe A = a, b, c , d , e, f , g
PA = b, d , e
QA = a, b, e, g
RA = (a, b), (a, e), (a, g), (b, b), (c , e), (f , c), (f , g), (g , a), (g , g)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 173 / 569
![Page 274: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/274.jpg)
Semantics of Predicate Logic
Let Var be the set of all variables, i.e.,
Var = x , y , z , . . . , x0, x1, x2, . . .
For a given interpretation A with a universe A, a valuation v is anarbitrary function
v : Var → A
that assignes elements of the universe to the variables.
Remark: As we will see, in fact, only values assigned by the valuation v tovariables in free(ϕ) are important for determining the truth value offormula ϕ.
Values assigned by valuation v to the other variables are not importantfrom this point of view.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 174 / 569
![Page 275: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/275.jpg)
Semantics of Predicate Logic
Let us consider an interpretation A with universe A and a valuation v .
Lets assume that (i.e., x ∈ Var) and a is an element of the universe(i.e., a ∈ A).
Notationv [x 7→ a]
denotes the valuation v ′ : Var → A, which assignes to every variable thesame value as valuation v , except that it assignes value a to variable x .
I.e., for every variable y (where y ∈ Var) is
v ′(y) =
a if y = x
v(y) otherwise
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 175 / 569
![Page 276: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/276.jpg)
Semantics of Predicate Logic
Example:
universe A = a, b, c , d , e, f , g , . . .
valuation v :
v(x0) = c v(x1) = e v(x2) = b v(x3) = e . . .
valuation v [x2 7→ g ]:
v(x0) = c v(x1) = e v(x2) = g v(x3) = e . . .
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 176 / 569
![Page 277: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/277.jpg)
Semantics of Predicate Logic
Definition
Let us assume an interpretation A with universe A and a valuation v ,assigning elements of the universe A to the variables.
The truth values of formulas of predicate logic in interpretation A andvaluation v are defined as follows:
For a predicate P of arity n, A, v |= P(x1, x2, . . . , xn) iff(v(x1), v(x2), . . . , v(xn)) ∈ PA.
A, v |= ¬ϕ iff A, v 6|= ϕ.A, v |= ϕ∧ψ iff A, v |= ϕ and A, v |= ψ.
A, v |= ϕ∨ψ iff A, v |= ϕ or A, v |= ψ.
A, v |= ϕ→ ψ iff A, v 6|= ϕ or A, v |= ψ.
A, v |= ϕ↔ ψ iff A, v |= ϕ and A, v |= ψ, or A, v 6|= ϕ andA, v 6|= ψ.. . .
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 177 / 569
![Page 278: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/278.jpg)
Semantics of Predicate Logic
Definition (cont.)
. . .
A, v |= ∀xϕ iff for every a ∈ A it holds that A, v [x 7→ a] |= ϕ.
A, v |= ∃xϕ iff there exists some a ∈ A such that A, v [x 7→ a] |= ϕ.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 178 / 569
![Page 279: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/279.jpg)
Semantics of Predicate Logic
A closed formula ϕ is true (i.e., it has truth value 1) in interpretation A ifit holds for each valuation v that A, v |= ϕ.
The fact that formula ϕ is true in interpretation A is denoted
A |= ϕ .
Remark: A truth value of a closed formula in a given interpretation doesnot depend on a valuation.
Consider a closed formula ϕ.A model of the formula ϕ is an arbitrary interpretation A such that zeA |= ϕ.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 179 / 569
![Page 280: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/280.jpg)
Evaluation of Truth of Formulas as a Game
Let us consider a formula of the form
∃x1∀x2∃x3∀x4 · · · ∃xn−1∀xnϕ,
where quantifiers alternate in some arbitrary way, and where ϕ does notcontain quantifiers.
The evaluation of truth values of formulas of this form (in a giveninterpretation A and a valuation v) can be viewed as a game:
It is played by a pair of players — Player I and Player II.
Player I wants to show that the formula is true.
Player II wants to show that the formula is false.
Player I chooses values of those variables, which are bound by anexistential quantifier (∃).Player II chooses values of those variables, which are bound by anuniversal quantifier (∀).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 180 / 569
![Page 281: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/281.jpg)
Evaluation of Truth of Formulas as a Game
Example: Formula ∃x∀y∃z(P(x , y)→ Q(y , z))
universe A = a, b, c
Player I chooses x
Player II chooses y
Player Ichooses z
aaaaaaaaa
aa
a
a
bbbbbbbbb
bb
b
b
cccccccccc
c
c
cc
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 181 / 569
![Page 282: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/282.jpg)
Evaluation of Truth of Formulas as a Game
Formula ϕ is true iff Player I has a winning strategy in this game.
Formula ϕ is false iff Player II has a winning strategy.
Strategy — determines how a player should play in every situation, i.e., itdetermines moves of the player for all possible moves of the other player.
Winning strategy — a strategy that guarantees a win of the given playerin every play, not matter what the other player does.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 182 / 569
![Page 283: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/283.jpg)
Evaluation of Truth of Formulas as a Game
Example: Interpretation where universe is the set of real numbers R andbinary predicate symbol R represents relation “greater or equal”
(i.e., R(x , y) iff x ≥ y).
Formula ∃x∀yR(x , y) — a winning strategy of Player II:
Player I chooses number x .
Player II chooses number y = x + 1 — Player II wins since it isobviously not true that x ≥ x + 1.
Formula ∀y∃xR(x , y) — a winning strategy of Player I:
Player II chooses number y .
Player I chooses number x = y — Player I wins since it is obviouslytrue that x ≥ x .
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 183 / 569
![Page 284: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/284.jpg)
Logically Valid Formulas
A formula ϕ is logically valid if it has truth value 1 in every interpretationand valuation, i.e., if for every interpretation A and valuation v is
A, v |= ϕ.
Example:
∃xP(x)→ ∃yP(y)
∀xP(x)∧ ¬∃yQ(y) → ∀z(P(z)∧ ¬Q(z))
∀xP(x)→ ∃xP(x)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 184 / 569
![Page 285: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/285.jpg)
Logically Valid Formulas
If we take an arbitrary tautology of propositional logic and replace in it allatomic propositions with arbitrary formulas of predicate logic, we obtaina logically valid formula.
Example: Tautology p → (q ∨ p)
p is replaced with ∀z(P(x , z)↔ ¬Q(z , y))
q is replaced with R(x)
We obtain a logically valid formula
∀z(P(x , z)↔ ¬Q(z , y)) → (R(x) ∨ ∀z(P(x , z)↔ ¬Q(z , y)))
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 185 / 569
![Page 286: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/286.jpg)
Logically Equivalent Formulas
Formulas ϕ and ψ are logically equivalent if they have the same truthvalues in every interpretation and valuation, i.e., if for everyinterpretation A and valuation v is
A, v |= ϕ iff A, v |= ψ.
The fact that ϕ and ψ are logically equivalent is denoted
ϕ⇔ ψ.
Similarly as in propositional logic, we can do equivalenttransformations in predicate logic.
All equivalences that hold in propositional logic also hold in predicatelogic.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 186 / 569
![Page 287: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/287.jpg)
Logically Equivalent Formulas
There are other equivalences in predicate logic that have no analogyin propositional logic.
Examples of some important equivalences:
¬∀xϕ ⇔ ∃x¬ϕ¬∃xϕ ⇔ ∀x¬ϕ
∀x∀yϕ ⇔ ∀y∀xϕ∃x∃yϕ ⇔ ∃y∃xϕ
When x 6∈ free(ϕ):
∀xϕ ⇔ ϕ
∃xϕ ⇔ ϕ
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 187 / 569
![Page 288: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/288.jpg)
Logically Equivalent Formulas
Some other important equivalences:
(∀xϕ)∧ (∀xψ) ⇔ ∀x(ϕ∧ψ)
(∃xϕ)∨ (∃xψ) ⇔ ∃x(ϕ∨ψ)
When x 6∈ free(ψ):
(∀xϕ)∧ψ ⇔ ∀x(ϕ∧ψ)
(∀xϕ)∨ψ ⇔ ∀x(ϕ∨ψ)
(∃xϕ)∧ψ ⇔ ∃x(ϕ∧ψ)
(∃xϕ)∨ψ ⇔ ∃x(ϕ∨ψ)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 188 / 569
![Page 289: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/289.jpg)
Renaming of Bound Variables
If we rename a bound variable in a formula, we obtain an equvalentformula.
Example: ∀xP(x , y) ⇔ ∀zP(z , y)
If we rename for example x to y in formula ∀xϕ or ∃xϕ, thevariable y must not occur in formula ϕ as a free variable.
∃xP(x , y) is not equivalent to ∃yP(y , y)
Free occurrences of variables in a subformula must not becomebound after renaming. E.g.,
∃x∀yP(x , y) is not equivalent to ∃y∀yP(y , y)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 189 / 569
![Page 290: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/290.jpg)
Substitution
Let us say that we want replace free occurrences of variable x withvariable y (i.e., we want to substitute y for x).
This operation on formulas is called substitution and the resultingformula is denoted
ϕ[y/x ].
Remark: In general, formulas ϕ and ϕ[y/x ] are not equivalent.
Example:
P(x , z) is not equivalent to P(y , z)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 190 / 569
![Page 291: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/291.jpg)
Renaming of Bound Variables
With the operation of substitution, the renaming of bound variables canbe described by the following equivalences.
When y 6∈ free(∀xϕ):
∀xϕ ⇔ ∀y(ϕ[y/x ])
When y 6∈ free(∃xϕ):
∃xϕ ⇔ ∃y(ϕ[y/x ])
Example:
∃x∀yP(x , y) ⇔ ∃x∀zP(x , z) ⇔ ∃y∀zP(y , z) ⇔ ∃y∀xP(y , x)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 191 / 569
![Page 292: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/292.jpg)
Logical Entailment
Definition
Conclusion ψ logically follows from assumptions ϕ1, ϕ2, . . . , ϕn, which isdenoted
ϕ1, ϕ2, . . . , ϕn |= ψ,
if in every interpretation A and valuation v where assumptionϕ1, ϕ2, . . . , ϕn are true, also the conclusion ψ is true.
All, what was said about the logical entailment in propositional logic,holds all analogously in predicate logic.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 192 / 569
![Page 293: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/293.jpg)
Logical Entailment
If we want to show that a given conclusion ψ does not follow fromassumptions ϕ1, ϕ2, . . . , ϕn, it is sufficient to find an example of oneparticular interpretation A and valuation v , where the assumptions aretrue and the conclusion ψ is false.
Example:
- There exists an aquatic animal, which is meat-eating.
- All fish are aquatic animals.
- There exists a meat-eating fish.
∃x(P(x)∧ Q(x))
∀x(R(x)→ P(x))
∃x(R(x)∧ Q(x))
P(x) — “x is an aquatic animal”
Q(x) — “x is meat-eating”
R(x) — “x is a fish”
An interpretation A with universe A = a, b
PA = a, b QA = a RA = b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 193 / 569
![Page 294: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/294.jpg)
Venn Diagrams
In general, it is difficult to find out whether a conclusion does or does notfollow from given assumptions.
In cases when we have only unary predicates and there is only a smallnumber of them (e.g., 3), we use so called Venn diagrams as an aid forthe reasoning.
Q
P
R
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 194 / 569
![Page 295: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/295.jpg)
Venn Diagrams
Example:
- Fish are vertebrates.
- Fish live in water.
- There exists at least one fish.
- There exists a vertebrate living in water.
∀x(P(x)→ Q(x))
∀x(P(x)→ R(x))
∃xP(x)∃x(Q(x)∧ R(x))
P(x) — “x is a fish”
Q(x) — “x is a vertebrate”
R(x) — “x lives in water”
〈a solution on a whiteboard〉
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 195 / 569
![Page 296: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/296.jpg)
An Example of a Proof
∀x(¬R(x , x))∀x∀y∀z(R(x , y)∧ R(y , z)→ R(x , z))
∀x∀y(R(x , y)→ ¬R(y , x))
1. ∀x(¬R(x , x)) - assumption 12. ∀x∀y∀z(R(x , y)∧ R(y , z)→ R(x , z)) - assumption 23. Lets assume arbitrary elements x and y :4. Lets assume R(x , y):5. Lets assume R(y , x):6. R(x , y)∧ R(y , x)→ R(x , x) - from 2.7. R(x , x) - from 4., 5., 6.8. ¬R(x , x) - from 1.9. ¬R(y , x) - contradiction of 7. and 8.,
so 5. does not hold10. R(x , y)→ ¬R(y , x) - from 4., 9.11. ∀x∀y(R(x , y)→ ¬R(y , x)) - from 3., 10.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 196 / 569
![Page 297: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/297.jpg)
Equality
One of the most important relations is equality (identity).
Elements x and y are equal, written
x = y ,
if they are the same element.
Equality can be expressed as a predicate, e.g., we can choose that P(x , y)represents proposition “x and y are equal”.
But P(x , y) can be true in some interpretations even when x and y aredistinct elements, and in some interpretations, P(x , x) can be false forsome element x .
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 197 / 569
![Page 298: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/298.jpg)
Equality
Example: We would like to describe relationship “x is a sibling of y”
using a binary predicate R , where R(x , y) means “x is a parent of y”.
An attempt for a possible solution:
“x is a sibling of y”
iff
∃z(R(z , x)∧ R(z , y))
Problem: If for a given x there is an element z such that R(z , x), then itis true that
∃z(R(z , x)∧ R(z , x)),
and so it is also true that “x is a sibling of x”.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 198 / 569
![Page 299: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/299.jpg)
Equality
Alphabet:
. . .
Symbol for equality: “=”
. . .
Atomic formulas (cont.). . .
If x and y are variables then x = y is a well-formed atomic formula.
. . .
Symbol “=” is interpreted as equality in every interpretation, i.e., in everyinterpretation A and valuation v is:
A, v |= x = y iff v(x) = v(y).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 199 / 569
![Page 300: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/300.jpg)
Equality
Example: The relationship “x is a sibling of y” can be expressed byformula
¬(x = y) ∧ ∃z(R(z , x)∧ R(z , y)),
where R(x , y) means that “x is a parent of y”.
Remark: The notation x 6= y is often used instead of ¬(x = y).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 200 / 569
![Page 301: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/301.jpg)
Equality
“There exists exactly one x such that P(x)”:
∃x(P(x) ∧ ∀y(P(y) → x = y))
“There exist at least two elements x such that P(x)”:
∃x∃y(P(x) ∧ P(y) ∧ ¬(x = y))
“There exist exactly two elements x such that P(x)”:
∃x∃y(P(x) ∧ P(y) ∧ ¬(x = y) ∧ ∀z(P(z) → (z = x ∨ z = y)))
“There exists exactly one x, for which ϕ holds”:
∃x(ϕ ∧ ∀y(ϕ[y/x ] → x = y))
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 201 / 569
![Page 302: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/302.jpg)
Constants
Sometimes we want to talk about some particular element of the universe.
Example: “There exists at least one x such that John Smith is a parent
of x and x is a woman.” (I.e., “John Smith has at least one daughter.”)
If the value assigned to variable y is “John Smith”:
∃x(R(y , x)∧ S(x))
R(x , y) — “x is a parent of y”
S(x) — “x is a woman”
We could introduce an unary predicate N representing property “to be
John Smith”:
∀y(N(y) → ∃x(R(y , x)∧ S(x)))
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 202 / 569
![Page 303: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/303.jpg)
Constants
If we have some unary predicate N where we are interested only in thoseinterpretations where exists exactly one element x , for which N(x) holds,it would be convenient to have some way to name this element and referto it directly instead of using of the predicate N.
Constant symbols (constants) can be used for this purpose.
Alphabet:
. . .
constant symbols: “a”, “b”, “c”, “d”, . . .
. . .
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 203 / 569
![Page 304: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/304.jpg)
Constants
In atomic formulas, constants can occur at the same places as variables:
P(c , x) Q(d) R(a, a) x = a
Constants must not be used in quantifiers — e.g., ∃cP(x , c) is nota well-formed formula.
Values assigned to constant symbols are determined by a giveninterpretation:
A given interpretation A (with universe A) assigns to every constantsymbol c some element of the universe A.
This element is denoted cA. So cA ∈ A.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 204 / 569
![Page 305: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/305.jpg)
Constants
Example: “There exists at least one x such that John Smith is a parent
of x and x is a woman.”
∃x(R(a, x)∧ S(x))
R(x , y) — “x is a parent of y”
S(x) — “x is a woman”
a — constant symbol representing “John Smith”
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 205 / 569
![Page 306: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/306.jpg)
Constants
Example: “Every prime is greater than one.”
∀x(P(x)→ R(x , e))
P(x) — “x is a prime”
R(x , y) — “x is greater than y”
e — constant symbol representing value 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 206 / 569
![Page 307: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/307.jpg)
Functions
A binary relation R is a (unary) function if for each x there exists at mostone y such that
(x , y) ∈ R .
This function is total if for each x there exists exactly one such y .
Example: Binary relation R on the set of natural numbers N where
(x , y) ∈ R iff y = x + 1
We have
R = (0, 1), (1, 2), (2, 3), (3, 4), (4, 5), . . .
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 207 / 569
![Page 308: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/308.jpg)
Functions
Similarly, a ternary relation T is a (binary) function if for every pair ofelements x1 and x2 there exists at most one (resp., exactly one for totalfunction) y such that
(x1, x2, y) ∈ T .
Example: Addition on the set of real numbers R can be viewed asa ternary relation S (i.e., as a set of triples of real numbers) where
(x1, x2, y) ∈ S iff x1 + x2 = y
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 208 / 569
![Page 309: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/309.jpg)
Functions
In predicate logic, functions can be expressed using predicates representingthe corresponding relations — this is not very straightforward norconvenient.
Example: “For each x and y it holds that x + y ≥ y + x.”
∀x∀y∃z∃w(S(x , y , z) ∧ S(y , x ,w) ∧ P(z ,w))
S(x , y , z) — “z is the sum of values x and y”
P(x , y) — “x greater than or equal to y”
Remark: Moreover, we must assume that for every pair of elements xand y there exists exactly one element z such that S(x , y , z).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 209 / 569
![Page 310: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/310.jpg)
Functions
In predicate logic, functions can be represented by function symbols.
Alphabet:
. . .
function symbols: “f ”, “g”, “h”, . . .
. . .
Every function symbol must have a specified arity corresponding to thearity of a function represented by this symbol (i.e., the number ofarguments of this function).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 210 / 569
![Page 311: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/311.jpg)
Terms
Terms — expressions, consisting of variables, constant symbols, andfunction symbols; values of terms are elements of the universe
Example:
Let us say that we have a predicate F where we assume that forevery x there exists exactly one y such that
F (x , y).
Instead of binary predicate F , we can use unary function symbol f .
Term
f (x)
represents this one particular element y , for which F (x , y) holds.
Instead of ∃y(F (x , y)∧ P(y)), we can write P(f (x)).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 211 / 569
![Page 312: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/312.jpg)
Terms
Example:
Let us say that we have a ternary predicate G where we assume thatfor every pair of elements x1 and x2 there exists exactly one y suchthat
G (x1, x2, y).
Instead of ternary predicate G , we can use binary function symbol g .
Term
g(x1, x2)
represents this one particular element y , for which G (x1, x2, y) holds.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 212 / 569
![Page 313: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/313.jpg)
Terms
Example: “For each x and y it holds that x + y ≥ y + x.”
∀x∀yP(f (x , y), f (y , x))
f — binary function symbol where f (x , y) represents the sum ofvalues x and y
P — binary predicate symbol where P(x , y) represents relation “x is
greater than or equal to y”
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 213 / 569
![Page 314: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/314.jpg)
Terms
Variables, constant symbols and function symbols can be composed interms in arbitrary way — it is only necessary to comply with the arity ofthe symbols (to apply each function symbol to a correct number ofarguments).
Example:
c — constant symbol
f — unary function symbol
g — binary function symbol
h — binary function symbol
Examples of terms:
x f (y) g(c , x) g(h(x , x), f (c))
g(h(x , f (x)), g(f (c), g(y , f (f (z)))))
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 214 / 569
![Page 315: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/315.jpg)
Terms
The syntactic tree of term g(h(x , f (x)), g(f (c), g(y , f (f (z)))))
c f
f
ff g
g
g
h
x
x
y
z
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 215 / 569
![Page 316: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/316.jpg)
Terms in Formulas
The syntactic tree of formula∃x(∀y(R(f (x), f (g(c , y))) ∨ y = f (y)) → ∃z(P(g(x , f (z))) ∧ ¬Q(z)))
P
Q
R
c
f f f
fg
g
x x
x
y
y
y
y
z
z
z
¬
∧∨
→
∀
∃
∃
=
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 216 / 569
![Page 317: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/317.jpg)
Terms in Formulas
Example:
For each x , y , and z it holds that (x + y) + z = x + (y + z):
∀x∀y∀z(f (f (x , y), z) = f (x , f (y , z)))
For each x it holds that x + 0 = x and 0+ x = x :
∀x(f (x , e) = x ∧ f (e, x) = x)
For each x there exists y such that x + y = 0:
∀x∃y(f (x , y) = e)
Constant and function symbols:
f — binary function symbol representing “addition” (operation “+”)
e — constant symbol representing element “0”
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 217 / 569
![Page 318: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/318.jpg)
Terms in Formulas
Example:
For each x , y , and z it holds that x · (y + z) = x · y + x · z :∀x∀y∀z(g(x , f (y , z)) = f (g(x , y), g(x , z)))
For each x and y such that x ≤ y it holds that x + z ≤ y + z :
∀x∀y(R(x , y) → ∀zR(f (x , y), f (y , z)))
Constant and function symbols:
f — binary function symbol representing “addition” (operation “+”)
g — binary function symbol representing “multiplication”
(operation “·”)R — binary predicate symbol representing relation “less than or equal
to” (relation “≤”)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 218 / 569
![Page 319: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/319.jpg)
Syntax of Formulas of Predicate Logic
Alphabet:
logical connectives — “¬”, “∧”, “∨”, “→”, “↔”
quantifiers — “∀” and “∃”equality — “=”
auxiliary symbols — “(”, “)”, and “,”
variables — “x”, “y”, “z”, . . . , “x0”, “x1”, “x2”, . . .
predicate symbols — for example symbols “P”, “Q”, “R”, etc. (foreach symbols, there must be specified its arity)
function symbols — for example symbols “f ”, “g”, “h”, etc. (foreach symbol, there must be specified its arity)
constant symbols — for example symbols “a”, “b”, “c”, etc.
Remark: Constant symbols can be viewed as function symbols of arity 0.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 219 / 569
![Page 320: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/320.jpg)
Syntax of Formulas of Predicate Logic
Definition
Well-formed terms are defined as follows:
1 If x is a variable then x is a well-formed term.
2 If c is a constant symbol then c is a well-formed term.
3 If f is a function symbol of arity n and t1, t2, . . . , tn are well-formedterms then
f (t1, t2, . . . , tn)
is a well-formed term.
4 There are no other well-formed terms than those constructedaccording to the previous rules.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 220 / 569
![Page 321: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/321.jpg)
Syntax of Formulas of Predicate Logic
Definition
Well-formed atomic formulas are defined as follows:
1 If P is a predicate symbol of arity n and t1, t2, . . . , tn are well-formedterms then
P(t1, t2, . . . , tn)
is a well-formed atomic formula.
2 If t1 and t2 are well-formed terms then
t1 = t2
is a well-formed atomic formula.
3 There are no other well-formed atomic formulas than thoseconstructed according to the previous rules.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 221 / 569
![Page 322: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/322.jpg)
Syntax of Formulas of Predicate Logic
Definition (a previously stated definition repeated)
Well-formed formulas of predicate logic are sequences of symbolsconstructed according to the following rules:
1 Well-formed atomic formulas are well-formed formulas.
2 If ϕ and ψ are well-formed formulas, then also (¬ϕ), (ϕ∧ψ),(ϕ∨ψ), (ϕ→ ψ) a (ϕ↔ ψ) are well-formed formulas.
3 If ϕ is a well-formed formula and x is a variable, then ∀xϕ and ∃xϕare well-formed formulas.
4 There are no other well-formed formulas than those constructedaccording to the previous rules.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 222 / 569
![Page 323: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/323.jpg)
Semantics of Predicate Logic
Interpretation A:
universe A
to every predicate symbol P of arity n, an n-ary relation PA isassigned, where PA ⊆ A× A× · · · × A
to every function symbol f of arity n, an n-ary function f A isassigned, where f A : A× A× · · · × A→ A
to every constant symbol c , an element of the universe cA isassigned, i.e., cA ∈ A
Remark: In interpretations, only total functions, i.e., functions whosevalues are defined for all possible values of arguments, are assigned tofunction symbols.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 223 / 569
![Page 324: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/324.jpg)
Semantics of Predicate Logic
The value of a term in interpretation A and valuation v :
Term x , where x is a variable — the value of this term is an elementa ∈ A such that v(x) = a.
Term c , where c is a constant symbol — the value of this term is theelement cA ∈ A.
Term f (t1, t2, . . . , tn), where f is a function symbol with arity n andt1, t2, . . . , tn are terms — the value of this term is the element b ∈ A
such that
b = f A(a1, a2, . . . , an),
where a1, a2, . . . , an are values of terms t1, t2, . . . , tn ininterpretation A and valuation v .
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 224 / 569
![Page 325: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/325.jpg)
Semantics of Predicate Logic
Example: Interpretation A where the universe is the set of naturalnumbers N = 0, 1, 2, . . . .
aA = 0
f A is the function “successor”, i.e., f A(x) = x + 1
gA is the function “sum”, i.e., gA(x , y) = x + y
Valuation v where v(x) = 5, v(y) = 13, v(z) = 2, . . .
Values of terms in interpretation A and valuation v :
Term x — value 5
Term a — value 0
Term f (a) — value 1 (0+ 1 = 1)
Term f (f (a)) — value 2 (1+ 1 = 2)
Term g(x , f (f (a))) — value 7 (5+ 2 = 7)
Term g(z , y) — value 15 (2+ 13 = 15)
Term f (g(z , y)) — value 16 (15+ 1 = 16)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 225 / 569
![Page 326: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/326.jpg)
Semantics of Predicate Logic
Truth values of atomic formulas in interpretation A and valuation v :
A, v |= P(t1, t2, . . . , tn), where P is a predicate symbol of arity n andwhere t1, t2, . . . , tn are terms, holds iff
(a1, a2, . . . , an) ∈ PA,
where a1, a2, . . . , an are values of terms t1, t2, . . . , tn ininterpretation A and valuation v .
A, v |= t1 = t2, where t1 and t2 are terms, holds iff
a1 = a2,
where a1 and a2 are values of terms t1 and t2 in interpretation A andvaluation v .
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 226 / 569
![Page 327: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/327.jpg)
Semantics of Predicate Logic
Example: Interpretation A where the universe is the set of naturalnumbers N = 0, 1, 2, . . . .
f A is the function “successor”, i.e., f A(x) = x + 1
gA is the function “sum”, i.e., gA(x , y) = x + y
PA is the set of all primes
QA is the binary relation “<” i.e., (x , y) ∈ QA iff x < y
Valuation v where v(x) = 5, v(y) = 13, v(z) = 2, . . .
A, v |= P(x) (5 is a prime)
A, v 6|= Q(y , z) (it is not the case that 13 < 2)
A, v |= Q(f (f (z)), g(x , y)) ((2+ 1) + 1 < 5+ 13)
A, v 6|= P(f (g(z , x))) ((2+ 5) + 1 = 8 and 8 is not a prime)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 227 / 569
![Page 328: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/328.jpg)
Predicate Logic — Additional Comments
The logic described here is the first order predicate logic — it ispossible to quantify only over the elements of the universe (in thesecond order predicate logic, it is possible to quantify over relations).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 228 / 569
![Page 329: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/329.jpg)
Predicate Logic — Additional Comments
As commonly used in mathematics, it is ofter the case that formulas arenot written according to the precise syntax of predicate logic but manykinds of conventions and abbreviations are used.
For binary function and predicate symbols, it is common to use infixnotation:
For example, f (x , y) and R(x , y) can be written as
x f y x R y
To denote predicate, function and constant symbols, many differentkinds of symbols are used:
For example, R(f (x , y), g(z)) can be written as
x + δ ≤ |ε| or for example as x y ⊐ G (z)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 229 / 569
![Page 330: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/330.jpg)
Predicate Logic — Additional Comments
Examples of formulas representing propositions from set theory:
x is an elements of set A:
x ∈ A
“∈” — binary predicate symbol representing the relation “to be an
element of”
“x”, “A” — variables
If we would do the following changes:
instead of symbol “∈”, we would use binary predicate symbol E ,
instead of variable A we would use variable y ,
then the formula would look as follows:
E (x , y)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 230 / 569
![Page 331: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/331.jpg)
Predicate Logic — Additional Comments
Two sets are equal iff they contain the same elements:
A = B ↔ ∀x(x ∈ A ↔ x ∈ B)
If we use predicate E instead of “∈”, and y and z instead of Aand B , the formula would look as follows:
y = z ↔ ∀x(E (x , y) ↔ E (x , z))
The definition of relation “to be a subset” (denoted by symbol “⊆”):
A ⊆ B ↔ ∀x(x ∈ A → x ∈ B)
If we use binary predicate symbol S instead of “⊆”:
S(y , z) ↔ ∀x(E (x , y) → E (x , z))
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 231 / 569
![Page 332: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/332.jpg)
Predicate Logic — Additional Comments
The definition of operation “union” (denoted by symbol “∪”):∀x(x ∈ A ∪ B ↔ (x ∈ A ∨ x ∈ B))
If we use binary function symbol f instead of “∪”:∀x(E (x , f (y , z)) ↔ (E (x , y) ∨ E (x , z)))
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 232 / 569
![Page 333: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/333.jpg)
Predicate Logic — Additional Comments
Sometimes
∃x(x ∈ A ∧ . . . )
is written in an abbreviated way as
(∃x ∈ A)( . . . )
I.e., instead of
“there exists x such that x ∈ A and . . . ”
we can say
“there exists x ∈ A such that . . . ”
Similarly, ∃x(x ≥ 1 ∧ . . .) can be written in an abbreviated way as
(∃x ≥ 1)( . . . )
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 233 / 569
![Page 334: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/334.jpg)
Predicate Logic — Additional Comments
Sometimes
∀x(x ∈ A → . . . )
is written in an abbreviated way as
(∀x ∈ A)( . . . )
I.e., instead of
“for each x, for which x ∈ A holds, we have . . . ”
we can say
“for each x ∈ A we have . . . ”
Similarly, ∀x(x ≥ 1 → . . .) can be written in an abbreviated wayas
(∀x ≥ 1)( . . . )
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 234 / 569
![Page 335: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/335.jpg)
Formal Languages
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 235 / 569
![Page 336: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/336.jpg)
Alphabet and Word
Definition
Alphabet is a nonempty finite set of symbols.
Remark: An alphabet is often denoted by the symbol Σ (upper casesigma) of the Greek alphabet.
Definition
A word over a given alphabet is a finite sequence of symbols from thisalphabet.
Example 1:
Σ = A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z
Words over alphabet Σ: HELLO ABRACADABRA ERROR
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 236 / 569
![Page 337: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/337.jpg)
Alphabet and Word
Example 2:
Σ2 = A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z,
A word over alphabet Σ2: HELLO WORLD
Example 3:
Σ3 = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Words over alphabet Σ3: 0, 31415926536, 65536
Example 4:
Words over alphabet Σ4 = 0, 1: 011010001, 111, 1010101010101010
Example 5:
Words over alphabet Σ5 = a, b: aababb, abbabbba, aaab
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 237 / 569
![Page 338: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/338.jpg)
Alphabet and Word
Example 6:
Alphabet Σ6 is the set of all ASCII characters.
Example of a word:
class HelloWorld
public static void main(String[] args)
System.out.println("Hello, world!");
class HelloWorld ← public static void main(Str · · ·
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 238 / 569
![Page 339: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/339.jpg)
Theory of Formal Languages – Motivation
Language — a set of (some) words of symbols from a given alphabet
Examples of problem types, where theory of formal languages is useful:
Construction of compilers:
Lexical analysisSyntactic analysis
Searching in text:
Searching for a given text patternSeaching for a part of text specified by a regular expression
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 239 / 569
![Page 340: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/340.jpg)
Representation of Formal Languages
To describe a language, there are several possibilities:
We can enumerate all words of the language (however, this is possibleonly for small finite languages).
Example: L = aab, babba, aaaaaa
We can specify a property of the words of the language:
Example: The language over alphabet 0, 1 containing all wordswith even number of occurrences of symbol 1.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 240 / 569
![Page 341: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/341.jpg)
Representation of Formal Languages
In particular, the following two approaches are used in the theory of formallanguages:
To describe an (idealized) machine, device, algorithm, that recognizeswords of the given language – approaches based on automata.
To describe some mechanism that allows to generate all words of thegiven language – approaches based on grammars or regularexpressions.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 241 / 569
![Page 342: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/342.jpg)
Some Basic Concepts
The length of a word is the number of symbols of the word.
For example, the length of word abaab is 5.
The length of a word w is denoted |w |.
For example, if w = abaab then |w | = 5.
We denote the number of occurrences of a symbol a in a word w by |w |a.
For word w = ababb we have |w |a = 2 and |w |b = 3.
An empty word is a word of length 0, i.e., the word containing nosymbols.
The empty word is denoted by the letter ε (epsilon) of the Greek alphabet.
(Remark: In literature, sometimes λ (lambda) is used to denote the emptyword instead of ε .)
|ε| = 0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 242 / 569
![Page 343: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/343.jpg)
Concatenation of Words
One of operations we can do on words is the operation of concatenation:
For example, the concatenation of words OST and RAVA is the wordOSTRAVA.
The operation of concatenation is denoted by symbol · (similarly tomultiplication). It is possible to omit this symbol.
OST · RAVA = OSTRAVA
Concatenation is associative, i.e., for every three words u, v , and w wehave
(u · v) · w = u · (v · w)
which means that we can omit parenthesis when we write multipleconcatenations. For example, we can write w1 · w2 · w3 · w4 · w5 instead of(w1 · (w2 · w3)) · (w4 · w5).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 243 / 569
![Page 344: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/344.jpg)
Concatenation of Words
Concatenation is not commutative, i.e., the following equality does nothold in general
u · v = v · u
Example:OST · RAVA 6= RAVA · OST
It is obvious that the following holds for any words v and w :
|v · w | = |v |+ |w |
For every word w we also have:
ε · w = w · ε = w
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 244 / 569
![Page 345: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/345.jpg)
Prefixes, Suffixes, and Subwords
Definition
A word x is a prefix of a word y , if there exists a word v such that y = xv .
A word x is a suffix of a word y , if there exists a word u such that y = ux .
A word x is a subword of a word y , if there exist words u and v such thaty = uxv .
Example:
Prefixes of the word abaab are ε, a, ab, aba, abaa, abaab.
Suffixes of the word abaab are ε, b, ab, aab, baab, abaab.
Subwords of the word abaab are ε, a, b, ab, ba, aa, aba, baa, aab,abaa, baab, abaab.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 245 / 569
![Page 346: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/346.jpg)
Language
The set of all words over alphabet Σ is denoted Σ∗.
Definition
A (formal) language L over an alphabet Σ is a subset of Σ∗, i.e., L ⊆ Σ∗.
Example 1: The set 00, 01001, 1101 is a language over alphabet 0, 1.
Example 2: The set of all syntactically correct programs in the Cprogramming language is a language over the alphabet consisting of allASCII characters.
Example 3: The set of all texts containing the sequence hello is alanguage over alphabet consisting of all ASCII characters.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 246 / 569
![Page 347: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/347.jpg)
Set Operations on Languages
Since languages are sets, we can apply any set operations to them:
Union – L1 ∪ L2 is the language consisting of the words belonging tolanguage L1 or to language L2 (or to both of them).
Intersection – L1 ∩ L2 is the language consisting of the words belongingto language L1 and also to language L2.
Complement – L1 is the language containing those words from Σ∗ thatdo not belong to L1.
Difference – L1 − L2 is the language containing those words of L1 that donot belong to L2.
Remark: It is assumed the languages involved in these operations use thesame alphabet Σ.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 247 / 569
![Page 348: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/348.jpg)
Set Operations on Languages
Formally:
Union: L1 ∪ L2 = w ∈ Σ∗ | w ∈ L1 ∨ w ∈ L2
Intersection: L1 ∩ L2 = w ∈ Σ∗ | w ∈ L1 ∧ w ∈ L2
Complement: L1 = w ∈ Σ∗ | w 6∈ L1
Difference: L1 − L2 = w ∈ Σ∗ | w ∈ L1 ∧ w 6∈ L2
Remark: We assume that L1, L2 ⊆ Σ∗ for some given alphabet Σ.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 248 / 569
![Page 349: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/349.jpg)
Set Operations on Languages
Example:
Consider languages over alphabet a, b.
L1 — the set of all words containing subword baa
L2 — the set of all words with an even number of occurrences ofsymbol b
Then
L1 ∪ L2 — the set of all words containing subword baa or an evennumber of occurrences of b
L1 ∩ L2 — the set of all words containing subword baa and an evennumber of occurrences of b
L1 — the set of all words that do not contain subword baa
L1 − L2 — the set of all words that contain subword baa but do notcontain an even number of occurrences of b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 249 / 569
![Page 350: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/350.jpg)
Concatenation of Languages
Definition
Concatenation of languages L1 and L2, where L1, L2 ⊆ Σ∗, is thelanguage L ⊆ Σ∗ such that for each w ∈ Σ∗ it holds that
w ∈ L ↔ (∃u ∈ L1)(∃v ∈ L2)(w = u · v)
The concatenation of languages L1 and L2 is denoted L1 · L2.
Example:L1 = abb, ba
L2 = a, ab, bbb
The language L1 · L2 contains the following words:
abba abbab abbbbb baa baab babbb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 250 / 569
![Page 351: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/351.jpg)
Iteration of a Language
Definition
The iteration (Kleene star) of language L, denoted L∗, is the languageconsisting of words created by concatenation of some arbitrary number ofwords from language L.I.e. w ∈ L∗ iff
∃n ∈ N : ∃w1,w2, . . . ,wn ∈ L : w = w1w2 · · ·wn
Example: L = aa, b
L∗ = ε, aa, b, aaaa, aab, baa, bb, aaaaaa, aaaab, aabaa, aabb, . . .
Remark: The number of concatenated words can be 0, which means thatε ∈ L∗ always holds (it does not matter if ε ∈ L or not).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 251 / 569
![Page 352: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/352.jpg)
Iteration of a Language – Alternative Definition
At first, for a language L and a number k ∈ N we define the language Lk :
L0 = ε, Lk = Lk−1 · L for k ≥ 1
This meansL0 = ε
L1 = L
L2 = L · LL3 = L · L · LL4 = L · L · L · LL5 = L · L · L · L · L
. . .
Example: For L = aa, b, the language L3 contains the following words:
aaaaaa aaaab aabaa aabb baaaa baab bbaa bbb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 252 / 569
![Page 353: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/353.jpg)
Iteration of a Language – Alternative Definition
Alternative definition
The iteration (Kleene star) of language L is the language
L∗ =⋃
k≥0
Lk
Remark:⋃
k≥0
Lk = L0 ∪ L1 ∪ L2 ∪ L3 ∪ · · ·
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 253 / 569
![Page 354: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/354.jpg)
Iteration of a Language
Remark: Sometimes, notation L+ is used as an abbreviation for L · L∗, i.e.,
L+ =⋃
k≥1
Lk
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 254 / 569
![Page 355: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/355.jpg)
Reverse
The reverse of a word w is the word w written from backwards (in theopposite order).
The reverse of a word w is denoted wR .
Example: w = HELLO wR = OLLEH
Formally, for w = a1a2 · · · an (where ai ∈ Σ) is wR = anan−1 · · · a1.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 255 / 569
![Page 356: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/356.jpg)
Reverse
The reverse of a language L is the language consisting of reverses of allwords of L.
Reverse of a language L is denoted LR .
LR = wR | w ∈ L
Example: L = ab, baaba, aaab
LR = ba, abaab, baaa
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 256 / 569
![Page 357: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/357.jpg)
Order on Words
Let us assume some (linear) order < on the symbols of alphabet Σ, i.e., ifΣ = a1, a2, . . . , an then
a1 < a2 < . . . < an .
Example: Σ = a, b, c with a < b < c .
The following (linear) order <L can be defined on Σ∗:x <L y iff:
|x | < |y |, or
|x | = |y | there exist words u, v ,w ∈ Σ∗ and symbols a, b ∈ Σ such that
x = uav y = ubw a < b
Informally, we can say that in order <L we order words according to theirlength, and in case of the same length we order them lexicographically.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 257 / 569
![Page 358: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/358.jpg)
Order on Words
All words over alphabet Σ can be ordered by <L into a sequence
w0,w1,w2, . . .
where every word w ∈ Σ∗ occurs exactly once, and where for each i , j ∈ N
it holds that wi <L wj iff i < j .
Example: For alphabet Σ = a, b, c (where a < b < c) , the initial part ofthe sequence looks as follows:
ε, a, b, c , aa, ab, ac , ba, bb, bc , ca, cb, cc , aaa, aab, aac , aba, abb, abc , . . .
For example, when we talk about the first ten words of a language L ⊆ Σ∗,we mean ten words that belong to language L and that are smallest of allwords of L according to order <L.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 258 / 569
![Page 359: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/359.jpg)
Regular Expressions
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 259 / 569
![Page 360: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/360.jpg)
Regular Expressions
Regular expressions describing languages over an alphabet Σ:
∅, ε, a (where a ∈ Σ) are regular expressions:
∅ . . . denotes the empty languageε . . . denotes the language ε
a . . . denotes the language a
If α, β are regular expressions then also (α+ β), (α · β), (α∗) areregular expressions:
(α+ β) . . . denotes the union of languages denoted α and β(α · β) . . . denotes the concatenation of languages denoted α
and β(α∗) . . . denotes the iteration of a language denoted α
There are no other regular expressions except those defined in the twopoints mentioned above.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 260 / 569
![Page 361: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/361.jpg)
Regular Expressions
Example: alphabet Σ = 0, 1
According to the definition, 0 and 1 are regular expressions.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 261 / 569
![Page 362: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/362.jpg)
Regular Expressions
Example: alphabet Σ = 0, 1
According to the definition, 0 and 1 are regular expressions.
Since 0 and 1 are regular expression, (0+ 1) is also a regularexpression.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 261 / 569
![Page 363: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/363.jpg)
Regular Expressions
Example: alphabet Σ = 0, 1
According to the definition, 0 and 1 are regular expressions.
Since 0 and 1 are regular expression, (0+ 1) is also a regularexpression.
Since 0 is a regular expression, (0∗) is also a regular expression.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 261 / 569
![Page 364: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/364.jpg)
Regular Expressions
Example: alphabet Σ = 0, 1
According to the definition, 0 and 1 are regular expressions.
Since 0 and 1 are regular expression, (0+ 1) is also a regularexpression.
Since 0 is a regular expression, (0∗) is also a regular expression.
Since (0+ 1) and (0∗) are regular expressions, ((0+ 1) · (0∗)) is alsoa regular expression.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 261 / 569
![Page 365: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/365.jpg)
Regular Expressions
Example: alphabet Σ = 0, 1
According to the definition, 0 and 1 are regular expressions.
Since 0 and 1 are regular expression, (0+ 1) is also a regularexpression.
Since 0 is a regular expression, (0∗) is also a regular expression.
Since (0+ 1) and (0∗) are regular expressions, ((0+ 1) · (0∗)) is alsoa regular expression.
Remark: If α is a regular expression, by [α] we denote the languagedefined by the regular expression α.
[((0+ 1) · (0∗))] = 0, 1, 00, 10, 000, 100, 0000, 1000, 00000, . . .
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 261 / 569
![Page 366: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/366.jpg)
Regular Expressions
The structure of a regular expression can be represented by an abstractsyntax tree:
+
·
·
∗
·
0 1
1
·
1 1
∗
+
·
0 0
1
(((((0 · 1)∗) · 1) · (1 · 1)) + (((0 · 0) + 1)∗))
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 262 / 569
![Page 367: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/367.jpg)
Regular Expressions
The formal definition of semantics of regular expressions:
[∅] = ∅[ε] = ε
[a] = a
[α∗] = [α]∗
[α · β] = [α] · [β][α+ β] = [α] ∪ [β]
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 263 / 569
![Page 368: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/368.jpg)
Regular Expressions
To make regular expressions more lucid and succinct, we use the followingconventions:
The outward pair of parentheses can be omitted.
We can omit parentheses that are superflous due to associativity ofoperations of union (+) and concatenation (·).We can omit parentheses that are superflous due to the definedpriority of operators (iteration (∗) has the highest priority,concatenation (·) has lower priority, and union (+) has the lowestpriority).
A dot denoting concatenation can be omitted.
Example: Instead of
(((((0 · 1)∗) · 1) · (1 · 1)) + (((0 · 0) + 1)∗))
we usually write
(01)∗111+ (00+ 1)∗
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 264 / 569
![Page 369: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/369.jpg)
Regular Expressions
Examples: In all examples Σ = 0, 1.
0 . . . the language containing the only word 0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 265 / 569
![Page 370: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/370.jpg)
Regular Expressions
Examples: In all examples Σ = 0, 1.
0 . . . the language containing the only word 0
01 . . . the language containing the only word 01
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 265 / 569
![Page 371: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/371.jpg)
Regular Expressions
Examples: In all examples Σ = 0, 1.
0 . . . the language containing the only word 0
01 . . . the language containing the only word 01
0+ 1 . . . the language containing two words 0 and 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 265 / 569
![Page 372: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/372.jpg)
Regular Expressions
Examples: In all examples Σ = 0, 1.
0 . . . the language containing the only word 0
01 . . . the language containing the only word 01
0+ 1 . . . the language containing two words 0 and 1
0∗ . . . the language containing words ε, 0, 00, 000, . . .
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 265 / 569
![Page 373: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/373.jpg)
Regular Expressions
Examples: In all examples Σ = 0, 1.
0 . . . the language containing the only word 0
01 . . . the language containing the only word 01
0+ 1 . . . the language containing two words 0 and 1
0∗ . . . the language containing words ε, 0, 00, 000, . . .
(01)∗ . . . the language containing words ε, 01, 0101, 010101, . . .
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 265 / 569
![Page 374: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/374.jpg)
Regular Expressions
Examples: In all examples Σ = 0, 1.
0 . . . the language containing the only word 0
01 . . . the language containing the only word 01
0+ 1 . . . the language containing two words 0 and 1
0∗ . . . the language containing words ε, 0, 00, 000, . . .
(01)∗ . . . the language containing words ε, 01, 0101, 010101, . . .
(0+ 1)∗ . . . the language containing all words over the alphabet0, 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 265 / 569
![Page 375: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/375.jpg)
Regular Expressions
Examples: In all examples Σ = 0, 1.
0 . . . the language containing the only word 0
01 . . . the language containing the only word 01
0+ 1 . . . the language containing two words 0 and 1
0∗ . . . the language containing words ε, 0, 00, 000, . . .
(01)∗ . . . the language containing words ε, 01, 0101, 010101, . . .
(0+ 1)∗ . . . the language containing all words over the alphabet0, 1
(0+ 1)∗00 . . . the language containing all words ending with 00
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 265 / 569
![Page 376: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/376.jpg)
Regular Expressions
Examples: In all examples Σ = 0, 1.
0 . . . the language containing the only word 0
01 . . . the language containing the only word 01
0+ 1 . . . the language containing two words 0 and 1
0∗ . . . the language containing words ε, 0, 00, 000, . . .
(01)∗ . . . the language containing words ε, 01, 0101, 010101, . . .
(0+ 1)∗ . . . the language containing all words over the alphabet0, 1
(0+ 1)∗00 . . . the language containing all words ending with 00
(01)∗111(01)∗ . . . the language containing all words that contain asubword 111 preceded and followed by an arbitrary numberof copies of the word 01
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 265 / 569
![Page 377: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/377.jpg)
Regular Expressions
(0+ 1)∗00+ (01)∗111(01)∗ . . . the language containing all words thateither end with 00 or contain a subwords 111 preceded andfollowed with some arbitrary number of words 01
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 266 / 569
![Page 378: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/378.jpg)
Regular Expressions
(0+ 1)∗00+ (01)∗111(01)∗ . . . the language containing all words thateither end with 00 or contain a subwords 111 preceded andfollowed with some arbitrary number of words 01
(0+ 1)∗1(0+ 1)∗ . . . the language of all words that contain at least oneoccurrence of symbol 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 266 / 569
![Page 379: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/379.jpg)
Regular Expressions
(0+ 1)∗00+ (01)∗111(01)∗ . . . the language containing all words thateither end with 00 or contain a subwords 111 preceded andfollowed with some arbitrary number of words 01
(0+ 1)∗1(0+ 1)∗ . . . the language of all words that contain at least oneoccurrence of symbol 1
0∗(10∗10∗)∗ . . . the language containg all words with an even number ofoccurrences of symbol 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 266 / 569
![Page 380: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/380.jpg)
Finite Automata
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 267 / 569
![Page 381: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/381.jpg)
Recognition of a Language
Example: Consider words over alphabet 0, 1.
We would like to recognize a language L consisting of words with evennumber of symbols 1.
We want to design a device that reads a word and then tells us if the wordbelongs to the language L or not.
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 268 / 569
![Page 382: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/382.jpg)
Recognition of a Language
Example: Consider words over alphabet 0, 1.
We would like to recognize a language L consisting of words with evennumber of symbols 1.
We want to design a device that reads a word and then tells us if the wordbelongs to the language L or not.
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 268 / 569
![Page 383: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/383.jpg)
Recognition of a Language
Example: Consider words over alphabet 0, 1.
We would like to recognize a language L consisting of words with evennumber of symbols 1.
We want to design a device that reads a word and then tells us if the wordbelongs to the language L or not.
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 268 / 569
![Page 384: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/384.jpg)
Recognition of a Language
Example: Consider words over alphabet 0, 1.
We would like to recognize a language L consisting of words with evennumber of symbols 1.
We want to design a device that reads a word and then tells us if the wordbelongs to the language L or not.
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 268 / 569
![Page 385: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/385.jpg)
Recognition of a Language
Example: Consider words over alphabet 0, 1.
We would like to recognize a language L consisting of words with evennumber of symbols 1.
We want to design a device that reads a word and then tells us if the wordbelongs to the language L or not.
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 268 / 569
![Page 386: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/386.jpg)
Recognition of a Language
Example: Consider words over alphabet 0, 1.
We would like to recognize a language L consisting of words with evennumber of symbols 1.
We want to design a device that reads a word and then tells us if the wordbelongs to the language L or not.
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 268 / 569
![Page 387: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/387.jpg)
Recognition of a Language
Example: Consider words over alphabet 0, 1.
We would like to recognize a language L consisting of words with evennumber of symbols 1.
We want to design a device that reads a word and then tells us if the wordbelongs to the language L or not.
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 268 / 569
![Page 388: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/388.jpg)
Recognition of a Language
Example: Consider words over alphabet 0, 1.
We would like to recognize a language L consisting of words with evennumber of symbols 1.
We want to design a device that reads a word and then tells us if the wordbelongs to the language L or not.
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 268 / 569
![Page 389: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/389.jpg)
Recognition of a Language
Example: Consider words over alphabet 0, 1.
We would like to recognize a language L consisting of words with evennumber of symbols 1.
We want to design a device that reads a word and then tells us if the wordbelongs to the language L or not.
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 268 / 569
![Page 390: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/390.jpg)
Recognition of a Language
Example: Consider words over alphabet 0, 1.
We would like to recognize a language L consisting of words with evennumber of symbols 1.
We want to design a device that reads a word and then tells us if the wordbelongs to the language L or not.
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 268 / 569
![Page 391: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/391.jpg)
Recognition of a Language
Example: Consider words over alphabet 0, 1.
We would like to recognize a language L consisting of words with evennumber of symbols 1.
We want to design a device that reads a word and then tells us if the wordbelongs to the language L or not.
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 268 / 569
![Page 392: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/392.jpg)
Recognition of a Language
Example: Consider words over alphabet 0, 1.
We would like to recognize a language L consisting of words with evennumber of symbols 1.
We want to design a device that reads a word and then tells us if the wordbelongs to the language L or not.
YES
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 268 / 569
![Page 393: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/393.jpg)
Recognition of a Language
The first idea: To count the number of occurrences of symbol 1.
0
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 269 / 569
![Page 394: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/394.jpg)
Recognition of a Language
The first idea: To count the number of occurrences of symbol 1.
0
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 269 / 569
![Page 395: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/395.jpg)
Recognition of a Language
The first idea: To count the number of occurrences of symbol 1.
1
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 269 / 569
![Page 396: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/396.jpg)
Recognition of a Language
The first idea: To count the number of occurrences of symbol 1.
1
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 269 / 569
![Page 397: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/397.jpg)
Recognition of a Language
The first idea: To count the number of occurrences of symbol 1.
2
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 269 / 569
![Page 398: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/398.jpg)
Recognition of a Language
The first idea: To count the number of occurrences of symbol 1.
3
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 269 / 569
![Page 399: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/399.jpg)
Recognition of a Language
The first idea: To count the number of occurrences of symbol 1.
4
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 269 / 569
![Page 400: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/400.jpg)
Recognition of a Language
The first idea: To count the number of occurrences of symbol 1.
4
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 269 / 569
![Page 401: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/401.jpg)
Recognition of a Language
The first idea: To count the number of occurrences of symbol 1.
5
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 269 / 569
![Page 402: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/402.jpg)
Recognition of a Language
The first idea: To count the number of occurrences of symbol 1.
5
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 269 / 569
![Page 403: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/403.jpg)
Recognition of a Language
The first idea: To count the number of occurrences of symbol 1.
5
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 269 / 569
![Page 404: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/404.jpg)
Recognition of a Language
The first idea: To count the number of occurrences of symbol 1.
6
0 1 0 1 1 1 0 1 0 0 1
YES – 6 is an even number
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 269 / 569
![Page 405: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/405.jpg)
Recognition of a Language
The second idea: In fact, we just need to remember if the number ofsymbols 1 read so far is even or odd (i.e., it is sufficient to remember onlythe last bit of the number).
E
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 270 / 569
![Page 406: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/406.jpg)
Recognition of a Language
The second idea: In fact, we just need to remember if the number ofsymbols 1 read so far is even or odd (i.e., it is sufficient to remember onlythe last bit of the number).
E
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 270 / 569
![Page 407: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/407.jpg)
Recognition of a Language
The second idea: In fact, we just need to remember if the number ofsymbols 1 read so far is even or odd (i.e., it is sufficient to remember onlythe last bit of the number).
O
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 270 / 569
![Page 408: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/408.jpg)
Recognition of a Language
The second idea: In fact, we just need to remember if the number ofsymbols 1 read so far is even or odd (i.e., it is sufficient to remember onlythe last bit of the number).
O
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 270 / 569
![Page 409: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/409.jpg)
Recognition of a Language
The second idea: In fact, we just need to remember if the number ofsymbols 1 read so far is even or odd (i.e., it is sufficient to remember onlythe last bit of the number).
E
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 270 / 569
![Page 410: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/410.jpg)
Recognition of a Language
The second idea: In fact, we just need to remember if the number ofsymbols 1 read so far is even or odd (i.e., it is sufficient to remember onlythe last bit of the number).
O
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 270 / 569
![Page 411: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/411.jpg)
Recognition of a Language
The second idea: In fact, we just need to remember if the number ofsymbols 1 read so far is even or odd (i.e., it is sufficient to remember onlythe last bit of the number).
E
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 270 / 569
![Page 412: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/412.jpg)
Recognition of a Language
The second idea: In fact, we just need to remember if the number ofsymbols 1 read so far is even or odd (i.e., it is sufficient to remember onlythe last bit of the number).
E
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 270 / 569
![Page 413: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/413.jpg)
Recognition of a Language
The second idea: In fact, we just need to remember if the number ofsymbols 1 read so far is even or odd (i.e., it is sufficient to remember onlythe last bit of the number).
O
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 270 / 569
![Page 414: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/414.jpg)
Recognition of a Language
The second idea: In fact, we just need to remember if the number ofsymbols 1 read so far is even or odd (i.e., it is sufficient to remember onlythe last bit of the number).
O
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 270 / 569
![Page 415: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/415.jpg)
Recognition of a Language
The second idea: In fact, we just need to remember if the number ofsymbols 1 read so far is even or odd (i.e., it is sufficient to remember onlythe last bit of the number).
O
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 270 / 569
![Page 416: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/416.jpg)
Recognition of a Language
The second idea: In fact, we just need to remember if the number ofsymbols 1 read so far is even or odd (i.e., it is sufficient to remember onlythe last bit of the number).
E
0 1 0 1 1 1 0 1 0 0 1
YES
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 270 / 569
![Page 417: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/417.jpg)
Recognition of a Language
The behaviour of the device can be described by the following graph:
E O
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 271 / 569
![Page 418: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/418.jpg)
Recognition of a Language
The behaviour of the device can be described by the following graph:
E O
0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 271 / 569
![Page 419: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/419.jpg)
Recognition of a Language
The behaviour of the device can be described by the following graph:
E O
0
1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 271 / 569
![Page 420: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/420.jpg)
Recognition of a Language
The behaviour of the device can be described by the following graph:
E O
0
1
0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 271 / 569
![Page 421: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/421.jpg)
Recognition of a Language
The behaviour of the device can be described by the following graph:
E O
0
1
0
1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 271 / 569
![Page 422: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/422.jpg)
Recognition of a Language
The behaviour of the device can be described by the following graph:
E O
0
1
0
1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 271 / 569
![Page 423: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/423.jpg)
Recognition of a Language
The behaviour of the device can be described by the following graph:
E O
0
1
0
1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 271 / 569
![Page 424: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/424.jpg)
Recognition of a Language
The behaviour of the device can be described by the following graph:
E O
0
1
0
1
E
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 271 / 569
![Page 425: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/425.jpg)
Recognition of a Language
The behaviour of the device can be described by the following graph:
E O
0
1
0
1
E
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 271 / 569
![Page 426: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/426.jpg)
Recognition of a Language
The behaviour of the device can be described by the following graph:
E O
0
1
0
1
O
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 271 / 569
![Page 427: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/427.jpg)
Recognition of a Language
The behaviour of the device can be described by the following graph:
E O
0
1
0
1
O
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 271 / 569
![Page 428: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/428.jpg)
Recognition of a Language
The behaviour of the device can be described by the following graph:
E O
0
1
0
1
E
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 271 / 569
![Page 429: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/429.jpg)
Recognition of a Language
The behaviour of the device can be described by the following graph:
E O
0
1
0
1
O
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 271 / 569
![Page 430: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/430.jpg)
Recognition of a Language
The behaviour of the device can be described by the following graph:
E O
0
1
0
1
E
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 271 / 569
![Page 431: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/431.jpg)
Recognition of a Language
The behaviour of the device can be described by the following graph:
E O
0
1
0
1
E
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 271 / 569
![Page 432: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/432.jpg)
Recognition of a Language
The behaviour of the device can be described by the following graph:
E O
0
1
0
1
O
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 271 / 569
![Page 433: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/433.jpg)
Recognition of a Language
The behaviour of the device can be described by the following graph:
E O
0
1
0
1
O
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 271 / 569
![Page 434: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/434.jpg)
Recognition of a Language
The behaviour of the device can be described by the following graph:
E O
0
1
0
1
O
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 271 / 569
![Page 435: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/435.jpg)
Recognition of a Language
The behaviour of the device can be described by the following graph:
E O
0
1
0
1
E
0 1 0 1 1 1 0 1 0 0 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 271 / 569
![Page 436: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/436.jpg)
Deterministic Finite Automaton
1 2
3 4
5
a
b
a
b
a
b
a
b
a
b
A deterministic finite automaton consists of states and transitions.One of the states is denoted as an initial state and some of states aredenoted as accepting.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 272 / 569
![Page 437: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/437.jpg)
Deterministic Finite Automaton
Formally, a deterministic finite automaton (DFA) is defined as a tuple
(Q, Σ, δ, q0,F )
where:
Q is a nonempty finite set of states
Σ is an alphabet (a nonempty finite set of symbols)
δ : Q × Σ→ Q is a transition function
q0 ∈ Q is an initial state
F ⊆ Q is a set of accepting states
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 273 / 569
![Page 438: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/438.jpg)
Deterministic Finite Automaton
1 2
3 4
5
a
b
a
b
a
b
a
b
a
b
Q = 1, 2, 3, 4, 5
Σ = a, b
q0 = 1
F = 1, 4, 5
δ(1, a) = 2 δ(1, b) = 1δ(2, a) = 4 δ(2, b) = 5δ(3, a) = 1 δ(3, b) = 4δ(4, a) = 1 δ(4, b) = 3δ(5, a) = 4 δ(5, b) = 5
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 274 / 569
![Page 439: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/439.jpg)
Deterministic Finite Automaton
Instead of
δ(1, a) = 2 δ(1, b) = 1δ(2, a) = 4 δ(2, b) = 5δ(3, a) = 1 δ(3, b) = 4δ(4, a) = 1 δ(4, b) = 3δ(5, a) = 4 δ(5, b) = 5
we rather use a more succinct representation as a table or a depictedgraph:
δ a b
↔ 1 2 12 4 53 1 4
← 4 1 3← 5 4 5
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 275 / 569
![Page 440: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/440.jpg)
Deterministic Finite Automaton
1 2
3 4
5
a
b
a
b
a
b
a
b
a
b
1
a b a b b1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 276 / 569
![Page 441: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/441.jpg)
Deterministic Finite Automaton
1 2
3 4
5
a
b
a
b
a
b
a
b
a
b
2
a b a b b1
a−→ 2
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 276 / 569
![Page 442: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/442.jpg)
Deterministic Finite Automaton
1 2
3 4
5
a
b
a
b
a
b
a
b
a
b
5
a b a b b1
a−→ 2b−→ 5
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 276 / 569
![Page 443: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/443.jpg)
Deterministic Finite Automaton
1 2
3 4
5
a
b
a
b
a
b
a
b
a
b
4
a b a b b1
a−→ 2b−→ 5
a−→ 4
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 276 / 569
![Page 444: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/444.jpg)
Deterministic Finite Automaton
1 2
3 4
5
a
b
a
b
a
b
a
b
a
b
3
a b a b b1
a−→ 2b−→ 5
a−→ 4b−→ 3
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 276 / 569
![Page 445: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/445.jpg)
Deterministic Finite Automaton
1 2
3 4
5
a
b
a
b
a
b
a
b
a
b
4
a b a b b1
a−→ 2b−→ 5
a−→ 4b−→ 3
b−→ 4
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 276 / 569
![Page 446: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/446.jpg)
Deterministic Finite Automaton
Definition
Let us have a DFA A = (Q, Σ, δ, q0,F ).
By qw−→ q ′, where q, q ′ ∈ Q and w ∈ Σ∗, we denote the fact that the
automaton, starting in state q goes to state q ′ by reading word w .
Remark: −→⊆ Q × Σ∗ × Q is a ternary relation.
Instead of (q,w , q ′) ∈−→ we write qw−→ q ′.
It holds for a DFA that for each state q and each word w there is exactlyone state q ′ such that q
w−→ q ′.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 277 / 569
![Page 447: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/447.jpg)
Deterministic Finite Automaton
Relation −→ can be formally defined by the following inductive definition:
qε−→ q for each q ∈ Q
For a ∈ Σ and w ∈ Σ∗:
qaw−→ q ′ iff there is q ′′ ∈ Q such that δ(q, a) = q ′′ and q ′′ w−→ q ′.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 278 / 569
![Page 448: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/448.jpg)
Deterministic Finite Automaton
A word w ∈ Σ∗ is accepted by a deterministic finite automatonA = (Q, Σ, δ, q0,F ) iff there exists a state q ∈ F such that q0
w−→ q.
Definition
A language accepted by a given deterministic finite automatonA = (Q, Σ, δ, q0,F ), denoted L(A), is the set of all words accepted by theautomaton, i.e.,
L(A) = w ∈ Σ∗ | ∃q ∈ F : q0w−→ q
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 279 / 569
![Page 449: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/449.jpg)
Regular languages
Definition
A language L is regular iff there exists some deterministic finiteautomaton accepting L, i.e., DFA A such that L(A) = L.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 280 / 569
![Page 450: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/450.jpg)
Equivalence of Automata
1 2 3a a
a
b b b
1 2 3a
a
a
b b b
1 2a
a
b b
All 3 automata accept the language of all words with an even number ofa’s.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 281 / 569
![Page 451: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/451.jpg)
Equivalence of Automata
Definition
We say automata A1,A2 are equivalent if L(A1) = L(A2).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 282 / 569
![Page 452: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/452.jpg)
Unreachable States of an Automaton
1 2 3
4 5 6
a
b
b
a
a
b
b
b
a
aa, b
The automaton accepts the languageL = w ∈ a, b∗ | w contains subword ab
There is no input sequence such that after reading it, the automatongets to states 3, 4, or 5.
.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 283 / 569
![Page 453: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/453.jpg)
Unreachable States of an Automaton
1 2
6
a
b
b
a
a, b
The automaton accepts the languageL = w ∈ a, b∗ | w contains subword ab
There is no input sequence such that after reading it, the automatongets to states 3, 4, or 5.
If we remove these states, the automaton still accepts the samelanguage L.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 283 / 569
![Page 454: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/454.jpg)
Unreachable States of an Automaton
Definition
A state q of a finite automaton A = (Q, Σ, δ, q0,F ) is reacheable if thereexists a word w such that q0
w−→ q.
Otherwise the state is unreachable.
There is no path in a graph of an automaton going from the initialstate to some unreachable state.
Unreachable states can be removed from an automaton (togetherwith all transitions going to them and from them). The languageaccepted by the automaton is not affected.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 284 / 569
![Page 455: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/455.jpg)
An Automaton for Intersection of Languages
Let us have the following two automata:
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
Do both of them accept the word ababb?
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 285 / 569
![Page 456: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/456.jpg)
An Automaton for Intersection of Languages
Let us have the following two automata:
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
Do both of them accept the word ababb?
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 285 / 569
![Page 457: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/457.jpg)
An Automaton for Intersection of Languages
Let us have the following two automata:
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
Do both of them accept the word ababb?
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 285 / 569
![Page 458: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/458.jpg)
An Automaton for Intersection of Languages
Let us have the following two automata:
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
Do both of them accept the word ababb?
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 285 / 569
![Page 459: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/459.jpg)
An Automaton for Intersection of Languages
Let us have the following two automata:
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
Do both of them accept the word ababb?
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 285 / 569
![Page 460: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/460.jpg)
An Automaton for Intersection of Languages
Let us have the following two automata:
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
Do both of them accept the word ababb?
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 285 / 569
![Page 461: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/461.jpg)
An Automaton for Intersection of Languages
Let us have the following two automata:
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
Do both of them accept the word ababb?
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 285 / 569
![Page 462: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/462.jpg)
An Automaton for Intersection of Languages
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 286 / 569
![Page 463: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/463.jpg)
An Automaton for Intersection of Languages
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
0A
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 286 / 569
![Page 464: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/464.jpg)
An Automaton for Intersection of Languages
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
0A 1Ba
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 286 / 569
![Page 465: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/465.jpg)
An Automaton for Intersection of Languages
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
0A 1Ba
b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 286 / 569
![Page 466: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/466.jpg)
An Automaton for Intersection of Languages
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
0A 1B
1A
a
b
a
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 286 / 569
![Page 467: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/467.jpg)
An Automaton for Intersection of Languages
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
0A 1B 2B
1A
a
b
a
b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 286 / 569
![Page 468: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/468.jpg)
An Automaton for Intersection of Languages
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
0A 1B 2B
1A
a
b
a a
b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 286 / 569
![Page 469: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/469.jpg)
An Automaton for Intersection of Languages
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
0A 1B 2B
2A 1A
a
b
a
b
a
b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 286 / 569
![Page 470: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/470.jpg)
An Automaton for Intersection of Languages
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
0A 1B 2B 3A
2A 1A
a
b
a
b
a
b a
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 286 / 569
![Page 471: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/471.jpg)
An Automaton for Intersection of Languages
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
0A 1B 2B 3A
2A 1A 0B
a
b
a
b
a
b a
b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 286 / 569
![Page 472: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/472.jpg)
An Automaton for Intersection of Languages
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
0A 1B 2B 3A
2A 1A 0B 3B
a
b
a
b
a
a
b a
b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 286 / 569
![Page 473: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/473.jpg)
An Automaton for Intersection of Languages
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
0A 1B 2B 3A
2A 1A 0B 3B
a
b
a
b
a
b a
b a
b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 286 / 569
![Page 474: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/474.jpg)
An Automaton for Intersection of Languages
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
0A 1B 2B 3A
2A 1A 0B 3B
a
b
a
b
a
b aa
b a
b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 286 / 569
![Page 475: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/475.jpg)
An Automaton for Intersection of Languages
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
0A 1B 2B 3A
2A 1A 0B 3B
a
b
a
b
a
b a
b
a
b a
b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 286 / 569
![Page 476: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/476.jpg)
An Automaton for Intersection of Languages
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
0A 1B 2B 3A
2A 1A 0B 3B
a
b
a
b
a
b a
b
a
a
b a
b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 286 / 569
![Page 477: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/477.jpg)
An Automaton for Intersection of Languages
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
0A 1B 2B 3A
2A 1A 0B 3B
a
b
a
b
a
b a
b
a
ba
b a
b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 286 / 569
![Page 478: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/478.jpg)
An Automaton for Intersection of Languages
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
0A 1B 2B 3A
2A 1A 0B 3B
a
b
a
b
a
b a
b
a
ba
b a
b a
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 286 / 569
![Page 479: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/479.jpg)
An Automaton for Intersection of Languages
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
0A 1B 2B 3A
2A 1A 0B 3B
a
b
a
b
a
b a
b
a
ba
b a
b a
b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 286 / 569
![Page 480: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/480.jpg)
An Automaton for Intersection of Languages
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
0A 1B 2B 3A
2A 1A 0B 3B
a
b
a
b
a
b a
b
a
ba
b a
b a
b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 286 / 569
![Page 481: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/481.jpg)
An Automaton for Intersection of Languages
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
0A 1B 2B 3A
2A 1A 0B 3B
a
b
a
b
a
b a
b
a
ba
b a
b a
b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 286 / 569
![Page 482: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/482.jpg)
An Automaton for Intersection of Languages
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
0A 1B 2B 3A
2A 1A 0B 3B
a
b
a
b
a
b a
b
a
ba
b a
b a
b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 286 / 569
![Page 483: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/483.jpg)
An Automaton for Intersection of Languages
Formally, the construction can be described as follows:
We assume we have two deterministic finite automataA1 = (Q1, Σ, δ1, q01,F1) and A2 = (Q2, Σ, δ2, q02,F2).
We construct DFA A = (Q, Σ, δ, q0,F ) where:
Q = Q1 × Q2
δ( (q1, q2), a ) = ( δ1(q1, a), δ2(q2, a) ) for each q1 ∈ Q1, q2 ∈ Q2,a ∈ Σq0 = (q01, q02)
F = F1 × F2
It is not difficult to check that for each word w ∈ Σ∗ we have w ∈ L(A) iffw ∈ L(A1) and w ∈ L(A2), i.e.,
L(A) = L(A1) ∩ L(A2)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 287 / 569
![Page 484: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/484.jpg)
Intersection of Regular Languages
Theorem
If languages L1, L2 ⊆ Σ∗ are regular then also the language L1 ∩ L2 isregular.
Proof: Let us assume that A1 and A2 are deterministic finite automatasuch that
L1 = L(A1) L2 = L(A2)
Using the described construction, we can construct a deterministic finiteautomaton A such that
L(A) = L(A1) ∩ L(A2) = L1 ∩ L2
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 288 / 569
![Page 485: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/485.jpg)
An Automaton for the Union of Languages
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
0A 1B 2B 3A
2A 1A 0B 3B
a
b
a
b
a
b a
b
a
ba
b a
b a
b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 289 / 569
![Page 486: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/486.jpg)
An Automaton for the Union of Languages
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
0A 1B 2B 3A
2A 1A 0B 3B
a
b
a
b
a
b a
b
a
ba
b a
b a
b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 289 / 569
![Page 487: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/487.jpg)
An Automaton for the Union of Languages
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
0A 1B 2B 3A
2A 1A 0B 3B
a
b
a
b
a
b a
b
a
ba
b a
b a
b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 289 / 569
![Page 488: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/488.jpg)
An Automaton for the Union of Languages
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
0A 1B 2B 3A
2A 1A 0B 3B
a
b
a
b
a
b a
b
a
ba
b a
b a
b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 289 / 569
![Page 489: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/489.jpg)
An Automaton for the Union of Languages
0 1 2 3a b a
b a
b
a, b
A Ba
a
b b
0A 1B 2B 3A
2A 1A 0B 3B
a
b
a
b
a
b a
b
a
ba
b a
b a
b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 289 / 569
![Page 490: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/490.jpg)
Union of Regular Languages
The construction of an automaton A that accepts the union of languagesaccepted by automata A1 and A2, i.e., the language
L(A1) ∪ L(A1)
is almost identical as in the case of the automaton acceptingL(A1) ∩ L(A2).
The only difference is the set of accepting states:
F = (F1 × Q2) ∪ (Q1 × F2)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 290 / 569
![Page 491: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/491.jpg)
Union of Regular Languages
The construction of an automaton A that accepts the union of languagesaccepted by automata A1 and A2, i.e., the language
L(A1) ∪ L(A1)
is almost identical as in the case of the automaton acceptingL(A1) ∩ L(A2).
The only difference is the set of accepting states:
F = (F1 × Q2) ∪ (Q1 × F2)
Theorem
If languages L1, L2 ⊆ Σ∗ are regular then also the language L1 ∪ L2 isregular.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 290 / 569
![Page 492: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/492.jpg)
An Automaton for the Complement of a Language
0 1 2 3a b a
b a
b
a, b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 291 / 569
![Page 493: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/493.jpg)
An Automaton for the Complement of a Language
0 1 2 3a b a
b a
b
a, b
0 1 2 3a b a
b a
b
a, b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 291 / 569
![Page 494: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/494.jpg)
Complement of a Regular Language
Given a DFA A = (Q, Σ, δ, q0,F ) we construct DFAA ′ = (Q, Σ, δ, q0,Q − F ).
It is obvious that for each word w ∈ Σ∗ we have w ∈ L(A ′) iff w 6∈ L(A),i.e.,
L(A ′) = L(A)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 292 / 569
![Page 495: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/495.jpg)
Complement of a Regular Language
Given a DFA A = (Q, Σ, δ, q0,F ) we construct DFAA ′ = (Q, Σ, δ, q0,Q − F ).
It is obvious that for each word w ∈ Σ∗ we have w ∈ L(A ′) iff w 6∈ L(A),i.e.,
L(A ′) = L(A)
Theorem
If a language L is regular then also its complement L is regular.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 292 / 569
![Page 496: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/496.jpg)
Nondeterministic Finite Automaton
1 2
3 4
5
a
b
a
b
a
b
a
b
b
b
The number of transitions going from one state and labelled with thesame symbol can be arbitrary (including zero).
There can be more than one initial state in the automaton.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 293 / 569
![Page 497: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/497.jpg)
Nondeterministic Finite Automaton
1 2
3 4
5
a
b
a
b
a
b
a
b
b
b
1
a b a b b
1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 294 / 569
![Page 498: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/498.jpg)
Nondeterministic Finite Automaton
1 2
3 4
5
a
b
a
b
a
b
a
b
b
b
3
a b a b b
1a−→ 3
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 294 / 569
![Page 499: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/499.jpg)
Nondeterministic Finite Automaton
1 2
3 4
5
a
b
a
b
a
b
a
b
b
b
4
a b a b b
1a−→ 3
b−→ 4
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 294 / 569
![Page 500: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/500.jpg)
Nondeterministic Finite Automaton
1 2
3 4
5
a
b
a
b
a
b
a
b
b
b
2
a b a b b
1a−→ 3
b−→ 4a−→ 2
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 294 / 569
![Page 501: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/501.jpg)
Nondeterministic Finite Automaton
1 2
3 4
5
a
b
a
b
a
b
a
b
b
b
5
a b a b b
1a−→ 3
b−→ 4a−→ 2
b−→ 5
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 294 / 569
![Page 502: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/502.jpg)
Nondeterministic Finite Automaton
1 2
3 4
5
a
b
a
b
a
b
a
b
b
b
5
a b a b b
1a−→ 3
b−→ 4a−→ 2
b−→ 5b−→ 5
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 294 / 569
![Page 503: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/503.jpg)
Nondeterministic Finite Automaton
1 2
3 4
5
a
b
a
b
a
b
a
b
b
b
1
a b a b b
1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 294 / 569
![Page 504: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/504.jpg)
Nondeterministic Finite Automaton
1 2
3 4
5
a
b
a
b
a
b
a
b
b
b
2
a b a b b
1a−→ 2
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 294 / 569
![Page 505: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/505.jpg)
Nondeterministic Finite Automaton
1 2
3 4
5
a
b
a
b
a
b
a
b
b
b
5
a b a b b
1a−→ 2
b−→ 5
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 294 / 569
![Page 506: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/506.jpg)
Nondeterministic Finite Automaton
A nondeterministic finite automaton accepts a given word if there existsat least one computation of the automaton that accepts the word.
YESYESYES YES NONONONONO
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 295 / 569
![Page 507: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/507.jpg)
Nondeterministic Finite Automaton
A nondeterministic finite automaton accepts a given word if there existsat least one computation of the automaton that accepts the word.
YESYESYES YES NONONONONO
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 295 / 569
![Page 508: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/508.jpg)
Nondeterministic Finite Automaton
a b
↔ 1 2, 3, 4 12 − 5
→ 3 − 44 2 3, 5
← 5 − 5
1 3
2 3 4
5 4 3 5
5 3 5 4 5
aa
a
b b b b
b b b b b
Example: A forest representing all possible computations over theword abb.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 296 / 569
![Page 509: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/509.jpg)
Nondeterministic Finite Automaton
Formally, a nondeterministic finite automaton (NFA) is defined asa tuple
(Q, Σ, δ, I ,F )
where:
Q is a finite set of states
Σ is a finite alphabet
δ : Q × Σ→ P(Q) is a transition fuction
I ⊆ Q is a set of initial states
F ⊆ Q is a set of accepting states
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 297 / 569
![Page 510: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/510.jpg)
Transformation of NFA to DFA
1
2 3
bb
a
a, b
a
a a b b a
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 298 / 569
![Page 511: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/511.jpg)
Transformation of NFA to DFA
1
2 3
bb
a
a, b
a
1,2
a a b b a
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 298 / 569
![Page 512: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/512.jpg)
Transformation of NFA to DFA
1
2 3
bb
a
a, b
a
2,3
a a b b a
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 298 / 569
![Page 513: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/513.jpg)
Transformation of NFA to DFA
1
2 3
bb
a
a, b
a
1,2,3
a a b b a
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 298 / 569
![Page 514: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/514.jpg)
Transformation of NFA to DFA
1
2 3
bb
a
a, b
a
2,3
a a b b a
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 298 / 569
![Page 515: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/515.jpg)
Transformation of NFA to DFA
1
2 3
bb
a
a, b
a
3
a a b b a
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 298 / 569
![Page 516: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/516.jpg)
Transformation of NFA to DFA
1
2 3
bb
a
a, b
a
1
a a b b a
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 298 / 569
![Page 517: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/517.jpg)
Transformation of NFA to DFA
1
2 3
bb
a
a, b
a
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 299 / 569
![Page 518: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/518.jpg)
Transformation of NFA to DFA
1
2 3
bb
a
a, b
a
1, 2
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 299 / 569
![Page 519: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/519.jpg)
Transformation of NFA to DFA
1
2 3
bb
a
a, b
a
1, 2 2, 3a
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 299 / 569
![Page 520: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/520.jpg)
Transformation of NFA to DFA
1
2 3
bb
a
a, b
a
1, 2 2, 3a, b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 299 / 569
![Page 521: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/521.jpg)
Transformation of NFA to DFA
1
2 3
bb
a
a, b
a
1, 2 2, 3
1, 2, 3
a, b
a
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 299 / 569
![Page 522: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/522.jpg)
Transformation of NFA to DFA
1
2 3
bb
a
a, b
a
1, 2 2, 3
1, 2, 3
3a, b
a
b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 299 / 569
![Page 523: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/523.jpg)
Transformation of NFA to DFA
1
2 3
bb
a
a, b
a
1, 2 2, 3
1, 2, 3
3a, b
a
b
a
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 299 / 569
![Page 524: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/524.jpg)
Transformation of NFA to DFA
1
2 3
bb
a
a, b
a
1, 2 2, 3
1, 2, 3
3a, b
a
b
a
b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 299 / 569
![Page 525: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/525.jpg)
Transformation of NFA to DFA
1
2 3
bb
a
a, b
a
1, 2 2, 3
1, 2, 3
3
1
a, b
a
b
a
b a
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 299 / 569
![Page 526: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/526.jpg)
Transformation of NFA to DFA
1
2 3
bb
a
a, b
a
1, 2 2, 3
1, 2, 3
3
1
∅a, b
a
b
a
b a
b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 299 / 569
![Page 527: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/527.jpg)
Transformation of NFA to DFA
1
2 3
bb
a
a, b
a
1, 2 2, 3
1, 2, 3
3
1
∅a, b
a
b
a
b a
b
a
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 299 / 569
![Page 528: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/528.jpg)
Transformation of NFA to DFA
1
2 3
bb
a
a, b
a
1, 2 2, 3
1, 2, 3
3
1
∅a, b
a
b
a
b a
b
ab
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 299 / 569
![Page 529: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/529.jpg)
Transformation of NFA to DFA
1
2 3
bb
a
a, b
a
1, 2 2, 3
1, 2, 3
3
1
∅a, b
a
b
a
b a
b
ab
a, b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 299 / 569
![Page 530: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/530.jpg)
Transformation of NFA to DFA
1
2 3
bb
a
a, b
a
1, 2 2, 3
1, 2, 3
3
1
∅a, b
a
b
a
b a
b
ab
a, b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 299 / 569
![Page 531: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/531.jpg)
Transformation of NFA to DFA
a b
↔ 1 − 2, 3→ 2 2, 3 3
3 1 −
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 300 / 569
![Page 532: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/532.jpg)
Transformation of NFA to DFA
a b
↔ 1 − 2, 3→ 2 2, 3 3
3 1 −
a b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 300 / 569
![Page 533: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/533.jpg)
Transformation of NFA to DFA
a b
↔ 1 − 2, 3→ 2 2, 3 3
3 1 −
a b
↔ 1, 2
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 300 / 569
![Page 534: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/534.jpg)
Transformation of NFA to DFA
a b
↔ 1 − 2, 3→ 2 2, 3 3
3 1 −
a b
↔ 1, 2 2, 3
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 300 / 569
![Page 535: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/535.jpg)
Transformation of NFA to DFA
a b
↔ 1 − 2, 3→ 2 2, 3 3
3 1 −
a b
↔ 1, 2 2, 32, 3
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 300 / 569
![Page 536: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/536.jpg)
Transformation of NFA to DFA
a b
↔ 1 − 2, 3→ 2 2, 3 3
3 1 −
a b
↔ 1, 2 2, 3 2, 32, 3
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 300 / 569
![Page 537: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/537.jpg)
Transformation of NFA to DFA
a b
↔ 1 − 2, 3→ 2 2, 3 3
3 1 −
a b
↔ 1, 2 2, 3 2, 32, 3 1, 2, 3
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 300 / 569
![Page 538: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/538.jpg)
Transformation of NFA to DFA
a b
↔ 1 − 2, 3→ 2 2, 3 3
3 1 −
a b
↔ 1, 2 2, 3 2, 32, 3 1, 2, 3
← 1, 2, 3
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 300 / 569
![Page 539: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/539.jpg)
Transformation of NFA to DFA
a b
↔ 1 − 2, 3→ 2 2, 3 3
3 1 −
a b
↔ 1, 2 2, 3 2, 32, 3 1, 2, 3 3
← 1, 2, 3
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 300 / 569
![Page 540: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/540.jpg)
Transformation of NFA to DFA
a b
↔ 1 − 2, 3→ 2 2, 3 3
3 1 −
a b
↔ 1, 2 2, 3 2, 32, 3 1, 2, 3 3
← 1, 2, 33
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 300 / 569
![Page 541: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/541.jpg)
Transformation of NFA to DFA
a b
↔ 1 − 2, 3→ 2 2, 3 3
3 1 −
a b
↔ 1, 2 2, 3 2, 32, 3 1, 2, 3 3
← 1, 2, 3 1, 2, 33
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 300 / 569
![Page 542: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/542.jpg)
Transformation of NFA to DFA
a b
↔ 1 − 2, 3→ 2 2, 3 3
3 1 −
a b
↔ 1, 2 2, 3 2, 32, 3 1, 2, 3 3
← 1, 2, 3 1, 2, 3 2, 33
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 300 / 569
![Page 543: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/543.jpg)
Transformation of NFA to DFA
a b
↔ 1 − 2, 3→ 2 2, 3 3
3 1 −
a b
↔ 1, 2 2, 3 2, 32, 3 1, 2, 3 3
← 1, 2, 3 1, 2, 3 2, 33 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 300 / 569
![Page 544: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/544.jpg)
Transformation of NFA to DFA
a b
↔ 1 − 2, 3→ 2 2, 3 3
3 1 −
a b
↔ 1, 2 2, 3 2, 32, 3 1, 2, 3 3
← 1, 2, 3 1, 2, 3 2, 33 1
← 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 300 / 569
![Page 545: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/545.jpg)
Transformation of NFA to DFA
a b
↔ 1 − 2, 3→ 2 2, 3 3
3 1 −
a b
↔ 1, 2 2, 3 2, 32, 3 1, 2, 3 3
← 1, 2, 3 1, 2, 3 2, 33 1 ∅
← 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 300 / 569
![Page 546: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/546.jpg)
Transformation of NFA to DFA
a b
↔ 1 − 2, 3→ 2 2, 3 3
3 1 −
a b
↔ 1, 2 2, 3 2, 32, 3 1, 2, 3 3
← 1, 2, 3 1, 2, 3 2, 33 1 ∅
← 1∅
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 300 / 569
![Page 547: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/547.jpg)
Transformation of NFA to DFA
a b
↔ 1 − 2, 3→ 2 2, 3 3
3 1 −
a b
↔ 1, 2 2, 3 2, 32, 3 1, 2, 3 3
← 1, 2, 3 1, 2, 3 2, 33 1 ∅
← 1 ∅∅
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 300 / 569
![Page 548: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/548.jpg)
Transformation of NFA to DFA
a b
↔ 1 − 2, 3→ 2 2, 3 3
3 1 −
a b
↔ 1, 2 2, 3 2, 32, 3 1, 2, 3 3
← 1, 2, 3 1, 2, 3 2, 33 1 ∅
← 1 ∅ 2, 3∅
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 300 / 569
![Page 549: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/549.jpg)
Transformation of NFA to DFA
a b
↔ 1 − 2, 3→ 2 2, 3 3
3 1 −
a b
↔ 1, 2 2, 3 2, 32, 3 1, 2, 3 3
← 1, 2, 3 1, 2, 3 2, 33 1 ∅
← 1 ∅ 2, 3∅ ∅ ∅
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 300 / 569
![Page 550: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/550.jpg)
Transformation of NFA to DFA
a b
↔ 1 − 2, 3→ 2 2, 3 3
3 1 −
a b
↔ 1, 2 2, 3 2, 32, 3 1, 2, 3 3
← 1, 2, 3 1, 2, 3 2, 33 1 ∅
← 1 ∅ 2, 3∅ ∅ ∅
a b
↔ 1 2 22 3 4
← 3 3 24 5 6
← 5 6 26 6 6
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 300 / 569
![Page 551: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/551.jpg)
Transformation of NFA to DFA
Remark: When a nondeterministic automaton with n states is transformedinto a deterministic one, the resulting automaton can have 2n states.
For example when we transform an automaton with 20 states, theresulting automaton can have 220 = 1048576 states.
It is often the case that the resulting automaton has far less than 2n
states. However, the worst cases are possible.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 301 / 569
![Page 552: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/552.jpg)
Generalized Nondeterministic Finite Automaton
1 2
3 4
5
a
b
a
b
a
b
ε
b
b
b
1
a b a b b
1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 302 / 569
![Page 553: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/553.jpg)
Generalized Nondeterministic Finite Automaton
1 2
3 4
5
a
b
a
b
a
b
ε
b
b
b
3
a b a b b
1a−→ 3
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 302 / 569
![Page 554: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/554.jpg)
Generalized Nondeterministic Finite Automaton
1 2
3 4
5
a
b
a
b
a
b
ε
b
b
b
4
a b a b b
1a−→ 3
b−→ 4
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 302 / 569
![Page 555: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/555.jpg)
Generalized Nondeterministic Finite Automaton
1 2
3 4
5
a
b
a
b
a
b
ε
b
b
b
1
a b a b b
1a−→ 3
b−→ 4ε−→ 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 302 / 569
![Page 556: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/556.jpg)
Generalized Nondeterministic Finite Automaton
1 2
3 4
5
a
b
a
b
a
b
ε
b
b
b
2
a b a b b
1a−→ 3
b−→ 4ε−→ 1
a−→ 2
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 302 / 569
![Page 557: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/557.jpg)
Generalized Nondeterministic Finite Automaton
1 2
3 4
5
a
b
a
b
a
b
ε
b
b
b
5
a b a b b
1a−→ 3
b−→ 4ε−→ 1
a−→ 2b−→ 5
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 302 / 569
![Page 558: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/558.jpg)
Generalized Nondeterministic Finite Automaton
1 2
3 4
5
a
b
a
b
a
b
ε
b
b
b
5
a b a b b
1a−→ 3
b−→ 4ε−→ 1
a−→ 2b−→ 5
b−→ 5
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 302 / 569
![Page 559: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/559.jpg)
Generalized Nondeterministic Finite Automaton
Compared to a nondeterministic finite automaton, a generalizednondeterministic finite automaton has the so called ε-transitions, i.e.,transitions labelled with symbol ε.
When ε-transition is performed, only the state of the control unit ischanged but the head on the tape is not moved.
Remark: The computations of a generalized nondeterministic automatoncan be of an arbitrary length, even infinite (if the graph of the automatoncontains a cycle consisting only of ε-transitions) regardless of the length ofthe word on the tape.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 303 / 569
![Page 560: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/560.jpg)
Generalized Nondeterministic Finite Automaton
Formally, a generalized nondeterministic finite automaton (GNFA) isdefined as a tuple
(Q, Σ, δ, I ,F )
where:
Q is a finite set of states
Σ is a finite alphabet
δ : Q × (Σ ∪ ε)→ P(Q) is a transition function
I ⊆ Q is a set of initial states
F ⊆ Q is a set of accepting states
Remark: NFA can be viewed as a special case of GNFA, where δ(q, ε) = ∅for all q ∈ Q.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 304 / 569
![Page 561: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/561.jpg)
Transformation to a Deterministic Finite Automaton
A generalized nondeterministic finite automaton can be transformed intoa deterministic one using a similar construction as a nondeterministic finiteautomaton with the difference that we add to sets of states also all statesthat are reachable from already added states by some sequence ofε-transitions.
q
ε
ε
ε
ε
ε
ε
ε
ε
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 305 / 569
![Page 562: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/562.jpg)
1
2 3
bε
aa, b
a
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 306 / 569
![Page 563: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/563.jpg)
1
2 3
bε
aa, b
a
1, 3
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 306 / 569
![Page 564: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/564.jpg)
1
2 3
bε
aa, b
a
1, 3
a
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 306 / 569
![Page 565: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/565.jpg)
1
2 3
bε
aa, b
a
1, 3
2
a
b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 306 / 569
![Page 566: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/566.jpg)
1
2 3
bε
aa, b
a
1, 3
2 2, 3
a
b
a
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 306 / 569
![Page 567: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/567.jpg)
1
2 3
bε
aa, b
a
1, 3
2 2, 3
3
a
b
a
b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 306 / 569
![Page 568: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/568.jpg)
1
2 3
bε
aa, b
a
1, 3
2 2, 3
3
1, 2, 3
a
b
a
b
a
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 306 / 569
![Page 569: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/569.jpg)
1
2 3
bε
aa, b
a
1, 3
2 2, 3
3
1, 2, 3
a
b
a
b
a
b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 306 / 569
![Page 570: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/570.jpg)
1
2 3
bε
aa, b
a
1, 3
2 2, 3
3
1, 2, 3
a
b
a
b
a
b
a
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 306 / 569
![Page 571: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/571.jpg)
1
2 3
bε
aa, b
a
1, 3
2 2, 3
3
1, 2, 3
∅
a
b
a
b
a
b
a b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 306 / 569
![Page 572: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/572.jpg)
1
2 3
bε
aa, b
a
1, 3
2 2, 3
3
1, 2, 3
∅
a
b
a
b
a
b
a b
a
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 306 / 569
![Page 573: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/573.jpg)
1
2 3
bε
aa, b
a
1, 3
2 2, 3
3
1, 2, 3
∅
a
b
a
b
a
b
a b
a
b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 306 / 569
![Page 574: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/574.jpg)
1
2 3
bε
aa, b
a
1, 3
2 2, 3
3
1, 2, 3
∅
a
b
a
b
a
b
a b
a
b
a, b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 306 / 569
![Page 575: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/575.jpg)
1
2 3
bε
aa, b
a
1, 3
2 2, 3
3
1, 2, 3
∅
a
b
a
b
a
b
a b
a
b
a, b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 306 / 569
![Page 576: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/576.jpg)
Transformation of GNFA to DFA
Before formally describing the transition of GNFA to DFA, let us introducesome auxiliary definitions.
Let us assume some given GNFA A = (Q, Σ, δ, I ,F ).
Let us define the function δ : P(Q)× (Σ∪ ε)→ P(Q) so that for K ⊆ Q
and a ∈ Σ ∪ ε there is
δ(K , a) =⋃
q∈K
δ(q, a)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 307 / 569
![Page 577: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/577.jpg)
Transformation of GNFA to DFA
For K ⊆ Q, let Clε(K ) be the all states reachable from the states fromthe set K by some arbitrary sequence of ε-transitions.
This means that the function Clε : P(Q)→ P(Q) is defined so that forK ⊆ Q is Clε(K ) the smallest (with respect to inclusion) set satisfying thefollowing two conditions:
K ⊆ Clε(K )
For each q ∈ Clε(K ) it holds that δ(q, ε) ⊆ Clε(K ).
Remark: Let us note that Clε(Clε(K )) = Clε(K ) for arbitrary K .
Let us also note that in the case of NFA (where δ(q, ε) = ∅ for eachq ∈ Q) is Clε(K ) = K .
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 308 / 569
![Page 578: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/578.jpg)
Transformation of GNFA to DFA
For a given GNFA A = (Q, Σ, δ, I ,F ) we can now construct DFAA ′ = (Q ′, Σ, δ ′, q ′
0,F′), where:
Q ′ = P(Q) (so K ∈ Q ′ means that K ⊆ Q)
δ ′ : Q ′ × Σ→ Q ′ is defined so that for K ∈ Q ′ and a ∈ Σ:
δ ′(K , a) = Clε(δ(Clε(K ), a))
q ′0 = Clε(I )
F ′ = K ∈ Q ′ | Clε(K ) ∩ F 6= ∅
It is not difficult to verify that L(A) = L(A ′).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 309 / 569
![Page 579: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/579.jpg)
Concatenation of Languages
Σ = a, b, c, d
a
bA1:
c
dA2:
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 310 / 569
![Page 580: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/580.jpg)
Concatenation of Languages
Σ = a, b, c, d
a
bA1:
c
dA2:
a
b
c
dε
A:
L(A) = L(A1) · L(A2)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 310 / 569
![Page 581: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/581.jpg)
Concatenation of Languages
Σ = a, b, c, d
a
bA1:
c
dA2:
An incorrect construction:
a
b
c
dA:
acdbac ∈ L(A) but acdbac 6∈ L(A1) · L(A2)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 310 / 569
![Page 582: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/582.jpg)
Concatenation of Languages
A1 A2
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 311 / 569
![Page 583: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/583.jpg)
Concatenation of Languages
A1 A2
A
A1 A2
εεε
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 311 / 569
![Page 584: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/584.jpg)
Iteration of a Language
A1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 312 / 569
![Page 585: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/585.jpg)
Iteration of a Language
A1
A
A1
εε
ε
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 312 / 569
![Page 586: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/586.jpg)
Union of Languages
An alternative construction for the union of languages:
A1
A2
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 313 / 569
![Page 587: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/587.jpg)
Union of Languages
An alternative construction for the union of languages:
A1
A2
A
A1
A2
ε
ε
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 313 / 569
![Page 588: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/588.jpg)
Closure Properties of the Class of Regular Languages
The set of (all) regular languages is closed with respect to:
union
intersection
complement
concatenation
iteration
. . .
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 314 / 569
![Page 589: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/589.jpg)
Transformation of a Regular Expression to a FiniteAutomaton
Proposition
Every language that can be represented by a regular expression is regular(i.e., it is accepted by some finite automaton).
Proof: It is sufficient to show how to construct for a given regularexpression α a finite automaton accepting the language [α].
The construction is recursive and proceeds by the structure of theexpression α:
If α is a elementary expression (i.e., ∅, ε or a):We construct the corresponding automaton directly.
If α is of the form (β+ γ), (β · γ) or (β∗):We construct automata accepting languages [β] and [γ] recursively.Using these two automata, we construct the automaton accepting thelanguage [α].
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 315 / 569
![Page 590: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/590.jpg)
Transformation of a Regular Expression to a FiniteAutomaton
The automata for the elementary expressions:
∅ ε a
a
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 316 / 569
![Page 591: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/591.jpg)
Transformation of a Regular Expression to a FiniteAutomaton
The automata for the elementary expressions:
∅ ε a
a
The construction for the union:
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 316 / 569
![Page 592: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/592.jpg)
Transformation of a Regular Expression to a FiniteAutomaton
The automata for the elementary expressions:
∅ ε a
a
The construction for the union:
ε
ε
ε
ε
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 316 / 569
![Page 593: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/593.jpg)
Transformation of a Regular Expression to a FiniteAutomaton
The construction for the concatenation:
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 317 / 569
![Page 594: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/594.jpg)
Transformation of a Regular Expression to a FiniteAutomaton
The construction for the concatenation:
ε
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 317 / 569
![Page 595: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/595.jpg)
Transformation of a Regular Expression to a FiniteAutomaton
The construction for the concatenation:
ε
The construction for the iteration:
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 317 / 569
![Page 596: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/596.jpg)
Transformation of a Regular Expression to a FiniteAutomaton
The construction for the concatenation:
ε
The construction for the iteration:
ε ε
ε
ε
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 317 / 569
![Page 597: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/597.jpg)
Transformation of a Regular Expression to a FiniteAutomaton
Example: The construction of an automaton for expression ((0+ 1) · 1)∗:
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 318 / 569
![Page 598: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/598.jpg)
Transformation of a Regular Expression to a FiniteAutomaton
Example: The construction of an automaton for expression ((0+ 1) · 1)∗:
0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 318 / 569
![Page 599: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/599.jpg)
Transformation of a Regular Expression to a FiniteAutomaton
Example: The construction of an automaton for expression ((0+ 1) · 1)∗:
0
1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 318 / 569
![Page 600: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/600.jpg)
Transformation of a Regular Expression to a FiniteAutomaton
Example: The construction of an automaton for expression ((0+ 1) · 1)∗:
0
1
ε
ε
ε
ε
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 318 / 569
![Page 601: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/601.jpg)
Transformation of a Regular Expression to a FiniteAutomaton
Example: The construction of an automaton for expression ((0+ 1) · 1)∗:
0
1
ε
ε
ε
ε
1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 318 / 569
![Page 602: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/602.jpg)
Transformation of a Regular Expression to a FiniteAutomaton
Example: The construction of an automaton for expression ((0+ 1) · 1)∗:
0
1
ε
ε
ε
ε
1ε
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 318 / 569
![Page 603: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/603.jpg)
Transformation of a Regular Expression to a FiniteAutomaton
Example: The construction of an automaton for expression ((0+ 1) · 1)∗:
0
1
ε
ε
ε
ε
1εε ε
ε
ε
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 318 / 569
![Page 604: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/604.jpg)
Transformation of a Regular Expression to a FiniteAutomaton
If an expression α consists of n symbols (not counting parenthesis) thenthe resulting automaton has:
at most 2n states,
at most 4n transitions.
Remark: By transforming the generalized nondeterministic automatoninto a deterministic one, the number of states can grow exponentially,i.e., the resulting automaton can have up to 22n = 4n states.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 319 / 569
![Page 605: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/605.jpg)
Transformation of an Automaton to a Regular Expression
Proposition
Every regular language can be represented by some regular expression.
Proof: It is sufficient to show how to construct for a given finiteautomaton A a regular expression α such that [α] = L(A).
We modify A in such a way that ensures it has exactly one initial andexactly one accepting state.
Its states will be removed one by one.
Its transitions will be labelled with regular expressions.
The resulting automaton will have only two states – the initial andthe accepting, and only one transition labelled with the resultingregular expression.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 320 / 569
![Page 606: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/606.jpg)
Transformation of an Automaton to a Regular Expression
The main idea: If a state q is removed, for every pair of remaining statesqj , qk we extend the label on a transition from qj to qk by a regularexpression representing paths from qj to qk going through q.
qj qk
q
α
β
γ
δ
After removing of the state q:
qj qkα+ βγ∗δ
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 321 / 569
![Page 607: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/607.jpg)
Transformation of an Automaton to a Regular Expression
Example:
1 2
3
a
b
a
b
b
a
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 322 / 569
![Page 608: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/608.jpg)
Transformation of an Automaton to a Regular Expression
Example:
1 2
3
s f
a
b
a
b
b
a
ε ε
ε
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 322 / 569
![Page 609: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/609.jpg)
Transformation of an Automaton to a Regular Expression
Example:
2
3
s f
b+ aa
a+ ba
ε
ε
a
b
ab
bb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 322 / 569
![Page 610: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/610.jpg)
Transformation of an Automaton to a Regular Expression
Example:
3
s f
ε+ (a+ ba)(b+ aa)∗b+ a(b+ aa)∗ab
bb+ (a+ ba)(b+ aa)∗ab
a(b+ aa)∗
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 322 / 569
![Page 611: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/611.jpg)
Transformation of an Automaton to a Regular Expression
Example:
s f
a(b+ aa)∗+
(b+ a(b+ aa)∗ab)
(bb+ (a+ ba)(b+ aa)∗ab)∗
(ε+ (a+ ba)(b+ aa)∗)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 322 / 569
![Page 612: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/612.jpg)
Equivalence of Finite Automata and Regular Expressions
Theorem
A language is regular iff it can be represented by a regular expression.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 323 / 569
![Page 613: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/613.jpg)
Context-Free Grammars
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 324 / 569
![Page 614: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/614.jpg)
Context-Free Grammars
Example: We would like to describe a language of arithmetic expressions,containing expressions such as:
175 (9+15) (((10-4)*((1+34)+2))/(3+(-37)))
For simplicity we assume that:
Expressions are fully parenthesized.
The only arithmetic operations are “+”, “-”, “*”, “/”and unary “-”.
Values of operands are natural numbers written in decimal —a number is represented as a non-empty sequence of digits.
Alphabet: Σ = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, +, -, *, /, (, )
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 325 / 569
![Page 615: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/615.jpg)
Context-Free Grammars
Example (cont.): A description by an inductive definition:
Digit is any of characters 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
Number is a non-empty sequence of digits, i.e.:
If α is a digit then α is a number.
If α is a digit and β is a number then also αβ is a number.
Expression is a sequence of symbols constructed according to thefollowing rules:
If α is a number then α is an expression.If α is an expression then also (-α) is an expression.If α and β are expressions then also (α+β) is an expression.If α and β are expressions then also (α-β) is an expression.If α and β are expressions then also (α*β) is an expression.If α and β are expressions then also (α/β) is an expression.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 326 / 569
![Page 616: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/616.jpg)
Context-Free Grammars
Example (cont.): The same information that was described by theprevious inductive definition can be represented by a context-freegrammar:
New auxiliary symbols, called nonterminals, are introduced:
D — stands for an arbitrary digit
C — stands for an arbitrary number
E — stands for an arbitrary expression
D → 0
D → 1
D → 2
D → 3
D → 4
D → 5
D → 6
D → 7
D → 8
D → 9
C → D
C → DC
E → C
E → (-E)
E → (E+E)
E → (E-E)
E → (E*E)
E → (E/E)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 327 / 569
![Page 617: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/617.jpg)
Context-Free Grammars
Example (cont.): Written in a more succinct way:
D → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
C → D | DC
E → C | (-E) | (E+E) | (E-E) | (E*E) | (E/E)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 328 / 569
![Page 618: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/618.jpg)
Context-Free Grammars
Example: A language where words are (possibly empty) sequences ofexpressions described in the previous example, where individual expressionsare separated by commas (the alphabet must be extended withsymbol “,”):
S → T | ε
T → E | E,T
D → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
C → D | DC
E → C | (-E) | (E+E) | (E-E) | (E*E) | (E/E)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 329 / 569
![Page 619: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/619.jpg)
Context-Free Grammars
Example: Statements of some programming language (a fragment ofa grammar):
S → E; | T | if (E) S | if (E) S else S
| while (E) S | do S while (E); | for (F; F; F) S
| return F;
T → U U → ε | SU
F → ε | E
E → . . .
Remark:
S — statement
T — block of statements
U — sequence of statements
E — expression
F — optional expression that can be omitted
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 330 / 569
![Page 620: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/620.jpg)
Context-Free Grammars
Formally, a context-free grammar is a tuple
G = (Π,Σ, S ,P)
where:
Π is a finite set of nonterminal symbols (nonterminals)
Σ is a finite set of terminal symbols (terminals),where Π ∩ Σ = ∅S ∈ Π is an initial nonterminal
P ⊆ Π× (Π ∪ Σ)∗ is a finite set of rewrite rules
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 331 / 569
![Page 621: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/621.jpg)
Context-Free Grammars
Remarks:
We will use uppercase letters A, B , C , . . . to denote nonterminalsymbols.
We will use lowercase letters a, b, c , . . . or digits 0, 1, 2, . . . todenote terminal symbols.
We will use lowercase Greek letters α, β, γ, . . . do denote stringsfrom (Π ∪ Σ)∗.
We will use the following notation for rules instead of (A, α)
A→ α
A – left-hand side of the ruleα – right-hand side of the rule
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 332 / 569
![Page 622: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/622.jpg)
Context-Free Grammars
Example: Grammar G = (Π,Σ, S ,P) where
Π = A,B ,C
Σ = a, b
S = A
P contains rulesA → aBBb
A → AaA
B → ε
B → bCA
C → AB
C → a
C → b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 333 / 569
![Page 623: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/623.jpg)
Context-Free Grammars
Remark: If we have more rules with the same left-hand side, as forexample
A → α1 A → α2 A → α3
we can write them in a more succinct way as
A → α1 | α2 | α3
For example, the rules of the grammar from the previous slide can bewritten as
A → aBBb | AaA
B → ε | bCA
C → AB | a | b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 334 / 569
![Page 624: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/624.jpg)
Context-Free Grammars
Grammars are used for generating words.
Example: G = (Π,Σ,A,P) where Π = A,B ,C , Σ = a, b, and P
contains rulesA → aBBb | AaA
B → ε | bCA
C → AB | a | b
For example, the word abbabb can be in grammar G generated as follows:
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 335 / 569
![Page 625: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/625.jpg)
Context-Free Grammars
Grammars are used for generating words.
Example: G = (Π,Σ,A,P) where Π = A,B ,C , Σ = a, b, and P
contains rulesA → aBBb | AaA
B → ε | bCA
C → AB | a | b
For example, the word abbabb can be in grammar G generated as follows:
A
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 335 / 569
![Page 626: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/626.jpg)
Context-Free Grammars
Grammars are used for generating words.
Example: G = (Π,Σ,A,P) where Π = A,B ,C , Σ = a, b, and P
contains rulesA → aBBb | AaA
B → ε | bCA
C → AB | a | b
For example, the word abbabb can be in grammar G generated as follows:
A
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 335 / 569
![Page 627: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/627.jpg)
Context-Free Grammars
Grammars are used for generating words.
Example: G = (Π,Σ,A,P) where Π = A,B ,C , Σ = a, b, and P
contains rulesA → aBBb | AaA
B → ε | bCA
C → AB | a | b
For example, the word abbabb can be in grammar G generated as follows:
A⇒ aBBb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 335 / 569
![Page 628: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/628.jpg)
Context-Free Grammars
Grammars are used for generating words.
Example: G = (Π,Σ,A,P) where Π = A,B ,C , Σ = a, b, and P
contains rulesA → aBBb | AaA
B → ε | bCA
C → AB | a | b
For example, the word abbabb can be in grammar G generated as follows:
A⇒ aBBb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 335 / 569
![Page 629: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/629.jpg)
Context-Free Grammars
Grammars are used for generating words.
Example: G = (Π,Σ,A,P) where Π = A,B ,C , Σ = a, b, and P
contains rulesA → aBBb | AaA
B → ε | bCA
C → AB | a | b
For example, the word abbabb can be in grammar G generated as follows:
A⇒ aBBb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 335 / 569
![Page 630: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/630.jpg)
Context-Free Grammars
Grammars are used for generating words.
Example: G = (Π,Σ,A,P) where Π = A,B ,C , Σ = a, b, and P
contains rulesA → aBBb | AaA
B → ε | bCA
C → AB | a | b
For example, the word abbabb can be in grammar G generated as follows:
A⇒ aBBb ⇒ abCABb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 335 / 569
![Page 631: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/631.jpg)
Context-Free Grammars
Grammars are used for generating words.
Example: G = (Π,Σ,A,P) where Π = A,B ,C , Σ = a, b, and P
contains rulesA → aBBb | AaA
B → ε | bCA
C → AB | a | b
For example, the word abbabb can be in grammar G generated as follows:
A⇒ aBBb ⇒ abCABb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 335 / 569
![Page 632: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/632.jpg)
Context-Free Grammars
Grammars are used for generating words.
Example: G = (Π,Σ,A,P) where Π = A,B ,C , Σ = a, b, and P
contains rulesA → aBBb | AaA
B → ε | bCA
C → AB | a | b
For example, the word abbabb can be in grammar G generated as follows:
A⇒ aBBb ⇒ abCABb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 335 / 569
![Page 633: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/633.jpg)
Context-Free Grammars
Grammars are used for generating words.
Example: G = (Π,Σ,A,P) where Π = A,B ,C , Σ = a, b, and P
contains rulesA → aBBb | AaA
B → ε | bCA
C → AB | a | b
For example, the word abbabb can be in grammar G generated as follows:
A⇒ aBBb ⇒ abCABb ⇒ abCaBBbBb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 335 / 569
![Page 634: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/634.jpg)
Context-Free Grammars
Grammars are used for generating words.
Example: G = (Π,Σ,A,P) where Π = A,B ,C , Σ = a, b, and P
contains rulesA → aBBb | AaA
B → ε | bCA
C → AB | a | b
For example, the word abbabb can be in grammar G generated as follows:
A⇒ aBBb ⇒ abCABb ⇒ abCaBBbBb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 335 / 569
![Page 635: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/635.jpg)
Context-Free Grammars
Grammars are used for generating words.
Example: G = (Π,Σ,A,P) where Π = A,B ,C , Σ = a, b, and P
contains rulesA → aBBb | AaA
B → ε | bCA
C → AB | a | b
For example, the word abbabb can be in grammar G generated as follows:
A⇒ aBBb ⇒ abCABb ⇒ abCaBBbBb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 335 / 569
![Page 636: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/636.jpg)
Context-Free Grammars
Grammars are used for generating words.
Example: G = (Π,Σ,A,P) where Π = A,B ,C , Σ = a, b, and P
contains rulesA → aBBb | AaA
B → ε | bCA
C → AB | a | b
For example, the word abbabb can be in grammar G generated as follows:
A⇒ aBBb ⇒ abCABb ⇒ abCaBBbBb ⇒ abCaBbBb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 335 / 569
![Page 637: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/637.jpg)
Context-Free Grammars
Grammars are used for generating words.
Example: G = (Π,Σ,A,P) where Π = A,B ,C , Σ = a, b, and P
contains rulesA → aBBb | AaA
B → ε | bCA
C → AB | a | b
For example, the word abbabb can be in grammar G generated as follows:
A⇒ aBBb ⇒ abCABb ⇒ abCaBBbBb ⇒ abCaBbBb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 335 / 569
![Page 638: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/638.jpg)
Context-Free Grammars
Grammars are used for generating words.
Example: G = (Π,Σ,A,P) where Π = A,B ,C , Σ = a, b, and P
contains rulesA → aBBb | AaA
B → ε | bCA
C → AB | a | b
For example, the word abbabb can be in grammar G generated as follows:
A⇒ aBBb ⇒ abCABb ⇒ abCaBBbBb ⇒ abCaBbBb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 335 / 569
![Page 639: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/639.jpg)
Context-Free Grammars
Grammars are used for generating words.
Example: G = (Π,Σ,A,P) where Π = A,B ,C , Σ = a, b, and P
contains rulesA → aBBb | AaA
B → ε | bCA
C → AB | a | b
For example, the word abbabb can be in grammar G generated as follows:
A⇒ aBBb ⇒ abCABb ⇒ abCaBBbBb ⇒ abCaBbBb ⇒ abbaBbBb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 335 / 569
![Page 640: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/640.jpg)
Context-Free Grammars
Grammars are used for generating words.
Example: G = (Π,Σ,A,P) where Π = A,B ,C , Σ = a, b, and P
contains rulesA → aBBb | AaA
B → ε | bCA
C → AB | a | b
For example, the word abbabb can be in grammar G generated as follows:
A⇒ aBBb ⇒ abCABb ⇒ abCaBBbBb ⇒ abCaBbBb ⇒ abbaBbBb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 335 / 569
![Page 641: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/641.jpg)
Context-Free Grammars
Grammars are used for generating words.
Example: G = (Π,Σ,A,P) where Π = A,B ,C , Σ = a, b, and P
contains rulesA → aBBb | AaA
B → ε | bCA
C → AB | a | b
For example, the word abbabb can be in grammar G generated as follows:
A⇒ aBBb ⇒ abCABb ⇒ abCaBBbBb ⇒ abCaBbBb ⇒ abbaBbBb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 335 / 569
![Page 642: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/642.jpg)
Context-Free Grammars
Grammars are used for generating words.
Example: G = (Π,Σ,A,P) where Π = A,B ,C , Σ = a, b, and P
contains rulesA → aBBb | AaA
B → ε | bCA
C → AB | a | b
For example, the word abbabb can be in grammar G generated as follows:
A⇒ aBBb ⇒ abCABb ⇒ abCaBBbBb ⇒ abCaBbBb ⇒ abbaBbBb ⇒abbaBbb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 335 / 569
![Page 643: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/643.jpg)
Context-Free Grammars
Grammars are used for generating words.
Example: G = (Π,Σ,A,P) where Π = A,B ,C , Σ = a, b, and P
contains rulesA → aBBb | AaA
B → ε | bCA
C → AB | a | b
For example, the word abbabb can be in grammar G generated as follows:
A⇒ aBBb ⇒ abCABb ⇒ abCaBBbBb ⇒ abCaBbBb ⇒ abbaBbBb ⇒abbaBbb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 335 / 569
![Page 644: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/644.jpg)
Context-Free Grammars
Grammars are used for generating words.
Example: G = (Π,Σ,A,P) where Π = A,B ,C , Σ = a, b, and P
contains rulesA → aBBb | AaA
B → ε | bCA
C → AB | a | b
For example, the word abbabb can be in grammar G generated as follows:
A⇒ aBBb ⇒ abCABb ⇒ abCaBBbBb ⇒ abCaBbBb ⇒ abbaBbBb ⇒abbaBbb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 335 / 569
![Page 645: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/645.jpg)
Context-Free Grammars
Grammars are used for generating words.
Example: G = (Π,Σ,A,P) where Π = A,B ,C , Σ = a, b, and P
contains rulesA → aBBb | AaA
B → ε | bCA
C → AB | a | b
For example, the word abbabb can be in grammar G generated as follows:
A⇒ aBBb ⇒ abCABb ⇒ abCaBBbBb ⇒ abCaBbBb ⇒ abbaBbBb ⇒abbaBbb ⇒ abbabb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 335 / 569
![Page 646: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/646.jpg)
Context-Free Grammars
Grammars are used for generating words.
Example: G = (Π,Σ,A,P) where Π = A,B ,C , Σ = a, b, and P
contains rulesA → aBBb | AaA
B → ε | bCA
C → AB | a | b
For example, the word abbabb can be in grammar G generated as follows:
A⇒ aBBb ⇒ abCABb ⇒ abCaBBbBb ⇒ abCaBbBb ⇒ abbaBbBb ⇒abbaBbb ⇒ abbabb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 335 / 569
![Page 647: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/647.jpg)
Context-Free Grammars
On strings from (Π ∪ Σ)∗ we define relation ⇒⊆ (Π ∪ Σ)∗ × (Π ∪ Σ)∗ suchthat
α⇒ α ′
iff α = β1Aβ2 and α ′ = β1γβ2 for some β1, β2, γ ∈ (Π ∪ Σ)∗ and A ∈ Πwhere (A → γ) ∈ P .
Example: If (B → bCA) ∈ P then
aCBbA⇒ aCbCAbA
Remark: Informally, α⇒ α ′ means that it is possible to derive α ′ from α
by one step where an occurrence of some nonterminal A in α is replacedwith the right-hand side of some rule A → γ with A on the left-hand side.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 336 / 569
![Page 648: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/648.jpg)
Context-Free Grammars
On strings from (Π ∪ Σ)∗ we define relation ⇒⊆ (Π ∪ Σ)∗ × (Π ∪ Σ)∗ suchthat
α⇒ α ′
iff α = β1Aβ2 and α ′ = β1γβ2 for some β1, β2, γ ∈ (Π ∪ Σ)∗ and A ∈ Πwhere (A → γ) ∈ P .
Example: If (B → bCA) ∈ P then
aCBbA⇒ aCbCAbA
Remark: Informally, α⇒ α ′ means that it is possible to derive α ′ from α
by one step where an occurrence of some nonterminal A in α is replacedwith the right-hand side of some rule A → γ with A on the left-hand side.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 336 / 569
![Page 649: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/649.jpg)
Context-Free Grammars
A derivation of length n is a sequence β0, β1, β2, · · · , βn, whereβi ∈ (Π ∪ Σ)∗, and where βi−1 ⇒ βi for all 1 ≤ i ≤ n, which can bewritten more succinctly as
β0 ⇒ β1 ⇒ β2 ⇒ . . .⇒ βn−1 ⇒ βn
The fact that for given α,α ′ ∈ (Π ∪ Σ)∗ and n ∈ N there exists somederivation β0 ⇒ β1 ⇒ β2 ⇒ . . .⇒ βn−1 ⇒ βn, where α = β0 andα ′ = βn, is denoted
α⇒n α ′
The fact that α⇒n α ′ for some n ≥ 0, is denoted
α⇒∗ α ′
Remark: Relation ⇒∗ is the reflexive and transitive closure of relation ⇒(i.e., the smallest reflexive and transitive relation containing relation ⇒).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 337 / 569
![Page 650: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/650.jpg)
Context-Free Grammars
Sentential forms are those α ∈ (Π ∪ Σ)∗, for which
S ⇒∗ α
where S is the initial nonterminal.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 338 / 569
![Page 651: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/651.jpg)
Context-Free Grammars
A language L(G ) generated by a grammar G = (Π,Σ, S ,P) is the set ofall words over alphabet Σ that can be derived by some derivation from theinitial nonterminal S using rules from P , i.e.,
L(G ) = w ∈ Σ∗ | S ⇒∗ w
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 339 / 569
![Page 652: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/652.jpg)
Context-Free Grammars
Example: We want to construct a grammar generating the language
L = anbn | n ≥ 0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 340 / 569
![Page 653: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/653.jpg)
Context-Free Grammars
Example: We want to construct a grammar generating the language
L = anbn | n ≥ 0
Grammar G = (Π,Σ, S ,P) where Π = S, Σ = a, b, and P contains
S → ε | aSb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 340 / 569
![Page 654: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/654.jpg)
Context-Free Grammars
Example: We want to construct a grammar generating the language
L = anbn | n ≥ 0
Grammar G = (Π,Σ, S ,P) where Π = S, Σ = a, b, and P contains
S → ε | aSb
S ⇒ ε
S ⇒ aSb ⇒ ab
S ⇒ aSb ⇒ aaSbb ⇒ aabb
S ⇒ aSb ⇒ aaSbb ⇒ aaaSbbb ⇒ aaabbb
S ⇒ aSb ⇒ aaSbb ⇒ aaaSbbb ⇒ aaaaSbbbb ⇒ aaaabbbb
· · ·
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 340 / 569
![Page 655: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/655.jpg)
Context-Free Grammars
Example: We want to construct a grammar generating the languageconsisting of all palindroms over the alphabet a, b, i.e.,
L = w ∈ a, b∗ | w = wR
Remark: wR denotes the reverse of a word w , i.e., the word w writtenbackwards.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 341 / 569
![Page 656: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/656.jpg)
Context-Free Grammars
Example: We want to construct a grammar generating the languageconsisting of all palindroms over the alphabet a, b, i.e.,
L = w ∈ a, b∗ | w = wR
Remark: wR denotes the reverse of a word w , i.e., the word w writtenbackwards.
Solution:
S → ε | a | b | aSa | bSb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 341 / 569
![Page 657: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/657.jpg)
Context-Free Grammars
Example: We want to construct a grammar generating the languageconsisting of all palindroms over the alphabet a, b, i.e.,
L = w ∈ a, b∗ | w = wR
Remark: wR denotes the reverse of a word w , i.e., the word w writtenbackwards.
Solution:
S → ε | a | b | aSa | bSb
S ⇒ aSa⇒ abSba⇒ abaSaba⇒ abaaaba
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 341 / 569
![Page 658: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/658.jpg)
Context-Free Grammars
Example: We want to construct a grammar generating the language L
consisting of all correctly parenthesised sequences of symbols ‘(’ and ‘)’.
For example (()())(()) ∈ L but )()) 6∈ L.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 342 / 569
![Page 659: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/659.jpg)
Context-Free Grammars
Example: We want to construct a grammar generating the language L
consisting of all correctly parenthesised sequences of symbols ‘(’ and ‘)’.
For example (()())(()) ∈ L but )()) 6∈ L.
Solution:
S → ε | (S) | SS
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 342 / 569
![Page 660: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/660.jpg)
Context-Free Grammars
Example: We want to construct a grammar generating the language L
consisting of all correctly parenthesised sequences of symbols ‘(’ and ‘)’.
For example (()())(()) ∈ L but )()) 6∈ L.
Solution:
S → ε | (S) | SS
S ⇒ SS ⇒ (S)S ⇒ (S)(S)⇒ (SS)(S)⇒ ((S)S)(S)⇒(()S)(S)⇒ (()(S))(S)⇒ (()())(S)⇒ (()())((S))⇒(()())(())
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 342 / 569
![Page 661: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/661.jpg)
Context-Free Grammars
Example: We want to construct a grammar generating the language L
consisting of all correctly constructed arithmetic experessions whereoperands are always of the form ‘a’ and where symbols + and ∗ can beused as operators.
For example (a + a) ∗ a + (a ∗ a) ∈ L.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 343 / 569
![Page 662: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/662.jpg)
Context-Free Grammars
Example: We want to construct a grammar generating the language L
consisting of all correctly constructed arithmetic experessions whereoperands are always of the form ‘a’ and where symbols + and ∗ can beused as operators.
For example (a + a) ∗ a + (a ∗ a) ∈ L.
Solution:
E → a | E + E | E ∗ E | (E )
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 343 / 569
![Page 663: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/663.jpg)
Context-Free Grammars
Example: We want to construct a grammar generating the language L
consisting of all correctly constructed arithmetic experessions whereoperands are always of the form ‘a’ and where symbols + and ∗ can beused as operators.
For example (a + a) ∗ a + (a ∗ a) ∈ L.
Solution:
E → a | E + E | E ∗ E | (E )
E ⇒ E + E ⇒ E ∗ E + E ⇒ (E ) ∗ E + E ⇒ (E + E ) ∗ E + E ⇒(a+E ) ∗E +E ⇒ (a+ a) ∗E +E ⇒ (a+ a) ∗ a+E ⇒ (a+ a) ∗ a+(E )⇒(a + a) ∗ a + (E ∗ E )⇒ (a + a) ∗ a + (a ∗ E )⇒ (a + a) ∗ a + (a ∗ a)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 343 / 569
![Page 664: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/664.jpg)
Derivation Tree
A → aBBb | AaA
B → ε | bCA
C → AB | a | b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 344 / 569
![Page 665: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/665.jpg)
Derivation Tree
A → aBBb | AaA
B → ε | bCA
C → AB | a | b
A
A
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 344 / 569
![Page 666: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/666.jpg)
Derivation Tree
A → aBBb | AaA
B → ε | bCA
C → AB | a | b
A
A
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 344 / 569
![Page 667: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/667.jpg)
Derivation Tree
A → aBBb | AaA
B → ε | bCA
C → AB | a | b
A
a B B b
A⇒ aBBb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 344 / 569
![Page 668: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/668.jpg)
Derivation Tree
A → aBBb | AaA
B → ε | bCA
C → AB | a | b
A
a B B b
A⇒ aBBb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 344 / 569
![Page 669: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/669.jpg)
Derivation Tree
A → aBBb | AaA
B → ε | bCA
C → AB | a | b
A
a B B b
A⇒ aBBb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 344 / 569
![Page 670: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/670.jpg)
Derivation Tree
A → aBBb | AaA
B → ε | bCA
C → AB | a | b
A
a B
b C A
B b
A⇒ aBBb ⇒ abCABb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 344 / 569
![Page 671: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/671.jpg)
Derivation Tree
A → aBBb | AaA
B → ε | bCA
C → AB | a | b
A
a B
b C A
B b
A⇒ aBBb ⇒ abCABb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 344 / 569
![Page 672: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/672.jpg)
Derivation Tree
A → aBBb | AaA
B → ε | bCA
C → AB | a | b
A
a B
b C A
B b
A⇒ aBBb ⇒ abCABb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 344 / 569
![Page 673: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/673.jpg)
Derivation Tree
A → aBBb | AaA
B → ε | bCA
C → AB | a | b
A
a B
b C A
a B B b
B b
A⇒ aBBb ⇒ abCABb ⇒ abCaBBbBb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 344 / 569
![Page 674: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/674.jpg)
Derivation Tree
A → aBBb | AaA
B → ε | bCA
C → AB | a | b
A
a B
b C A
a B B b
B b
A⇒ aBBb ⇒ abCABb ⇒ abCaBBbBb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 344 / 569
![Page 675: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/675.jpg)
Derivation Tree
A → aBBb | AaA
B → ε | bCA
C → AB | a | b
A
a B
b C A
a B B b
B b
A⇒ aBBb ⇒ abCABb ⇒ abCaBBbBb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 344 / 569
![Page 676: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/676.jpg)
Derivation Tree
A → aBBb | AaA
B → ε | bCA
C → AB | a | b
A
a B
b C A
a B B
ε
b
B b
A⇒ aBBb ⇒ abCABb ⇒ abCaBBbBb ⇒ abCaBbBb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 344 / 569
![Page 677: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/677.jpg)
Derivation Tree
A → aBBb | AaA
B → ε | bCA
C → AB | a | b
A
a B
b C A
a B B
ε
b
B b
A⇒ aBBb ⇒ abCABb ⇒ abCaBBbBb ⇒ abCaBbBb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 344 / 569
![Page 678: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/678.jpg)
Derivation Tree
A → aBBb | AaA
B → ε | bCA
C → AB | a | b
A
a B
b C A
a B B
ε
b
B b
A⇒ aBBb ⇒ abCABb ⇒ abCaBBbBb ⇒ abCaBbBb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 344 / 569
![Page 679: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/679.jpg)
Derivation Tree
A → aBBb | AaA
B → ε | bCA
C → AB | a | b
A
a B
b C
b
A
a B B
ε
b
B b
A⇒ aBBb ⇒ abCABb ⇒ abCaBBbBb ⇒ abCaBbBb ⇒ abbaBbBb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 344 / 569
![Page 680: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/680.jpg)
Derivation Tree
A → aBBb | AaA
B → ε | bCA
C → AB | a | b
A
a B
b C
b
A
a B B
ε
b
B b
A⇒ aBBb ⇒ abCABb ⇒ abCaBBbBb ⇒ abCaBbBb ⇒ abbaBbBb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 344 / 569
![Page 681: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/681.jpg)
Derivation Tree
A → aBBb | AaA
B → ε | bCA
C → AB | a | b
A
a B
b C
b
A
a B B
ε
b
B b
A⇒ aBBb ⇒ abCABb ⇒ abCaBBbBb ⇒ abCaBbBb ⇒ abbaBbBb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 344 / 569
![Page 682: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/682.jpg)
Derivation Tree
A → aBBb | AaA
B → ε | bCA
C → AB | a | b
A
a B
b C
b
A
a B B
ε
b
B
ε
b
A⇒ aBBb ⇒ abCABb ⇒ abCaBBbBb ⇒ abCaBbBb ⇒ abbaBbBb ⇒abbaBbb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 344 / 569
![Page 683: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/683.jpg)
Derivation Tree
A → aBBb | AaA
B → ε | bCA
C → AB | a | b
A
a B
b C
b
A
a B B
ε
b
B
ε
b
A⇒ aBBb ⇒ abCABb ⇒ abCaBBbBb ⇒ abCaBbBb ⇒ abbaBbBb ⇒abbaBbb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 344 / 569
![Page 684: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/684.jpg)
Derivation Tree
A → aBBb | AaA
B → ε | bCA
C → AB | a | b
A
a B
b C
b
A
a B B
ε
b
B
ε
b
A⇒ aBBb ⇒ abCABb ⇒ abCaBBbBb ⇒ abCaBbBb ⇒ abbaBbBb ⇒abbaBbb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 344 / 569
![Page 685: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/685.jpg)
Derivation Tree
A → aBBb | AaA
B → ε | bCA
C → AB | a | b
A
a B
b C
b
A
a B
ε
B
ε
b
B
ε
b
A⇒ aBBb ⇒ abCABb ⇒ abCaBBbBb ⇒ abCaBbBb ⇒ abbaBbBb ⇒abbaBbb ⇒ abbabb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 344 / 569
![Page 686: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/686.jpg)
Derivation Tree
A → aBBb | AaA
B → ε | bCA
C → AB | a | b
A
a B
b C
b
A
a B
ε
B
ε
b
B
ε
b
A⇒ aBBb ⇒ abCABb ⇒ abCaBBbBb ⇒ abCaBbBb ⇒ abbaBbBb ⇒abbaBbb ⇒ abbabb
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 344 / 569
![Page 687: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/687.jpg)
Derivation Tree
For each derivation there is some derivation tree:
Nodes of the tree are labelled with terminals and nonterminals.
The root of the tree is labelled with the initial nonterminal.
The leafs of the tree are labelled with terminals or with symbols ε.
The remaining nodes of the tree are labelled with nonterminals.
If a node is labelled with some nonterminal A then its children arelabelled with the symbols from the right-hand side of some rewritingrule A → α.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 345 / 569
![Page 688: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/688.jpg)
Left and Right Derivation
E → E + E | E ∗ E | (E ) | a
A left derivation is a derivation where in every step we always replace theleftmost nonterminal.
E ⇒ E + E ⇒ E ∗ E + E ⇒ a ∗ E + E ⇒ a ∗ a + E ⇒ a ∗ a + a
A right derivation is a derivation where in every step we always replacethe rightmost nonterminal.
E ⇒ E + E ⇒ E + a⇒ E ∗ E + a⇒ E ∗ a + a⇒ a ∗ a + a
A derivation need not be left or right:
E ⇒ E + E ⇒ E ∗ E + E ⇒ E ∗ a + E ⇒ E ∗ a + a⇒ a ∗ a + a
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 346 / 569
![Page 689: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/689.jpg)
Left and Right Derivation
There can be several different derivations corresponding to onederivation tree.
For every derivation tree, there is exactly one left and exactly oneright derivation corresponding to the tree.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 347 / 569
![Page 690: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/690.jpg)
Equvalence of Grammars
Grammars G1 and G2 are equivalent if they generate the same language,i.e., if L(G1) = L(G2).
Remark: The problem of equivalence of context-free grammars isalgorithmically undecidable. It can be shown that it is not possible toconstruct an algorithm that would decide for any pair of context-freegrammars if they are equivalent or not.
Even the problem to decide if a grammar generates the language Σ∗ isalgorithmically undecidable.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 348 / 569
![Page 691: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/691.jpg)
Ambiguous Grammars
A grammar G is ambiguous if there is a word w ∈ L(G ) that has twodifferent derivation trees, resp. two different left or two different rightderivations.
Example:E ⇒ E + E ⇒ E ∗ E + E ⇒ a ∗ E + E ⇒ a ∗ a + E ⇒ a ∗ a + a
E ⇒ E ∗ E ⇒ E ∗ E + E ⇒ a ∗ E + E ⇒ a ∗ a + E ⇒ a ∗ a + a
E
E
E
a
∗ E
a
+ E
a
E
E
a
∗ E
E
a
+ E
a
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 349 / 569
![Page 692: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/692.jpg)
Ambiguous Grammars
Sometimes it is possible to replace an ambiguous grammar with agrammar generating the same language but which is not ambiguous.
Example: A grammar
E → E + E | E ∗ E | (E ) | a
can be replaced with the equivalent grammar
E → T | T + E
T → F | F ∗ TF → a | (E )
Remark: If there is no unambiguous grammar equivalent to a givenambiguous grammar, we say it is inherently ambiguous.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 350 / 569
![Page 693: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/693.jpg)
Context-Free Languages
Definition
A language L is context-free if there exists some context-free grammar Gsuch that L = L(G ).
The class of context-free languages is closed with respect to:
concatenation
union
iteration
The class of context-free languages is not closed with respect to:
complement
intersection
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 351 / 569
![Page 694: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/694.jpg)
Context-Free Languages
We have two grammars G1 = (Π1, Σ, S1,P1) and G2 = (Π2, Σ, S2,P2), andcan assume that Π1 ∩ Π2 = ∅ and S 6∈ Π1 ∪ Π2.
Grammar G such that L(G ) = L(G1)L(G2):
G = (Π1 ∪ Π2 ∪ S, Σ, S , P1 ∪ P2 ∪ S → S1S2)
Grammar G such that L(G ) = L(G1) ∪ L(G2):
G = (Π1 ∪ Π2 ∪ S, Σ, S , P1 ∪ P2 ∪ S → S1, S → S2)
Grammar G such that L(G ) = L(G1)∗:
G = (Π1 ∪ S, Σ, S , P1 ∪ S → ε, S → S1S)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 352 / 569
![Page 695: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/695.jpg)
Lexical and Syntactic Analysis — an example
Example: We would like to recognize a language of arithmetic expressionscontaining expressions such as:
34 x+1 -x * 2 + 128 * (y - z / 3)
The expressions can contain number constants — sequences of digits0, 1, . . . , 9.
The expressions can contain names of variables — sequencesconsisting of letters, digits, and symbol “ ”, which do not start witha digit.
The expressions can contain basic arithmetic operations — “+”, “-”,“*”, “/”, and unary “-”.
It is possible to use parentheses — “(” and “)”, and to usea standard priority of arithmetic operations.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 353 / 569
![Page 696: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/696.jpg)
Lexical and Syntactic Analysis — an example
Input: a sequence of characters (e.g., a string, a text file, etc.)
Output: an abstract syntax tree representing the structure of a givenexpression, or an information about a syntax error in the expression
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 354 / 569
![Page 697: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/697.jpg)
Lexical and Syntactic Analysis — an example
Construction of an abstract syntax tree:
An enumerated type representing binary arithmetic operations:enum Bin op Add, Sub, Mul, Div
An enumerated type representing unary arithmetic operations:enum Un op Un minus Functions for creation of different kinds of nodes of an abstractsyntax tree:
mk-var(ident) — creates a leaf representing a variable
mk-num(num) — creates a leaf representing a number constant
mk-unary(op, e) — creates a node with one child e, on whicha unary operation op (of type Un op) is applied
mk-binary(op, e1, e2) — creates a node with two children e1 and e2,on which a binary operation op (of type Bin op) is applied
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 355 / 569
![Page 698: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/698.jpg)
Lexical Analysis
Enumerated type Token kind representing different kinds of tokens:
T EOF — the end of inputT Ident — identifierT Number — number constantT LParen — “(”T RParen — “)”T Plus — “+”T Minus — “-”T Star — “*”T Slash — “/”
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 356 / 569
![Page 699: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/699.jpg)
Lexical Analysis
Variable c : a currently processed character (resp. a special value 〈eof 〉representing the end of input):
at the beginning, the first character in the input is read to variable c
function next-char() returns a next charater from the input
Some helper functions:
error() — outputs an information about a syntax error and abortsthe processing of the expression
is-ident-start-char(c) — tests whether c is a charater that can occurat the beginning of an identifier
is-ident-normal-char(c) — tests whether c is a character that canoccur in an identifier (on other positions except beginning)
is-digit(c) — tests whether c is a digit
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 357 / 569
![Page 700: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/700.jpg)
Lexical Analysis
Some other helper functions:
create-ident(s) — creates an identifier from a given string s
create-number(s) — creates a number from a given string s
Auxiliary variables:
last-ident — the last processed identifier
last-num — the last processed number constant
Function next-token() — the main part of the lexical analyser, itreturns the following token from the input
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 358 / 569
![Page 701: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/701.jpg)
1 next-token ():
2 begin3 while c ∈ “ ”,“\t” do4 c := next-char();5 end6 if c == 〈eof 〉 then7 return T EOF8 else9 switch c do
10 case “(”: do c := next-char(); return T LParen11 case “)”: do c := next-char(); return T RParen12 case “+”: do c := next-char(); return T Plus13 case “–”: do c := next-char(); return T Minus14 case “*”: do c := next-char(); return T Star15 case “/”: do c := next-char(); return T Slash16 otherwise do17 if is-ident-start-char(c) then18 return scan-ident()19 else if is-digit(c) then20 return scan-number()21 else error()
22 end
23 end
24 end
25 end
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 359 / 569
![Page 702: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/702.jpg)
Lexical Analysis
1 scan-ident ():
2 begin3 s := c
4 c := next-char()5 while is-ident-normal-char(c) do6 s := s · c7 c := next-char()
8 end9 last-ident := create-ident(s)
10 return T Ident
11 end
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 360 / 569
![Page 703: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/703.jpg)
Lexical Analysis
1 scan-number ():
2 begin3 s := c
4 c := next-char()5 while is-digit(c) do6 s := s · c7 c := next-char()
8 end9 last-num := create-number(s)
10 return T Number
11 end
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 361 / 569
![Page 704: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/704.jpg)
Syntactic Analysis
Variable t :
the last processed token
A helper function:
init-scanner():
initializes the lexical analyser
reads the first character from the input into variable c
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 362 / 569
![Page 705: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/705.jpg)
Syntactic Analysis
The context-free grammar for the given language:
S → E 〈eof 〉E → T G
G → ε | AT G
A → + | -
T → F U
U → ε | M F U
M → * | /
F → -F | (E ) | 〈ident〉 | 〈num 〉
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 363 / 569
![Page 706: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/706.jpg)
Syntactic Analysis
One of the often used methods of syntactic analysis is recursive descent:
For each nonterminal there is a corresponding function — thefunction corresponding to nonterminal A implements all rules withnonterminal A on the left-hand side.
In a given function, the next token is used to select betweencorresponding rules.
Instructions in the body of a function correspond to processing ofright-hand sides of the rules:
an occurrence of nonterminal B — the function corresponding tononterminal B is called
an occurrence of terminal a — it is checked that the following tokencorresponds to terminal a, when it does, the next token is read,otherwise an error is reported
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 364 / 569
![Page 707: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/707.jpg)
Syntactic Analysis
S → E 〈eof 〉
1 Parse ():
2 begin3 init-scanner()4 t := next-token()5 e := Parse-E()6 if t == T EOF then return e
7 else error()
8 end
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 365 / 569
![Page 708: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/708.jpg)
E → T G
1 Parse-E ():
2 begin3 e1 := Parse-T()
4 return Parse-G(e1)
5 end
G → ε | AT G
1 Parse-G (e1):
2 begin3 if t ∈ T Plus,T Minus then4 op := Parse-A()
5 e2 := Parse-T()
6 return Parse-G(mk-binary(op, e1, e2))
7 else return e1
8 end
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 366 / 569
![Page 709: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/709.jpg)
T → F U
1 Parse-T ():
2 begin3 e1 := Parse-F()4 return Parse-U(e1)
5 end
U → ε | M F U
1 Parse-U (e1):
2 begin3 if t ∈ T Star,T Slash then4 op := Parse-M()
5 e2 := Parse-F()6 return parse-U(mk-binary(op, e1, e2))
7 else return e1
8 end
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 367 / 569
![Page 710: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/710.jpg)
Syntactic Analysis
A → + | -
1 Parse-A ():
2 begin3 if t == T Plus then4 t := next-token()5 return Add
6 else if t == T Minus then7 t := next-token()8 return Sub
9 else error()
10 end
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 368 / 569
![Page 711: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/711.jpg)
Syntactic Analysis
M → * | /
1 Parse-M ():
2 begin3 if t == T Star then4 t := next-token()5 return Mul
6 else if t == T Slash then7 t := next-token()8 return Div
9 else error()
10 end
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 369 / 569
![Page 712: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/712.jpg)
F → -F
| (E )
| 〈ident〉| 〈num 〉
1 Parse-F ():
2 begin3 switch t do4 case T Minus: do5 t := next-token()6 e := Parse-F()7 return mk-unary(Un minus, e)
8 case T LParen: do9 t := next-token()
10 e := Parse-E()11 if t == T RParen then12 t := next-token()13 return e
14 else error()
15 case T Ident: do16 e := mk-var(last-ident)17 t := next-token()18 return e
19 case T Number: do20 e := mk-num(last-num)
21 t := next-token()22 return e
23 otherwise do error()
24 end
25 end
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 370 / 569
![Page 713: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/713.jpg)
Syntactic Analysis
If a function ends with a recursive call of itself, as for examplefunction Parse-G(), it is possible to replace this recursion with aniteration.
Functions Parse-E() and Parse-G() can be merged into onefunction.
Similarly, it is possible to replace a recursion with an iteration infunction Parse-U(), and functions Parse-T() and Parse-U() canbe merged into one function.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 371 / 569
![Page 714: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/714.jpg)
1 Parse-E ():
2 begin3 e1 := Parse-T()
4 while t ∈ T Plus,T Minus do5 op := Parse-A()
6 e2 := Parse-T()
7 e1 := mk-binary(op, e1, e2)
8 end9 return e1
10 end
1 Parse-T ():
2 begin3 e1 := Parse-F()4 while t ∈ T Star,T Slash do5 op := Parse-M()
6 e2 := Parse-F()7 e1 := mk-binary(op, e1, e2)
8 end9 return e1
10 end
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 372 / 569
![Page 715: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/715.jpg)
Algorithms
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 373 / 569
![Page 716: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/716.jpg)
Algorithms
Example: An algorithm described by pseudocode:
Algorithm 1: An algorithm for finding the maximal element in an array
1 Find-Max (A, n):
2 begin3 k := 04 for i := 1 to n − 1 do5 if A[i ] > A[k ] then6 k := i
7 end
8 end9 return A[k ]
10 end
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 374 / 569
![Page 717: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/717.jpg)
Algorithms
Algorithm
processes an input
generates an output
From the point of view of an analysis how a given algorithm works, itusually makes only a little difference if the algorithm:
reads input data from some input device (e.g., from a file, froma keyboard, etc.)
writes data to some output device (e.g., to a file, on a screen, etc.)
or
reads input data from a memory (e.g., they are given to it asparameters)
writes data somewhere to memory (e.g., it returns them as a returnvalue)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 375 / 569
![Page 718: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/718.jpg)
Control Flow
Instructions can be roughly devided into two groups:
instructions working directly with data:
assignmentevaluation of values of expressions in conditionsreading input, writing output. . .
instructions affecting the control flow — they determine, whichinstructions will be executed, in what order, etc.:
branching (if, switch, . . . )cycles (while, do .. while, for, . . . )organisation of instructions into blocksreturns from subprograms (return, . . . ). . .
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 376 / 569
![Page 719: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/719.jpg)
Control Flow Graph
k := 0
i := 1
[i < n]
[i ≥ n]
[A[i ] > A[k]]
[A[i ] ≤ A[k]]
k := i
i := i + 1result := A[k]
0
1
2
3
4
5
6
7
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 377 / 569
![Page 720: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/720.jpg)
Some Basic Constructions of Structured Programming
S1
S2
[B ] [¬B ]
S1 S2
[B ] [¬B ]
S
S1; S2 if B then S1 else S2 if B then S
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 378 / 569
![Page 721: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/721.jpg)
Some Basic Constructions of Structured Programming
[B ][¬B ]
S[B ]
[¬B ]
S
while B do S do S while B
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 379 / 569
![Page 722: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/722.jpg)
Some Basic Constructions of Structured Programming
[i ≤ b][i > b]
i := a
i := i + 1S
for i := a to b do S
i := a
while i ≤ b doS
i := i + 1
end
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 380 / 569
![Page 723: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/723.jpg)
Some Basic Constructions of Structured Programming
Short-circuit evaluation of compound conditions, e.g.:
while i < n and A[i ] > x do . . .
[B1]
[¬B1]
[B2][¬B2]
S1 S2
[B1]
[¬B1]
[B2][¬B2]
S1 S2
if B1 and B2 then S1 else S2 if B1 or B2 then S1 else S2
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 381 / 569
![Page 724: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/724.jpg)
Control-flow Realized by GOTO
goto ℓ — unconditional jump
if B then goto ℓ — conditional jump
Example:
0: k := 01: i := 12: goto 6
3: if A[i ] ≤ A[k ] then goto 5
4: k := i
5: i := i + 16: if i < n then goto 3
7: return A[k ]
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 382 / 569
![Page 725: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/725.jpg)
Control-flow Realized by GOTO
goto ℓ — unconditional jump
if B then goto ℓ — conditional jump
Example:
start: k := 0i := 1goto L3
L1: if A[i ] ≤ A[k ] then goto L2
k := i
L2: i := i + 1L3: if i < n then goto L1
return A[k ]
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 382 / 569
![Page 726: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/726.jpg)
Evaluation of Complicated Expressions
Evaluation of a complicated expression such as
A[i + s] := (B [3 ∗ j + 1] + x) ∗ y + 8
can be replaced by a sequence of simpler instructions on the lower level,such as
t1 := i + s
t2 := 3 ∗ jt2 := t2 + 1t3 := B [t2]
t3 := t3 + x
t3 := t3 ∗ yt3 := t3 + 8A[t1] := t3
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 383 / 569
![Page 727: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/727.jpg)
Computation of an Algorithm
An algorithm is execuded by a machine — it can be for example:
real computer — executes instructions of a machine code
virtual machine — executes instructions of a bytecode
some idealized mathematical model of a computer
. . .
The machine can be:
specialized — executes only one algorithm
universal — can execute arbitrary algorithm, given in a form ofprogram
The machine performs steps.
The algorithm processes a particular input during its computation.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 384 / 569
![Page 728: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/728.jpg)
Computation of an Algorithm
During a computation, the machine must remember:
the current instruction
the content of its working memory
It depends on the type of the machine:
what is the type of data, with which the machine works
how this data are organized in its memory
Depending on the type of the algorithm and the type of analysis, which wewant to do, we can decide if it makes sense to include in memory also theplaces
from which the input data are read
where the output data are written
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 385 / 569
![Page 729: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/729.jpg)
Computation of an Algorithm
Configuration — the description of the global state of the machine insome particular step during a computation
Example: A configuration of the form
(q,mem)
where
q — the current control state
mem — the current content of memory of the machine — the valuesassigned currently to variables.
An example of a content of memory mem:
〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k : 0, result : ?〉
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 386 / 569
![Page 730: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/730.jpg)
Computation of an Algorithm
An example of a configuration:
(2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k : 0, result : ?〉)
A computation of a machine M executing an algorithm Alg , where itprocesses an input w , in a sequence of configurations.
It starts in an initial configuration.
In every step, it goes from one configuration to another.
The computation ends in a final configuration.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 387 / 569
![Page 731: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/731.jpg)
Computation of an Algorithm
k := 0
i := 1
[i < n]
[i ≥ n]
[A[i ] > A[k]]
[A[i ] ≤ A[k]]
k := i
i := i + 1result := A[k]
0
1
2
3
4
5
6
7
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 388 / 569
![Page 732: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/732.jpg)
Computation of an Algorithm
Example: A computation, where algorithm Find-Max processes an inputwhere A = [3, 8, 1, 3, 6] and n = 5.
α0: (0, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: ?, result : ?〉)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 389 / 569
![Page 733: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/733.jpg)
Computation of an Algorithm
Example: A computation, where algorithm Find-Max processes an inputwhere A = [3, 8, 1, 3, 6] and n = 5.
α0: (0, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: ?, result : ?〉)α1: (1, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: 0, result : ?〉)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 389 / 569
![Page 734: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/734.jpg)
Computation of an Algorithm
Example: A computation, where algorithm Find-Max processes an inputwhere A = [3, 8, 1, 3, 6] and n = 5.
α0: (0, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: ?, result : ?〉)α1: (1, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: 0, result : ?〉)α2: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 389 / 569
![Page 735: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/735.jpg)
Computation of an Algorithm
Example: A computation, where algorithm Find-Max processes an inputwhere A = [3, 8, 1, 3, 6] and n = 5.
α0: (0, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: ?, result : ?〉)α1: (1, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: 0, result : ?〉)α2: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α3: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 389 / 569
![Page 736: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/736.jpg)
Computation of an Algorithm
Example: A computation, where algorithm Find-Max processes an inputwhere A = [3, 8, 1, 3, 6] and n = 5.
α0: (0, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: ?, result : ?〉)α1: (1, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: 0, result : ?〉)α2: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α3: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α4: (4, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 389 / 569
![Page 737: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/737.jpg)
Computation of an Algorithm
Example: A computation, where algorithm Find-Max processes an inputwhere A = [3, 8, 1, 3, 6] and n = 5.
α0: (0, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: ?, result : ?〉)α1: (1, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: 0, result : ?〉)α2: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α3: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α4: (4, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α5: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 1, result : ?〉)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 389 / 569
![Page 738: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/738.jpg)
Computation of an Algorithm
Example: A computation, where algorithm Find-Max processes an inputwhere A = [3, 8, 1, 3, 6] and n = 5.
α0: (0, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: ?, result : ?〉)α1: (1, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: 0, result : ?〉)α2: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α3: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α4: (4, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α5: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 1, result : ?〉)α6: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 389 / 569
![Page 739: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/739.jpg)
Computation of an Algorithm
Example: A computation, where algorithm Find-Max processes an inputwhere A = [3, 8, 1, 3, 6] and n = 5.
α0: (0, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: ?, result : ?〉)α1: (1, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: 0, result : ?〉)α2: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α3: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α4: (4, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α5: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 1, result : ?〉)α6: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α7: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 389 / 569
![Page 740: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/740.jpg)
Computation of an Algorithm
Example: A computation, where algorithm Find-Max processes an inputwhere A = [3, 8, 1, 3, 6] and n = 5.
α0: (0, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: ?, result : ?〉)α1: (1, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: 0, result : ?〉)α2: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α3: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α4: (4, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α5: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 1, result : ?〉)α6: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α7: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α8: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 389 / 569
![Page 741: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/741.jpg)
Computation of an Algorithm
Example: A computation, where algorithm Find-Max processes an inputwhere A = [3, 8, 1, 3, 6] and n = 5.
α0: (0, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: ?, result : ?〉)α1: (1, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: 0, result : ?〉)α2: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α3: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α4: (4, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α5: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 1, result : ?〉)α6: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α7: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α8: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α9: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 3, k: 1, result : ?〉)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 389 / 569
![Page 742: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/742.jpg)
Computation of an Algorithm
Example: A computation, where algorithm Find-Max processes an inputwhere A = [3, 8, 1, 3, 6] and n = 5.
α0: (0, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: ?, result : ?〉)α1: (1, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: 0, result : ?〉)α2: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α3: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α4: (4, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α5: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 1, result : ?〉)α6: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α7: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α8: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α9: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 3, k: 1, result : ?〉)α10: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 3, k: 1, result : ?〉)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 389 / 569
![Page 743: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/743.jpg)
Computation of an Algorithm
Example: A computation, where algorithm Find-Max processes an inputwhere A = [3, 8, 1, 3, 6] and n = 5.
α0: (0, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: ?, result : ?〉)α1: (1, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: 0, result : ?〉)α2: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α3: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α4: (4, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α5: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 1, result : ?〉)α6: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α7: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α8: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α9: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 3, k: 1, result : ?〉)α10: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 3, k: 1, result : ?〉)α11: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 3, k: 1, result : ?〉)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 389 / 569
![Page 744: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/744.jpg)
Computation of an Algorithm
Example: A computation, where algorithm Find-Max processes an inputwhere A = [3, 8, 1, 3, 6] and n = 5.
α0: (0, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: ?, result : ?〉)α1: (1, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: 0, result : ?〉)α2: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α3: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α4: (4, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α5: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 1, result : ?〉)α6: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α7: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α8: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α9: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 3, k: 1, result : ?〉)α10: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 3, k: 1, result : ?〉)α11: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 3, k: 1, result : ?〉)α12: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 4, k: 1, result : ?〉)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 389 / 569
![Page 745: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/745.jpg)
Computation of an Algorithm
Example: A computation, where algorithm Find-Max processes an inputwhere A = [3, 8, 1, 3, 6] and n = 5.
α0: (0, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: ?, result : ?〉)α1: (1, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: 0, result : ?〉)α2: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α3: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α4: (4, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α5: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 1, result : ?〉)α6: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α7: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α8: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α9: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 3, k: 1, result : ?〉)α10: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 3, k: 1, result : ?〉)α11: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 3, k: 1, result : ?〉)α12: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 4, k: 1, result : ?〉)α13: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 4, k: 1, result : ?〉)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 389 / 569
![Page 746: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/746.jpg)
Computation of an Algorithm
Example: A computation, where algorithm Find-Max processes an inputwhere A = [3, 8, 1, 3, 6] and n = 5.
α0: (0, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: ?, result : ?〉)α1: (1, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: 0, result : ?〉)α2: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α3: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α4: (4, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α5: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 1, result : ?〉)α6: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α7: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α8: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α9: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 3, k: 1, result : ?〉)α10: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 3, k: 1, result : ?〉)α11: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 3, k: 1, result : ?〉)α12: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 4, k: 1, result : ?〉)α13: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 4, k: 1, result : ?〉)α14: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 4, k: 1, result : ?〉)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 389 / 569
![Page 747: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/747.jpg)
Computation of an Algorithm
Example: A computation, where algorithm Find-Max processes an inputwhere A = [3, 8, 1, 3, 6] and n = 5.
α0: (0, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: ?, result : ?〉)α1: (1, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: 0, result : ?〉)α2: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α3: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α4: (4, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α5: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 1, result : ?〉)α6: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α7: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α8: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α9: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 3, k: 1, result : ?〉)α10: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 3, k: 1, result : ?〉)α11: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 3, k: 1, result : ?〉)α12: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 4, k: 1, result : ?〉)α13: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 4, k: 1, result : ?〉)α14: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 4, k: 1, result : ?〉)α15: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 5, k: 1, result : ?〉)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 389 / 569
![Page 748: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/748.jpg)
Computation of an Algorithm
Example: A computation, where algorithm Find-Max processes an inputwhere A = [3, 8, 1, 3, 6] and n = 5.
α0: (0, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: ?, result : ?〉)α1: (1, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: 0, result : ?〉)α2: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α3: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α4: (4, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α5: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 1, result : ?〉)α6: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α7: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α8: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α9: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 3, k: 1, result : ?〉)α10: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 3, k: 1, result : ?〉)α11: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 3, k: 1, result : ?〉)α12: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 4, k: 1, result : ?〉)α13: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 4, k: 1, result : ?〉)α14: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 4, k: 1, result : ?〉)α15: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 5, k: 1, result : ?〉)α16: (6, 〈A: [3, 8, 1, 3, 6], n: 5, i : 5, k: 1, result : ?〉)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 389 / 569
![Page 749: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/749.jpg)
Computation of an Algorithm
Example: A computation, where algorithm Find-Max processes an inputwhere A = [3, 8, 1, 3, 6] and n = 5.
α0: (0, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: ?, result : ?〉)α1: (1, 〈A: [3, 8, 1, 3, 6], n: 5, i : ?, k: 0, result : ?〉)α2: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α3: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α4: (4, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 0, result : ?〉)α5: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 1, k: 1, result : ?〉)α6: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α7: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α8: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 2, k: 1, result : ?〉)α9: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 3, k: 1, result : ?〉)α10: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 3, k: 1, result : ?〉)α11: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 3, k: 1, result : ?〉)α12: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 4, k: 1, result : ?〉)α13: (3, 〈A: [3, 8, 1, 3, 6], n: 5, i : 4, k: 1, result : ?〉)α14: (5, 〈A: [3, 8, 1, 3, 6], n: 5, i : 4, k: 1, result : ?〉)α15: (2, 〈A: [3, 8, 1, 3, 6], n: 5, i : 5, k: 1, result : ?〉)α16: (6, 〈A: [3, 8, 1, 3, 6], n: 5, i : 5, k: 1, result : ?〉)α17: (7, 〈A: [3, 8, 1, 3, 6], n: 5, i : 5, k: 1, result : 8〉)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 389 / 569
![Page 750: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/750.jpg)
Computation of an Algorithm
By executing an instruction I , the machine goes from configuration α toconfiguration α ′:
αI−→ α ′
A computation can be:
Finite:
α0I0−→ α1
I1−→ α2I2−→ α3
I3−→ α4I4−→ · · · It−2−→ αt−1
It−1−→ αt
where αt is a final configuration
Infinite:α0
I0−→ α1I1−→ α2
I2−→ α3I3−→ α4
I4−→ · · ·
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 390 / 569
![Page 751: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/751.jpg)
Computation of an Algorithm
A computation can be described in two different ways:
as a sequence of configurations α0, α1, α2, . . .
as a sequence of executed instructions I0, I1, I2, . . .
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 391 / 569
![Page 752: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/752.jpg)
Correctness of Algorithms
Algorithms are used for solving problems.
Problem — a specification what should be computed byan algorithm:
Description of inputsDescription of outputsHow outputs are related to inputs
Algorithm — a particular procedure that describes how to computean output for each possible input
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 392 / 569
![Page 753: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/753.jpg)
Correctness of Algorithms
Example: The problem of finding a maximal element in an array:
Input: An array A indexed from zero and a number n representingthe number of elements in array A. It is assumed that n ≥ 1.
Output: A value result of a maximal element in the array A, i.e., thevalue result such that:
A[j ] ≤ result for all j ∈ N, where 0 ≤ j < n, and
there exists j ∈ N such that 0 ≤ j < n and A[j ] = result .
An instance of a problem — concreate input data, e.g.,
A = [ 3, 8, 1, 3, 6 ], n = 5.
The output for this instance is value 8.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 393 / 569
![Page 754: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/754.jpg)
Correctness of Algorithms
Definition
An algorithm Alg solves a given problem P , if for each instance w ofproblem P , the following conditions are satisfied:
(a) The computation of algorithm Alg on input w halts after finitenumber of steps.
(b) Algorithm Alg generates a correct output for input w according toconditions in problem P .
An algorithm that solves problem P is a correct solution of this problem.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 394 / 569
![Page 755: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/755.jpg)
Correctness of Algorithms
Algorithm Alg is not a correct solution of problem P if there exists aninput w such that in the computation on this input, one of the followingincorrect behaviours occurs:
some incorrect illegal operation is performed (an access to an elementof an array with index out of bounds, division by zero, . . . ),
the generated output does not satisfy the conditions specified inproblem P ,
the computation never halts.
Testing — running the algorithm with different inputs and checkingwhether the algorithm behaves correctly on these inputs.
Testing can be used to show the presence of bugs but not to show thatalgorithm behaves correctly for all inputs.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 395 / 569
![Page 756: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/756.jpg)
Correctness of Algorithms
Generally, it is reasonable to divide a proof of correctness of an algorithminto two parts:
Showing that the algorithm never does anything “wrong” for anyinput:
no illegal operation is performed during a computationif the program halts, the generated output will be “correct”
Showing that for every input the algorithm halts after a finite numberof steps.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 396 / 569
![Page 757: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/757.jpg)
Correctness of Algorithms
Invariant — a condition that must be always satisfied in a given positionin a code of the algorithm (i.e., in all possible computations for all allowedinputs) whenever the algorithm goes through this position.
We say that a configuration α is reachable if there exists an input w suchthat α is one of configurations through which the algorithm goes in thecomputation on input w .
If an algorithm is represented by a control-flow graph, for a given controlstate q (i.e., a node of the graph) we can specify invariants that hold inevery reachable configuration with control state q.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 397 / 569
![Page 758: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/758.jpg)
Invariants
Invariants can be written as formulas of predicate logic:
free variables correspond to variables of the program
a valuation is determined by values of program variables in a givenconfiguration
Example: Formula
(1 ≤ i)∧ (i ≤ n)
holds for example in a configuration where variable i has value 5 andvariable n has value 14.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 398 / 569
![Page 759: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/759.jpg)
Invariants
k := 0
i := 1
[i < n]
[i ≥ n]
[A[i ] > A[k]]
[A[i ] ≤ A[k]]
k := i
i := i + 1result := A[k]
0
1
2
3
4
5
6
7
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 399 / 569
![Page 760: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/760.jpg)
Invariants
Examples of invariants:
an invariant in a control state q is represented by a formula ϕq
Invariants for individual control states (so far only hypotheses):
ϕ0: (n ≥ 1)
ϕ1: (n ≥ 1)∧ (k = 0)
ϕ2: (n ≥ 1)∧ (1 ≤ i ≤ n)∧ (0 ≤ k < i)
ϕ3: (n ≥ 1)∧ (1 ≤ i < n)∧ (0 ≤ k < i)
ϕ4: (n ≥ 1)∧ (1 ≤ i < n)∧ (0 ≤ k < i)
ϕ5: (n ≥ 1)∧ (1 ≤ i < n)∧ (0 ≤ k ≤ i)
ϕ6: (n ≥ 1)∧ (i = n)∧ (0 ≤ k < n)
ϕ7: (n ≥ 1)∧ (i = n)∧ (0 ≤ k < n)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 400 / 569
![Page 761: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/761.jpg)
Invariants
Examples of invariants:
an invariant in a control state q is represented by a formula ϕq
Invariants for individual control states (so far only hypotheses):
ϕ0: n ≥ 1
ϕ1: n ≥ 1, k = 0
ϕ2: n ≥ 1, 1 ≤ i ≤ n, 0 ≤ k < i
ϕ3: n ≥ 1, 1 ≤ i < n, 0 ≤ k < i
ϕ4: n ≥ 1, 1 ≤ i < n, 0 ≤ k < i
ϕ5: n ≥ 1, 1 ≤ i < n, 0 ≤ k ≤ i
ϕ6: n ≥ 1, i = n, 0 ≤ k < n
ϕ7: n ≥ 1, i = n, 0 ≤ k < n
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 400 / 569
![Page 762: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/762.jpg)
Invariants
Checking that the given invariants really hold:
It is necessary to check for each instruction of the algorithm thatunder the assumption that a specified invariant holds before anexecution of the instruction, the other specified invariant holds afterthe execution of the instruction.
Let us assume the algorithm is represented as a control-flow graph:
edges correspond to instructions
consider an edge from state q to state q ′ labelled with instruction I
let us say that (so far non-verified) invariants for states q and q ′ areexpressed by formulas ϕ and ϕ ′
for this edge we must check that for every configurations
α = (q,mem) and α ′ = (q ′,mem ′) such that αI−→ α ′, it holds that
ifϕ holds is configuration α,
thenϕ ′ holds in configuration α ′
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 401 / 569
![Page 763: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/763.jpg)
Invariants
Checking instructions, which are conditional tests:
an edge labelled with a conditional test [B ]
A content of memory is not modified.It is sufficient to check that the following implication holds
(ϕ∧ B)→ ϕ ′
Remark: The given implication must hold for all possible values ofvariables.
Example: Let us assume that formulas contain only variables n, i , k , andthat values of these variables are integers:
(∀n ∈ Z)(∀i ∈ Z)(∀k ∈ Z) (ϕ∧ B → ϕ ′)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 402 / 569
![Page 764: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/764.jpg)
Invariants
Checking those instructions that assign values to variables (they modifya content of memory):
an edge labelled with assignment x := E
ϕ ′′ — a formula obtained from formula ϕ ′ by renaming of all freeoccurrences of variable x to x ′
It is necessary to check the validity of implication
(ϕ∧ (x ′ = E ))→ ϕ ′′
Example: Assignment k := 3 ∗ k + i + 1:
(∀n ∈ Z)(∀i ∈ Z)(∀k ∈ Z)(∀k ′ ∈ Z) (ϕ∧ (k ′ = 3 ∗ k + i + 1)→ ϕ ′′)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 403 / 569
![Page 765: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/765.jpg)
Invariants
Finishing the checking that the algorithm for finding maximal element inan array returns a correct result (under assumption that it halts):
ψ0: ϕ0
ψ1: ϕ1 ∧ (∀j ∈ N)(0 ≤ j < 1→ A[j ] ≤ A[k ])
ψ2: ϕ2 ∧ (∀j ∈ N)(0 ≤ j < i → A[j ] ≤ A[k ])
ψ3: ϕ3 ∧ (∀j ∈ N)(0 ≤ j < i → A[j ] ≤ A[k ])
ψ4: ϕ4 ∧ (∀j ∈ N)(0 ≤ j < i → A[j ] ≤ A[k ])∧ (A[i ] > A[k ])
ψ5: ϕ5 ∧ (∀j ∈ N)(0 ≤ j ≤ i → A[j ] ≤ A[k ])
ψ6: ϕ6 ∧ (∀j ∈ N)(0 ≤ j < n→ A[j ] ≤ A[k ])
ψ7: ϕ7 ∧ (result = A[k ])∧ (∀j ∈ N)(0 ≤ j < n→ A[j ] ≤result)∧ (∃j ∈ N)(0 ≤ j < n ∧ A[j ] = result)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 404 / 569
![Page 766: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/766.jpg)
Invariants
Usually it is not necessary to specify invariants in all control states butonly in some “important” states — in particular, in states where thealgorithm enters or leaves loops:
It is necessary to verify:
That the invariant holds before entering the loop.
That if the invariant holds before an iteration of the loop then itholds also after the iteration.
That the invariant holds when the loop is left.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 405 / 569
![Page 767: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/767.jpg)
Invariants
Example: In algorithm Find-Max, state 2 is such “important” state.
In state 2, the following holds:
n ≥ 1
1 ≤ i ≤ n
0 ≤ k < i
For each j such that 0 ≤ j < i it holds that A[j ] ≤ A[k ].
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 406 / 569
![Page 768: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/768.jpg)
Finiteness of a Computation
Two possibilities how an infinite computation can look:
some configuration is repeated — then all following configurations arealso repeated
all configurations in a computation are different but a finalconfiguration is never reached
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 407 / 569
![Page 769: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/769.jpg)
Finiteness of a Computation
One of standard ways of proving that an algorithm halts for every inputafter a finite number of steps:
to assign a value from a set W to every (reachable) configuration
to define an order ≤ on set W such that there are no infinite(strictly) decreasing sequences of elements of W
to show that the values assigned to configuration decrease with every
execution of each instruction, i.e., if αI−→ α ′ then
f (α) > f (α ′)
(f (α), f (α ′) are values from set W assigned to configurations αand α ′)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 408 / 569
![Page 770: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/770.jpg)
Finiteness of a Computation
As a set W , we can use for example:
The set of natural numbers N = 0, 1, 2, 3, . . . with ordering ≤.
The set of vectors of natural numbers with lexicographic ordering,i.e., the ordering where vector (a1, a2, . . . , am) is smaller than(b1, b2, . . . , bn), if
there exists i such that 1 ≤ i ≤ m and i ≤ n, where ai < bi and forall j such that 1 ≤ j < i it holds that aj = bj , or
m < n and for all j such that 1 ≤ j ≤ m is aj = bj .
For example, (5, 1, 3, 6, 4) < (5, 1, 4, 1) and (4, 1, 1) < (4, 1, 1, 3).
Remark: The number of elemets in vectors must be bounded bysome constant.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 409 / 569
![Page 771: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/771.jpg)
Finiteness of a Computation
k := 0
i := 1
[i < n]
[i ≥ n]
[A[i ] > A[k]]
[A[i ] ≤ A[k]]
k := i
i := i + 1result := A[k]
0
1
2
3
4
5
6
7
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 410 / 569
![Page 772: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/772.jpg)
Finiteness of a Computation
Example: Vectors assigned to individual configurations:
State 0: f (α) = (4)
State 1: f (α) = (3)
State 2: f (α) = (2, n − i , 3)
State 3: f (α) = (2, n − i , 2)
State 4: f (α) = (2, n − i , 1)
State 5: f (α) = (2, n − i , 0)
State 6: f (α) = (1)
State 7: f (α) = (0)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 411 / 569
![Page 773: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/773.jpg)
Computational Complexity of Algorithms
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 412 / 569
![Page 774: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/774.jpg)
Complexity of an Algorithm
Computers work fast but not infinitely fast. Execution of eachinstruction takes some (very short) time.
The same problem can be solved by several different algorithms. Thetime of a computation (determined mostly by the number of executedinstructions) can be different for different algorithms.
We can implement the algorithms and then measure the time of theircomputation. By this we find out how long the computation takes onparticular data on which we test the algorithm.
We would like to have a more precise idea how long the computationtakes on all possible input data.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 413 / 569
![Page 775: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/775.jpg)
Complexity of an Algorithm
A running time is affected by many factors, e.g.:
the algorithm that is usedthe amount of input dataused hardware (e.g., the frequency at which a CPU is running can beimportant)the used programming language — its implementation(compiler/interpreter). . .
If we need to solve problem for “small” input data, the running timeis usually negligible.
With increasing amount of input data (the size of input), the runningtime can grow, sometimes significantly.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 414 / 569
![Page 776: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/776.jpg)
Complexity of an Algorithm
Time complexity of an algorithm — how the running time of thealgorithm depends on the amount of input data
Space complexity of an algorithm — how the amount of a memoryused during a computation grows with respect to the size of input
Remark: The precise definitions will be given later.
Remark:
There are also other types of computational complexity, which we willnot discuss here (e.g., communication complexity).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 415 / 569
![Page 777: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/777.jpg)
Complexity of an Algorithm
To determine the precise running time or the precise amount of usedmemory just by an analysis of an algorithm can be extremely difficult.
Usually the analysis of complexity of an algorithm involves manysimplifications:
It is usually not analysed how the running time or the amount of usedmemory depends precisely on particular input data but how theydepend on the size of the input.
Functions expressing how the running time or the amount of usedmemory grows depending on the size of the input are not computedprecisely — instead estimations of these functions are computed.
Estimations of these functions are usually expressed using asymptoticnotation — e.g., it can be said that the running time of MergeSort isO(n log n), and that the running time of BubbleSort is O(n2).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 416 / 569
![Page 778: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/778.jpg)
Size of Input
Size of the input — a value describing how “big” is an input instance
In most cases, the size of an input is just one number — it is usuallydenoted n or N.
Sometimes it is more appropriate to express the size of an input bypair (sometimes even with three, four, etc.) of parameters — in thiscase, they are ofted denoted n and m (or N and M).
We can choose what should be considered as the size of an input.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 417 / 569
![Page 779: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/779.jpg)
Size of Input
Examples, what the size of an input can be:
An input is a sequence of some values, an array of elements, etc.(e.g., in problems like sorting, searching in an array, finding themaximal element, etc.):
n — the number of elements in this sequence or array
An input is a string of characters (a word from some alphabet):
n — the number of characters in this string
An input consists of two strings, e.g., a (long) text that will besearched through, and a (shorter) searched pattern:
n — the number of characters in the textm — the number of characters in the searched pattern
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 418 / 569
![Page 780: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/780.jpg)
Size of Input
An input is a set of strings:
One possibility:n — the sum of lengths of all strings
Other variant:n — the sum of lengths of all strings, m — the number of strings
The input is a graph:
n — the number of nodes, m — the number of edges
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 419 / 569
![Page 781: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/781.jpg)
Size of Input
The input is one number (e.g., in the primarity testing):
One possibility:n — the number of bits of the number — e.g., the size of input962261 is 20
Other variant:n — the value of the number — the size of input 962261 is 962261
The input is a sequence of numbers, and the running time is affectedby the values of the numbers (e.g., in the problem where the goal isto compute the greatest common divisor of all numbers in a givensequence):
n — the sum of numbers of bits of all numbers in the given sequence
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 420 / 569
![Page 782: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/782.jpg)
Running Time
Let us say that we have:
an algorithm Alg solving a problem P (resp. a particularimplementation of algorithm Alg),
a machine M executing the algorithm Alg ,
an input w from the set In, which is a set of all inputs of problem P
An example:
a particular implementation of Quicksort in C++ solving the problemof sorting,
a computer with some particular type of processor working on someparticular frequency, with some particular amount of memory,operating system, etc.
input: array [6, 13, 1, 8, 4, 5, 8](remark: a more realistic example would be an array with one millionelements)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 421 / 569
![Page 783: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/783.jpg)
Running Time
t(w) — the running time of the algorithm Alg on input w on machine M
What units should be used for expressing time? (As we will see, this is notimportant when asymptotic notation is used.)
in seconds — it depends on too many details of implementation, it isdifficult to determine it in other way than by measurement
(even on the same computer with the same data the running time canfluctuate)
the number of steps — it must be specified what is considered asone step, for example:
one statement of a high level programming languageone instruction of machine code or bytecodeone tick of a processorone operation of some particular type — e.g., a comparison, anarithmetic operation, etc. (while all other operations are ignored). . .
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 422 / 569
![Page 784: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/784.jpg)
Running Time
Let us say that an algorithm is represented by a control-flow graph:
To every instruction (i.e., to every edge) we assign a value specifyinghow long it takes to perform this instruction once.
The execution time of different instructions can be different.
For simplicity we assume that an execution of the same instructiontakes always the same time — the value assigned to an instruction isa number from the set R+ (the set of nonnegative real numbers).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 423 / 569
![Page 785: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/785.jpg)
Running Time
k := 0
i := 1
[i < n]
[i ≥ n]
[A[i ] > A[k]]
[A[i ] ≤ A[k]]
k := i
i := i + 1result := A[k]
0
1
2
3
4
5
6
7
Instr. time
k := 0 c0i := 1 c1[i < n] c2[i ≥ n] c3
[A[i ] ≤ A[k]] c4[A[i ] > A[k]] c5
k := i c6i := i + 1 c7
result := A[k] c8
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 424 / 569
![Page 786: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/786.jpg)
Running Time
Example: The execution times of individual instructions could be forexample:
Instr. symbol time
k := 0 c0 4i := 1 c1 4[i < n] c2 10[i ≥ n] c3 12
[A[i ] ≤ A[k ]] c4 14[A[i ] > A[k ]] c5 12
k := i c6 5i := i + 1 c7 6
result := A[k ] c8 5
For a particular input w , e.g., for w = ([3, 8, 4, 5, 2], 5), we could simulatethe computation and determine the precise running time t(w).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 425 / 569
![Page 787: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/787.jpg)
Time Complexity of an Algorithm
Let us say that:
For a given algorithm Alg and machine M, and for every input wfrom the set of all inputs In, the running time t(w) is preciselydefined.
To each input w from set In, a number size(w) describing the size ofthe input w is assigned .
(Formally, it is a function size : In → N.)
Definition
The time complexity of algorithm Alg in the worst case is thefunction T : N→ R
+that assigns to each natural number n the maximalrunning time of the algorithm Alg on an input of size n.So for each n ∈ N we have:
For each input w ∈ In such that size(w) = n is t(w) ≤ T (n).
There exists an input w ∈ In such that size(w) = n andt(w) = T (n).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 426 / 569
![Page 788: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/788.jpg)
Time Complexity of an Algorithm
It is obvious from this definition that the time complexity of an algorithmis a function whose precise values depend not only on the givenalgorithm Alg but also on the following things:
on a machine M, on which the algorithm Alg runs,
on the precise definition of the running time t(w) of algorithm Alg onmachine M with input w ∈ In,
on the precise definition of the size of an input (i.e., on the definitionof function size).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 427 / 569
![Page 789: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/789.jpg)
Time Complexity of an Algorithm
Sometimes, the time complexity in the average case is also analyzed:
Some particular probabilistic distribution on the set of inputs mustbe assumed.
Instead of the maximal running time on inputs of size n, the expectedvalue of the running times is considered.
Usually, the analysis of the avarage case is much more complicatedthan the analysis of the worst case.
Often, these two functions are not very different but sometimes thedifference is significant.
Remark: It usually makes little sense to analyze the time complexity inthe best case.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 428 / 569
![Page 790: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/790.jpg)
Time Complexity of an Algorithm
An example of an analysis of the time complexity of algorithm Find-Maxwithout the use of asymptotic notation:
Such precise analysis is almost never done in practice — it is tootedious and complicated.
This illustrates what things are ignored in an analysis whereasymptotic notation is used and how much the analysis is simplifiedby this.
We will compute with constants c0, c1, . . . , c8, which specify theexecution time of individual instructions — we won’t compute withconcrete numbers.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 429 / 569
![Page 791: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/791.jpg)
Time Complexity of an Algorithm
The inputs are of the form (A, n), where A is an array and n is the numberof elements in this array (where n ≥ 1).
We take n as the size of input (A, n).
Consider now some particular input w = (A, n) of size n:
The running time t(w) on input w can be expressed as
t(w) = c0m0 + c1m1 + · · · + c8m8,
where m0,m1, . . . ,m8 are numbers specifying how many times is eachinstruction performed in the computation on input w .
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 430 / 569
![Page 792: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/792.jpg)
Time Complexity of an Algorithm
Instr. time occurences value of mi
k := 0 c0 m0 1i := 1 c1 m1 1[i < n] c2 m2 n − 1[i ≥ n] c3 m3 1
[A[i ] ≤ A[k ]] c4 m4 n − 1− ℓ[A[i ] > A[k ]] c5 m5 ℓ
k := i c6 m6 ℓ
i := i + 1 c7 m7 n − 1result := A[k ] c8 m8 1
ℓ — the number of iterations of the cycle where A[i ] > A[k ]
(obviously 0 ≤ ℓ < n)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 431 / 569
![Page 793: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/793.jpg)
Time Complexity of an Algorithm
By assigning values to
t(w) = c0m0 + c1m1 + · · · + c8m8,
we obtain
t(w) = d1 + d2 · (n − 1) + d3 · (n − 1− ℓ) + d4 · ℓ,
where
d1 = c0 + c1 + c3 + c8 d3 = c4d2 = c2 + c7 d4 = c5 + c6
After simplification we have
t(w) = (d2 + d3) · n + (d4 − d3) · ℓ + (d1 − d2 − d3)
Remark: t(w) is not the time complexity but the running time fora particular input w
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 432 / 569
![Page 794: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/794.jpg)
Time Complexity of an Algorithm
For example, if the execution times of instructions will be:
Instr. symb. time
k := 0 c0 4i := 1 c1 4[i < n] c2 10[i ≥ n] c3 12
[A[i ] ≤ A[k]] c4 14[A[i ] > A[k]] c5 12
k := i c6 5i := i + 1 c7 6
result := A[k] c8 5
then d1 = 25, d2 = 16, d3 = 14, and d4 = 17.
In this case is t(w) = 30n + 3ℓ− 5.
For the input w = ([3, 8, 4, 5, 2], 5) is n = 5 and ℓ = 1, thereforet(w) = 30 · 5+ 3 · 1− 5 = 148.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 433 / 569
![Page 795: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/795.jpg)
Time Complexity of an Algorithm
It can depend on details of implementation and on the precise values ofconstants, for which inputs of size n the compution takes the longest time(i.e., which are the worst cases):
The running time of algorithm Find-Max for an input w = (A, n) ofsize n:
t(w) = (d2 + d3) · n + (d4 − d3) · ℓ + (d1 − d2 − d3)
If d3 ≥ d4 — the worst cases are those where ℓ has the smallest value
ℓ = 0 — for example inputs of the form [0, 0, . . . , 0] or of the form[n, n − 1, n − 2, . . . , 2, 1]
If d3 ≤ d4 — the worst are those cases where ℓ has the greatest value
ℓ = n − 1 — for example inputs of the form [0, 1, . . . , n − 1]
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 434 / 569
![Page 796: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/796.jpg)
Time Complexity of an Algorithm
The time complexity T (n) of algorithm Find-Max in the worst case isgiven as follows:
If d3 ≥ d4:
T (n) = (d2 + d3) · n + (d1 − d2 − d3)
If d3 ≤ d4:
T (n) = (d2 + d3) · n + (d4 − d3) · (n − 1) + (d1 − d2 − d3)
= (d2 + d4) · n + (d1 − d2 − d4)
Example: For d1 = 25, d2 = 16, d3 = 14, d4 = 17 is
T (n) = (16+ 17) · n + (25− 16− 17)
= 33n − 8
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 435 / 569
![Page 797: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/797.jpg)
Time Complexity of an Algorithm
In both cases (when d3 ≥ d4 or when d3 ≤ d4), the time complexity of thealgorithm Find-Max is a function
T (n) = an + b
where a and b are some constants whose precise values depend on theexecution time of individual instructions.
Remark: These constants could be expressed as
a = d2 +maxd3, d4 b = d1 − d2 −maxd3, d4
For example
T (n) = 33n − 8
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 436 / 569
![Page 798: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/798.jpg)
Time Complexity of an Algorithm
If it would be sufficient to find out that the time complexity of thealgorithm Find-Max is some function of the form
T (n) = an + b,
where the precise values of constants a and b would not be important forus, the whole analysis could be considerably simpler.
In fact, we usually do not want to know precisely how function T (n)
look (in general, it can be a very complicated function), and it wouldbe sufficient to know that values of the function T (n)
“approximately” correspond to values of a function S(n) = an + b,where a and b are some constants.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 437 / 569
![Page 799: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/799.jpg)
Time Complexity of an Algorithm
For a given function T (n) expressing the time or space complexity, it isusually sufficient to express it approximately — to have an estimationwhere
we ignore the less important parts
(e.g., in function T (n) = 15n2 + 40n − 5 we can ignore 40n and −5,and to consider function T (n) = 15n2 instead of the originalfunction),
we ignore multiplication constants
(e.g., instead of function T (n) = 15n2 we will considerfunction T (n) = n2)
we won’t ignore constants in exponents — for example there is a bigdifference between functions T1(n) = n2 and T2(n) = n3.
we will be interested how function T (n) behaves for “big” valuesof n, we can ignore its behaviour on small values
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 438 / 569
![Page 800: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/800.jpg)
Growth of Functions
A program works on an input of size n.Let us assume that for an input of size n, the program performs T (n)
operations and that an execution of one operation takes 1µs (10−6 s).
n
T (n) 20 40 60 80 100 200 500 1000
n 20µs 40µs 60µs 80µs 0.1ms 0.2ms 0.5ms 1ms
n log n 86µs 0.213ms 0.354ms 0.506ms 0.664ms 1.528ms 4.48ms 9.96ms
n2 0.4ms 1.6ms 3.6ms 6.4ms 10ms 40ms 0.25 s 1 s
n3 8ms 64ms 0.216 s 0.512 s 1 s 8 s 125 s 16.7min.
n4 0.16 s 2.56 s 12.96 s 42 s 100 s 26.6min. 17.36 hours 11.57 days
2n 1.05 s 12.75 days 36560 years 38.3·109 years 40.1·1015 years 50·1045 years 10.4·10136 years –
n! 77147 years 2.59·1034 years 2.64·1068 years 2.27·10105 years 2.96·10144 years – – –
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 439 / 569
![Page 801: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/801.jpg)
Growth of Functions
Let us consider 3 algorithms with complexitiesT1(n) = n,T2(n) = n3,T3(n) = 2n. Our computer can do in a reasonabletime (the time we are willing to wait) 1012 steps.
Complexity Input size
T1(n) = n 1012
T2(n) = n3 104
T3(n) = 2n 40
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 440 / 569
![Page 802: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/802.jpg)
Growth of Functions
Let us consider 3 algorithms with complexitiesT1(n) = n,T2(n) = n3,T3(n) = 2n. Our computer can do in a reasonabletime (the time we are willing to wait) 1012 steps.
Complexity Input size
T1(n) = n 1012
T2(n) = n3 104
T3(n) = 2n 40
Now we speed up our computer 1000 times, meaning it can do 1015 steps.
Complexity Input size Growth
T1(n) = n 1015 1000×T2(n) = n3 105 10×T3(n) = 2n 50 +10
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 440 / 569
![Page 803: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/803.jpg)
Asymptotic Notation
In the following, we will consider functions of the form f : N→ R, where:
The values of f (n) need not to be defined for all values of n ∈ N butthere must exist some constant n0 such that the value of f (n) isdefined for all n ∈ N such that n ≥ n0.
Example: Function f (n) = log2(n) is not defined for n = 0 but it isdefined for all n ≥ 1.
There must exist a constant n0 such that for all n ∈ N, where n ≥ n0,is f (n) ≥ 0.
Example: It holds for function f (n) = n2 − 25 that f (n) ≥ 0 for alln ≥ 5.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 441 / 569
![Page 804: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/804.jpg)
Asymptotic Notation
Let us take an arbitrary function f : N→ R. Expressions O(f ), Ω(f ), andΘ(f ) denote sets of functions of the type N→ R, where:
O(f ) – the set of all functions that grow at most as fast as f
Ω(f ) – the set of all functions that grow at least as fast as f
Θ(f ) – the set of all functions that grow as fast as f
Remark: These are not definitions! The definitions will follow on the nextslides.
O – big “O”
Ω – uppercase Greek letter “omega”
Θ – uppercase Greek letter “theta”
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 442 / 569
![Page 805: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/805.jpg)
Asymptotic Notation – Symbol O
nn0
cg(n)
f (n)
Definition
Let us consider an arbitrary function g : N→ R. For a function f : N→ R
we have f ∈ O(g) iff
(∃c > 0)(∃n0 ≥ 0)(∀n ≥ n0)(
f (n) ≤ c g(n))
.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 443 / 569
![Page 806: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/806.jpg)
Asymptotic Notation – Symbol O
Remarks:
c is a posive real number (i.e., c ∈ R and c > 0)
n0 and n are natural numbers (i.e., n0 ∈ N and n ∈ N)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 444 / 569
![Page 807: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/807.jpg)
Asymptotic Notation – Symbol O
Example: Let us consider functions f (n) = 2n2 + 3n + 7 and g(n) = n2.
We want to show that f ∈ O(g), i.e., f ∈ O(n2):
Approach 1:
Let us take for example c = 3.
cg(n) = 3n2 = 2n2 + 12n
2 + 12n
2
We need to find some n0 such that for all n ≥ n0 it holds that
2n2 ≥ 2n2 12n
2 ≥ 3n 12n
2 ≥ 7
We can easily check that for example n0 = 6 satisfies this.
For each n ≥ 6 we have cg(n) ≥ f (n):
cg(n) = 3n2 = 2n2 + 12n
2 + 12n
2 ≥ 2n2 + 3n + 7 = f (n)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 445 / 569
![Page 808: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/808.jpg)
Asymptotic Notation – Symbol O
The example where f (n) = 2n2 + 3n + 7 and g(n) = n2:
Approach 2:
Let us take c = 12.
cg(n) = 12n2 = 2n2 + 3n2 + 7n2
We need to find some n0 such that for all n ≥ n0 we have
2n2 ≥ 2n2 3n2 ≥ 3n 7n2 ≥ 7
These inequalities obviously hold for n0 = 1, and so for each n ≥ 1 wehave cg(n) ≥ f (n):
cg(n) = 12n2 = 2n2 + 3n2 + 7n2 ≥ 2n2 + 3n + 7 = f (n)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 446 / 569
![Page 809: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/809.jpg)
Asymptotic Notation – Symbol O
Proposition
Let us assume that a and b are constants such that a > 0 and b > 0,and k and ℓ are some arbitrary constants where k ≥ 0, ℓ ≥ 0 and k ≤ ℓ.Let us consider functions
f (n) = a · nk g(n) = b · nℓ
For each such functions f and g it holds that f ∈ O(g):
Proof: Let us take c = ab.
Because for n ≥ 1 we obviously have nk ≤ nℓ (since k ≤ ℓ), for n ≥ 1 wehave
c · g(n) = ab· g(n) = a
b· b · nℓ = a · nℓ ≥ a · nk = f (n)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 447 / 569
![Page 810: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/810.jpg)
Asymptotic Notation – Symbol Ω
nn0
cg(n)
f (n)
Definition
Let us consider an arbitrary function g : N→ R. For a function f : N→ R
we have f ∈ Ω(g) iff
(∃c > 0)(∃n0 ≥ 0)(∀n ≥ n0)(
c g(n) ≤ f (n))
.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 448 / 569
![Page 811: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/811.jpg)
Asymptotic Notation – Symbol Ω
It is not difficult to prove the following proposition:
For arbitrary functions f and g we have:
f ∈ O(g) iff g ∈ Ω(f )
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 449 / 569
![Page 812: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/812.jpg)
Asymptotic Notation – Symbol Θ
nn0
c2g(n)
f (n)
c1g(n)
Definition
Let us consider an arbitrary function g : N→ R. For a function f : N→ R
we have f ∈ Θ(g) iff
(∃c1 > 0)(∃c2 > 0)(∃n0 ≥ 0)(∀n ≥ n0)(
c1 g(n) ≤ f (n) ≤ c2 g(n))
.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 450 / 569
![Page 813: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/813.jpg)
Asymptotic Notation – Symbol Θ
For arbitrary functions f and g we have:
f ∈ Θ(g) iff f ∈ O(g) a f ∈ Ω(g)
f ∈ Θ(g) iff f ∈ O(g) a g ∈ O(f )
f ∈ Θ(g) iff g ∈ Θ(f )
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 451 / 569
![Page 814: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/814.jpg)
Asymptotic Notation
For arbitrary functions f , g , and h we have:
if f ∈ O(g) and g ∈ O(h) then f ∈ O(h)
if f ∈ Ω(g) and g ∈ Ω(h) then f ∈ Ω(h)
if f ∈ Θ(g) and g ∈ Θ(h) then f ∈ Θ(h)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 452 / 569
![Page 815: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/815.jpg)
Asymptotic Notation
Examples:
n ∈ O(n2) n3 ∈ O(n4)
1000n ∈ O(n) 0.00001n2 − 1010n ∈ Θ(1010n2)2log2 n ∈ Θ(n) n3 − n2 log32 n + 1000n − 10100 ∈ Θ(n3)n3 6∈ O(n2) n3 + 1000n − 10100 ∈ O(n3)
n2 6∈ O(n) n3 + n2 6∈ Θ(n2)n3 + 2n 6∈ O(n2) n! 6∈ O(2n)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 453 / 569
![Page 816: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/816.jpg)
Asymptotic Notation
There are pairs of functions f and g such that
f 6∈ O(g) and g 6∈ O(f ),
for example
f (n) = n g(n) = n1+sin(n).
O(1) is the set of all bounded functions, i.e., functions whosefunction values can be bounded from above by a constant.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 454 / 569
![Page 817: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/817.jpg)
Asymptotic Notation
For any pair of functions f , g we have:
max(f , g) ∈ Θ(f + g)
if f ∈ O(g) then f + g ∈ Θ(g)
For any functions f1, f2, g1, g2 we have:
if f1 ∈ O(f2) and g1 ∈ O(g2) then f1 + g1 ∈ O(f2 + g2) andf1 · g1 ∈ O(f2 · g2)if f1 ∈ Θ(f2) and g1 ∈ Θ(g2) then f1 + g1 ∈ Θ(f2 + g2) andf1 · g1 ∈ Θ(f2 · g2)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 455 / 569
![Page 818: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/818.jpg)
Asymptotic Notation
A function f is called:
logarithmic, if f (n) ∈ Θ(log n)linear, if f (n) ∈ Θ(n)quadratic, if f (n) ∈ Θ(n2)cubic, if f (n) ∈ Θ(n3)polynomial, if f (n) ∈ O(nk) for some k > 0
exponential, if f (n) ∈ O(cnk) for some c > 1 and k > 0
Exponential functions are often written in the form 2O(nk ) when theasymptotic notation is used, since then we do not need to considerdifferent bases.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 456 / 569
![Page 819: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/819.jpg)
Asymptotic Notation
As mentioned before, expressions O(g), Ω(g), and Θ(g) denote certainsets of functions.
In some texts, these expressions are sometimes used with a slightlydifferent meaning:
an expression O(g), Ω(g) or Θ(g) does not represent thecorresponding set of functions but some function from this set.
This convention is often used in equations and inequations.
Example: 3n3 + 5n2 − 11n + 2 = 3n3 + O(n2)
When using this convention, we can for example write f = O(g) instead off ∈ O(g).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 457 / 569
![Page 820: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/820.jpg)
Complexity of Algorithms
Let us say we would like to analyze the time complexity T (n) of somealgorithm consisting of instructions I1, I2, . . . , Ik :
If m1,m2, . . . ,mk are the numbers of executions of individualinstructions for some input w (i.e., the instruction Ii is performedmi times for the input w), then the total number of executedinstructions for input w is
T (n) = c1m1 + c2m2 + · · ·+ ckmk .
Let us consider functions f1, f2, . . . , fk , where fi : N→ R, and wherefi (n) is the maximum of numbers of executions of instruction Ii for allinputs of size n.
Obviously, T ∈ Ω(fi ) for any function fi .
It is also obvious that T ∈ O(f1 + f2 + · · ·+ fk).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 458 / 569
![Page 821: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/821.jpg)
Complexity of Algorithms
Let us recall that if f ∈ O(g) then f + g ∈ O(g).
If there is a function fi such that for all fj , where j 6= i , we havefj ∈ O(fi ), then
T ∈ O(fi ).
This means that in an analysis of the time complexity T (n), we canrestrict our attention to the number of executions of the instructionthat is performed most frequently (and which is performed at mostfi (n) times for an input of size n), since we have
T ∈ Θ(fi ).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 459 / 569
![Page 822: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/822.jpg)
Complexity of Algorithms
Example: In the analysis of the complexity of the searching of a numberin a sequence we obtained
f (n) = an + b .
If we would not like to do such a detailed analysis, we could deduce thatthe time complexity of the algorithm is Θ(n), because:
The algorithm contains only one cycle, which is performed(n − 1) times for an input of size n, the number of iterations of thecycle is in Θ(n).
Several instructions are performed in one iteration of the cycle. Thenumber of these instructions is bounded from both above and belowby some constant independent on the size of the input.
Other instructions are performed at most once, and so theycontribute to the total running time by adding a constant.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 460 / 569
![Page 823: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/823.jpg)
Complexity of Algorithms
Let us try to analyze the time complexity of the following algorithm:
Algorithm 2: Insertion sort
1 Insertion-Sort (A, n):
2 begin3 for j := 1 to n − 1 do4 x := A[j ]
5 i := j − 16 while i ≥ 0 and A[i ] > x do7 A[i + 1] := A[i ]
8 i := i − 1
9 end10 A[i + 1] := x
11 end
12 end
I.e., we want to find a function T (n) such that the time complexity of thealgorithm Insertion-Sort in the worst case is in Θ(T (n)).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 461 / 569
![Page 824: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/824.jpg)
Complexity of Algorithms
Let us consider inputs of size n:
The outer cycle for is performed at most n − 1 times.
The inner cycle while is performed at most (j − 1) times for a givenvalue j .
There are inputs such that the cycle while is performed exactly(j − 1) times for each value j from 2 to n.
So in the worst case, the cycle while is performed exactly m times,where
m = 1+ 2+ · · ·+ (n − 1) = (1+ (n − 1)) · n−12 = 1
2n2 − 1
2n
This means that the total running time of the algorithmInsertion-Sort in the worst case is Θ(n2).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 462 / 569
![Page 825: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/825.jpg)
Complexity of Algorithms
In the previous case, we have computed the total number of executions ofthe cycle while accurately.
This is not always possible in general, or it can be quite complicated. It isalso not necessary, if we only want an asymptotic estimation.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 463 / 569
![Page 826: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/826.jpg)
Complexity of Algorithms
For example, if we were not able to compute the sum of the arithmeticprogression, we could proceed as follows:
The outer cycle for is not performed more than n times and the innercycle while is performed at most n times in each iteration of theouter cycle.
So we have T ∈ O(n2).
For some inputs, the cycle while is performed at least ⌈n/2⌉ times inthe last ⌊n/2⌋ iterations of the cycle for.
So the cycle while is performed at least ⌊n/2⌋ · ⌈n/2⌉ times for someinputs.
⌊n/2⌋ · ⌈n/2⌉ ≥ (n/2− 1) · (n/2) = 14n
2 − 12n
This implies T ∈ Ω(n2).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 464 / 569
![Page 827: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/827.jpg)
Space Complexity of Algorithms
So far we have considered only the time necessary for a computation
Sometimes the size of the memory necessary for the computation ismore critical.
The amount of memory used by machine M in a computationon input w can be for example:
the maximal number of bits necessary for storing all data for eachconfiguration
the maximal number of memory cells used during the computation
Definition
A space complexity of algorithm Alg running on machine M is thefunction S : N→ N, where S(n) is the maximal amount of memory usedby M for inputs of size n.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 465 / 569
![Page 828: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/828.jpg)
Space Complexity of Algorithms
There can be two algorithms for a particular problem such that one ofthem has a smaller time complexity and the other a smaller spacecomplexity.
If the time-complexity of an algorithm is in O(f (n)) then also thespace complexity is in O(f (n)) (note that the number of memory cellsused in one instruction is bounded by some constant that does notdepend on the size of an input).
The space complexity can be much smaller than the time complexity— the space complexity of Insertion-Sort is Θ(n), while its timecomplexity is Θ(n2).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 466 / 569
![Page 829: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/829.jpg)
Complexity of Algorithms
Some typical values of the size of an input n, for which an algorithm withthe given time complexity usually computes the output ona “common PC” within a fraction of a second or at most in seconds.
(Of course, this depends on particular details. Moreover, it is assumedhere that no big constants are hidden in the asymptotic notation)
O(n) O(n log n) O(n2) O(n3)
1 000 000 – 100 000 000 100 000 – 1 000 000 1000 – 10 000 100 – 1000
2O(n) O(n!)
20 – 30 10 – 15
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 467 / 569
![Page 830: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/830.jpg)
Complexity of Algorithms
When we use asymptotic estimations of the complexity of algorithms, weshould be aware of some issues:
Asymptotic estimations describe only how the running time growswith the growing size of input instance.
They do not say anything about exact running time. Some bigconstants can be hidden in the asymptotic notation.
An algorithm with better asymptotic complexity than some otheralgorithm can be in reality faster only for very big inputs.
We usually analyze the time complexity in the worst case. For somealgorithms, the running time in the worst case can be much higherthan the running time on “typical” instances.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 468 / 569
![Page 831: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/831.jpg)
Complexity of Algorithms
This can be illustrated on algorithms for sorting.
Algorithm Worst-case Average-case
Bubblesort Θ(n2) Θ(n2)
Heapsort Θ(n log n) Θ(n log n)
Quicksort Θ(n2) Θ(n log n)
Quicksort has a worse asymptotic complexity in the worst case thanHeapsort and the same asymptotic complexity in an average case butit is usually faster in practice.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 469 / 569
![Page 832: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/832.jpg)
Complexity of Algorithms
Polynomial — an expression of the form
aknk + ak−1n
k−1 + · · · + a2n2 + a1n + a0
where a0, a1, . . . , ak are constants.
Examples of polynomials:
4n3 − 2n2 + 8n + 13 2n + 1 n100
Function f is called polynomial if it is bounded from above by somepolynomial, i.e., if there exists a constant k such that f ∈ O(nk).
For example, the functions belonging to the following classes arepolynomial:
O(n) O(n log n) O(n2) O(n5) O(√n) O(n100)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 470 / 569
![Page 833: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/833.jpg)
Complexity of Algorithms
Function such as 2n or n! are not polynomial — for arbitrarily bigconstant k we have
2n ∈ Ω(nk) n! ∈ Ω(nk)
Polynomial algorithm — an algorithm whose time complexity ispolynomial (i.e., bounded from above by some polynomial)
Roughly we can say that:
polynomial algorithms are effiecient algorithms that can be used inpractice for inputs of considerable size
algorithms, which are not polynomial, can be used in practice only forrather small inputs
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 471 / 569
![Page 834: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/834.jpg)
Complexity of Algorithms
The division of algorithms on polynomial and non-polynomial is very rough— we cannot claim that polynomial algorithms are always efficient andnon-polynomial algorithms are not:
an algorithm with the time complexity Θ(n100) is probably not veryuseful in practice,
some algorithms, which are non-polynomial, can still work veryefficiently for majority of inputs, and can have a time complexitybigger than polynomial only due to some problematic inputs, onwhich the computation takes long time.
Remark: Polynomial algorithms where the constant in the exponent issome big number (e.g., algorithms with complexity Θ(n100)) almost neveroccur in practice as solutions of usual algorithmic problems.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 472 / 569
![Page 835: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/835.jpg)
Complexity of Algorithms
For most of common algorithmic problems, one of the following threepossibilities happens:
A polynomial algorithm with time complexity O(nk) is known, wherek is some very small number (e.g., 5 or more often 3 or less).
No polynomial algorithm is known and the best known algorithmshave complexities such as 2Θ(n), Θ(n!), or some even bigger.
In some cases, a proof is known that there does not exist a polynomialalgorithm for the given problem (it cannot be constructed).
No algorithm solving the given problem is known (and it is possiblyproved that there does not exist such algorithm)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 473 / 569
![Page 836: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/836.jpg)
Complexity of Algorithms
A typical example of polynomial algorithm — matrix multiplication withtime complexity Θ(n3) and space complexity Θ(n2):
Algorithm 3: Matrix multiplication
1 Matrix-Mult (A,B ,C , n):
2 begin3 for i := 1 to n do4 for j := 1 to n do5 x := 06 for k := 1 to n do7 x := x + A[i ][k ] ∗ B [k ][j ]8 end9 C [i ][j ] := x
10 end
11 end
12 end
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 474 / 569
![Page 837: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/837.jpg)
Complexity of Algorithms
For a rough estimation of complexity, it is often sufficient to countthe number of nested loops — this number then gives the degree ofthe polynomial
Example: Three nested loops in the matrix multiplication — thetime complexity of the algorithm is O(n3).
If it is not the case that all the loops go from 0 to n but the numberof iterations of inner loops are different for different iterations of anouter loops, a more precise analysis can be more complicated.
It is often the case, that the sum of some sequence (e.g., the sum ofarithmetic or geometric progression) is then computed in the analysis.
The results of such more detailed analysis often does not differ fromthe results of a rough analysis but in many cases the time complexityresulting from a more detailed analysis can be considerably smallerthan the time complexity following from the rough analysis.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 475 / 569
![Page 838: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/838.jpg)
Complexity of Algorithms
Arithmetic progression — a sequence of numbers a0, a1, . . . , an−1, where
ai = a0 + i · d ,
where d is some constant independent on i .
Remark: So in an arithmetic progression, we have ai+1 = ai + d for each i .
The sum of an arithmetic progression:
n−1∑
i=0
ai = a0 + a1 + · · ·+ an−1 =1
2n (an−1 + a0)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 476 / 569
![Page 839: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/839.jpg)
Complexity of Algorithms
Example:
1+ 2+ · · ·+ n =1
2n(n + 1) =
1
2n2 +
1
2n = Θ(n2)
For example, for n = 100 we have
1+ 2+ · · ·+ 100 = 50 · 101 = 5050.
Remark: To see this, we can note that
1+ 2+ · · ·+ 100 = (1+ 100) + (2+ 99) + · · ·+ (50+ 51),
where we compute the sum of 50 pairs of number, where the sum of eachpair is 101.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 477 / 569
![Page 840: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/840.jpg)
Complexity of Algorithms
Geometric progression — a sequence of numbers a0, a1, . . . , an, where
ai = a0 · qi ,
where q is some constant independent on i .
Remark: So in a geometric progression we have ai+1 = ai · q.
The sum of a geometic progression (where q 6= 1):
n∑
i=0
ai = a0 + a1 + · · ·+ an = a0qn+1 − 1
q − 1
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 478 / 569
![Page 841: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/841.jpg)
Complexity of Algorithms
Example:
1+ q + q2 + · · ·+ qn =qn+1 − 1
q − 1
In particular, for q = 2:
1+ 21 + 22 + 23 + · · ·+ 2n =2n+1 − 1
2− 1= 2 · 2n − 1 = Θ(2n)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 479 / 569
![Page 842: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/842.jpg)
Complexity of Algorithms
An exponential function: a function of the form cn, where c is a constant— e.g., function 2n
Logarithm — the inverse function to an exponential function: fora given n,
logc n
is the value x such that cx = n.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 480 / 569
![Page 843: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/843.jpg)
Complexity of Algorithms
n 2n
0 11 22 43 84 165 326 647 1288 2569 51210 102411 204812 409613 819214 1638415 3276816 6553617 13107218 26214419 52428820 1048576
n ⌈log2 n⌉0 —1 02 13 24 25 36 37 38 39 410 411 412 413 414 415 416 417 518 519 520 5
n log2 n
1 02 14 28 316 432 564 6128 7256 8512 91024 102048 114096 128192 1316384 1432768 1565536 16131072 17262144 18524288 191048576 20
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 481 / 569
![Page 844: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/844.jpg)
Complexity of Algorithms
Proposition
For any a, b > 1 and any n > 0 we have
loga n =logb n
logb a
Proof: From n = aloga n it follows that logb n = logb(aloga n).
Since logb(aloga n) = loga n · logb a, we obtain logb n = loga n · logb a, from
which the above mentioned conclusion follows directly.
Due to this observation, the base of a logarithm is often omited in theasymptotic notation: for example, instead of Θ(n log2 n) we can writeΘ(n log n).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 482 / 569
![Page 845: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/845.jpg)
Complexity of Algorithms
Examples where exponential functions and logarithms can appear in ananalysis of algorithms:
Some value is repeatedly decreased to one half or is repeatedlydoubled.
For example, in the binary search, the size of an interval halves inevery iteration of the loop.
Let us assume that an array has size n.
What is the minimal size of an array n, for which the algorithmperforms at least k iterations?
The answer: 2k
So we have k = log2(n). The time complexity of the algorithm isthen Θ(log n).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 483 / 569
![Page 846: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/846.jpg)
Complexity of Algorithms
Using n bits we can represent numbers from 0 to 2n − 1.
The minimal numbers of bits, which are sufficient for representinga natural number x in binary is
⌈log2(x + 1)⌉.
A perfectly balanced tree of height h has 2h+1 − 1 nodes, and 2h ofthese nodes are leaves.
The height of a perfectly balanced binary tree with n nodes is log2 n.
An illustrating example: If we would draw a balanced treewith n = 1 000 000 nodes in such a way that the distance betweenneighbouring nodes would be 1 cm and the height of each layer ofnodes would be also 1 cm, the width of the tree would be 10 km andits height would be approximately 20 cm.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 484 / 569
![Page 847: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/847.jpg)
Complexity of Algorithms
A perfectly balanced binary tree of height h:
h
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 485 / 569
![Page 848: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/848.jpg)
Complexity of Algorithms
A perfectly balanced binary tree of height h:
h
20
21
22
23
24
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 485 / 569
![Page 849: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/849.jpg)
Complexity of Algorithms
Example: Algorithm Merge-Sort.
The main idea of the algorithm: Two sorted sequences can be easilymerged into one sorted sequence.If both sequences have together n elements then this operation can bedone in n steps.
34 42 58 61
10 11 53 67
=⇒
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 486 / 569
![Page 850: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/850.jpg)
Complexity of Algorithms
Example: Algorithm Merge-Sort.
The main idea of the algorithm: Two sorted sequences can be easilymerged into one sorted sequence.If both sequences have together n elements then this operation can bedone in n steps.
34 42 58 61
11 53 67
=⇒ 10
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 486 / 569
![Page 851: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/851.jpg)
Complexity of Algorithms
Example: Algorithm Merge-Sort.
The main idea of the algorithm: Two sorted sequences can be easilymerged into one sorted sequence.If both sequences have together n elements then this operation can bedone in n steps.
34 42 58 61
53 67
=⇒ 10 11
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 486 / 569
![Page 852: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/852.jpg)
Complexity of Algorithms
Example: Algorithm Merge-Sort.
The main idea of the algorithm: Two sorted sequences can be easilymerged into one sorted sequence.If both sequences have together n elements then this operation can bedone in n steps.
42 58 61
53 67
=⇒ 10 11 34
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 486 / 569
![Page 853: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/853.jpg)
Complexity of Algorithms
Example: Algorithm Merge-Sort.
The main idea of the algorithm: Two sorted sequences can be easilymerged into one sorted sequence.If both sequences have together n elements then this operation can bedone in n steps.
58 61
53 67
=⇒ 10 11 34 42
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 486 / 569
![Page 854: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/854.jpg)
Complexity of Algorithms
Example: Algorithm Merge-Sort.
The main idea of the algorithm: Two sorted sequences can be easilymerged into one sorted sequence.If both sequences have together n elements then this operation can bedone in n steps.
58 61
67
=⇒ 10 11 34 42 53
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 486 / 569
![Page 855: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/855.jpg)
Complexity of Algorithms
Example: Algorithm Merge-Sort.
The main idea of the algorithm: Two sorted sequences can be easilymerged into one sorted sequence.If both sequences have together n elements then this operation can bedone in n steps.
61
67
=⇒ 10 11 34 42 53 58
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 486 / 569
![Page 856: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/856.jpg)
Complexity of Algorithms
Example: Algorithm Merge-Sort.
The main idea of the algorithm: Two sorted sequences can be easilymerged into one sorted sequence.If both sequences have together n elements then this operation can bedone in n steps.
67
=⇒ 10 11 34 42 53 58 61
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 486 / 569
![Page 857: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/857.jpg)
Complexity of Algorithms
Example: Algorithm Merge-Sort.
The main idea of the algorithm: Two sorted sequences can be easilymerged into one sorted sequence.If both sequences have together n elements then this operation can bedone in n steps.
=⇒ 10 11 34 42 53 58 61 67
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 486 / 569
![Page 858: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/858.jpg)
Complexity of Algorithms
Algorithm 4: Merge sort
1 Merge-Sort (A, p, r):
2 begin3 if r − p > 1 then4 q := ⌊(p + r) / 2⌋5 Merge-Sort(A, p, q)6 Merge-Sort(A, q, r)7 Merge(A, p, q, r)
8 end
9 end
To sort an array A containing elements A[0],A[1], · · · ,A[n − 1] we callMerge-Sort(A, 0, n).
Remark: Procedure Merge(A, p, q, r) merges sorted sequences storedin A[p . . q − 1] and A[q . . r − 1] into one sequence stored in A[p . . r − 1].
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 487 / 569
![Page 859: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/859.jpg)
Complexity of Algorithms
Input: 58, 42, 34, 61, 67, 10, 53, 11
42 58 34 61 10 67 11 53
34 42 6158 10 11 53 67
10 11 34 42 67615853
58 42 34 61 67 10 53 11
The tree of recursive calls has Θ(log n) layers. On each layer, Θ(n)operations are performed. The time complexity of Merge-Sort isΘ(n log n).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 488 / 569
![Page 860: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/860.jpg)
Complexity of Algorithms
Representations of a graph:
1 2 3
4 5 6
5
4
3
2
1 42
2
4
6 5
6 6
5
1
0 1 0
0 1
0 0
0 1 0
10 0
3
5
4
2
1
1 2 3 4 5
6
6
1 0 0
0 0 0 0
10 10
0 0 0
0 0 0
0 0 0 0 0
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 489 / 569
![Page 861: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/861.jpg)
Complexity of Algorithms
Representations of a graph:
1
5 4
2
3
5
4
3
2
1 5
5
2
1 3 4
2 3
4
2 4
5
1 2
5
0 1 0 0 1
1 0 1 1 1
0 1 0 1 0
0 1 1 0 1
1 1 10 0
3
5
4
2
1
1 2 3 4
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 490 / 569
![Page 862: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/862.jpg)
Complexity of Algorithms
Finding the shortest path in a graph where edges are not weighted:
Breadth-first search
The input is a graph G (with a set of nodes V ) and an initial node s.
The algorithm finds the shortest paths from node s for all nodes.
For a graph with n nodes and m edges, the running time of thealgorithm is Θ(n +m).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 491 / 569
![Page 863: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/863.jpg)
Complexity of Algorithms
Algorithm 5: Breadth-first search
1 Bfs (G , s):
2 begin3 Bfs-Init(G , s)4 Enqueue(Q, s)5 while Q 6= ∅ do6 u := Dequeue(Q)
7 for each v ∈ edges[u] do8 if color[v ] = white then9 color[v ] := gray
10 d [v ] := d [u] + 111 pred[v ] := u
12 Enqueue(Q, v)13 end
14 end15 color[u] := black
16 end
17 end
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 492 / 569
![Page 864: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/864.jpg)
Complexity of Algorithms
Algorithm 6: Breadth-first search — initialization
1 Bfs-Init (G , s):
2 begin3 for each u ∈ V − s do4 color[u] := white5 d [u] :=∞6 pred[u] := nil
7 end8 color[s] := gray9 d [s] := 0
10 pred[s] := nil11 Q := ∅12 end
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 493 / 569
![Page 865: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/865.jpg)
Other Examples of Problems
Problem “Primality”
Input: A natural number x .
Output: Yes if x is a prime, No otherwise.
Remark: A natural number x is a prime if it is greater than 1 and isdivisible only by numbers 1 and x .
Few of the first primes: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, . . .
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 494 / 569
![Page 866: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/866.jpg)
Decision Problems
The problems, where the set of outputs is Yes,No are called decisionproblems.
Decision problems are usually specified in such a way that instead ofdescribing what the output is, a question is formulated.
Example:
Problem “Primality”
Input: A natural number x .
Question: Is x a prime?
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 495 / 569
![Page 867: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/867.jpg)
Primality Test
A simple algorithm solvint the “Primality” problem can work like this:
Test the trivial cases (e.g., if x ≤ 2 or if x is even).
Try to divide x successively by all odd numbers in interval3, . . . , ⌊√x⌋.
Let n be the number of bits in the representation of number x ,e.g., n = ⌈log2(x + 1)⌉.This value n will be considered as the size of the input.
Note that the number ⌊√x⌋ has approximately n/2 bits.
There are approximately 2(n/2)−1 odd numbers in the interval 3, . . . , ⌊√x⌋,and so the time complexity of this simple algorithm is in 2Θ(n).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 496 / 569
![Page 868: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/868.jpg)
Primality Test
This simple algorithm with an exponential running time (resp. alsodifferent improved versions of this) are applicable to numbers withthousands of bits in practice.A primality test of such big numbers plays an important role for examplein cryptography.
Only since 2003, a polynomial time algorithm is known. The timecomplexity of the original version of the algorithm was O(n12+ε), later itwas improved to (O(n7.5)). The currently fastest algorithm has timecomplexity O(n6).
In practice, randomized algorithms are used for primality testing:
Solovay–Strassen
Miller–Rabin
(The time complexity of both algorithms is O(n3).)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 497 / 569
![Page 869: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/869.jpg)
Primality Test
A randomized algorithm:
It uses a random-number generator during a computation.
It can produce different outputs in different runs with the same input.
The output need not be always correct but the probability ofproducing an incorrect output is bounded.
For example, both above mentioned randomized algorithms for primalitytesting behave as follows:
If x is a prime, the answer Yes is always returned.
If x is not a prime, the probability of the answer No is at least 50%but there is at most 50% probability that the program returns theincorrect answer Yes.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 498 / 569
![Page 870: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/870.jpg)
Primality Test
The program can be run repeatedly (k times):
If the program returns at least once the answer No, we know (with100% probability) that x is not a prime.
If the program always returns Yes, the probability that x is nota prime is at most 1
2k.
For sufficiently large values of k , the probability of an incorrect answer isnegligible.
Remark: For example for k = 100, the probability of this error is smallerthan the probability that a computer, on which the program is running, willbe destroyed by a falling meteorite (assuming that at least once in every1000 years at least 100m2 of Earth surface is destroyed by a meteorite).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 499 / 569
![Page 871: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/871.jpg)
Primality Test
At first sight, the following problem looks very similar as the primality test:
Problem “Factorization”
Input: A natural number x , where x > 1.
Output: Primes p1, p2, . . . , pm such that x = p1 · p2 · · · · · pm.
In fact, this problem is (supposed to be) much harder than primalitytesting.No efficient (polynomial) algorithm is known for this problem (nora randomized algorithm).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 500 / 569
![Page 872: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/872.jpg)
Other Examples of Problems
Independent set (IS) problem
Input: An undirected graph G , a number k .
Question: Is there an independent set of size k in the graph G?
k = 4
Remark: An independent set in a graph is a subset of nodes of thegraph such that no pair of nodes from this set is connected by an edge.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 501 / 569
![Page 873: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/873.jpg)
Other Examples of Problems
Independent set (IS) problem
Input: An undirected graph G , a number k .
Question: Is there an independent set of size k in the graph G?
k = 4
Remark: An independent set in a graph is a subset of nodes of thegraph such that no pair of nodes from this set is connected by an edge.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 501 / 569
![Page 874: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/874.jpg)
Other Examples of Problems
An example of an instance where the answer is Yes:
k = 4
An example of an instance where the answer is No:
k = 5
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 502 / 569
![Page 875: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/875.jpg)
Other Examples of Problems
A set containing n elements has 2n subsets.
Consider for example an algorithm solving a given problem by bruteforce where it tests the required property for each subset of a givenset.
It is sufficient to consider only subsets of size k . The total number ofsuch subsets is
(
n
k
)
For some values of k , the total number of these subsets is not muchsmaller than 2n:
For example, it is not too difficult to show that(
n
⌊n/2⌋
)
≥ 2n
n.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 503 / 569
![Page 876: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/876.jpg)
Other Examples of Problems
Let us have an algorithm solving the independent set problem by bruteforce in such a way that it tests for each subset with k elements of the setof nodes (with n nodes), if it forms an independent set. The timecomplexity of the algorithm is 2Θ(n).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 504 / 569
![Page 877: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/877.jpg)
Undecidable Problems
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 505 / 569
![Page 878: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/878.jpg)
Algorithmically Solvable Problems
Let us assume we have a problem P .
If there is an algorithm solving the problem P then we say that theproblem P is algorithmically solvable.
If P is a decision problem and there is an algorithm solving the problem P
then we say that the problem P is decidable (by an algorithm).
If we want to show that a problem P is algorithmically solvable, it issufficient to show some algorithm solving it (and possibly show that thealgorithm really solves the problem P).
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 506 / 569
![Page 879: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/879.jpg)
Algorithmically Unsolvable Problems
A problem that is not algorithmically solvable is algorithmicallyunsolvable.
A decision problem that is not decidable is undecidable.
Surprisingly, there are many (exactly defined) problems, for which it wasproved that they are not algorithmically solvable.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 507 / 569
![Page 880: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/880.jpg)
Halting Problem
Let us consider some general programming language L.Futhermore, let us assume that programs in language L run on someidealized machine where a (potentially) unbounded amount of memory isavailable — i.e., the allocation of memory never fails.
Example: The following problem called the Halting problem isundecidable:
Halting problem
Input: A source code of a L program P , input data x .
Question: Does the computation of P on the input x halt after somefinite number of steps?
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 508 / 569
![Page 881: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/881.jpg)
Halting Problem
Let us assume that there is a program that can decide the Halting problem.
So we could construct a subroutine H, declared as
Bool H(String code, String input)
where H(P , x) returns:
true if the program P halts on the input x ,
false if the program P does not halt on the input x .
Remark: Let us say that subroutine H(P , x) returns false if P is nota syntactically correct program.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 509 / 569
![Page 882: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/882.jpg)
Halting Problem
Using the subroutine H we can construct a program D that performs thefollowing steps:
It reads its input into a variable x of type String.
It calls the subroutine H(x , x).
If subroutine H returns true, program D jumps into an infinite loop
loop: goto loop
In case that H returns false, program D halts.
What does the program D do if it gets its own code as an input?
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 510 / 569
![Page 883: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/883.jpg)
Halting Problem
If D gets its own code as an input, it either halts or not.
If D halts then H(D,D) returns true and D jumps into the infiniteloop. A contradiction!
If D does not halt then H(D,D) returns false and D halts.A contradiction!
In both case we obtain a contradiction and there is no other possibility. Sothe assumption that H solves the Halting problem must be wrong.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 511 / 569
![Page 884: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/884.jpg)
Reduction between Problems
If we have already proved a (decision) problem to be undecidable, we canprove undecidability of other problems by reductions.
Problem P1 can be reduced to problem P2 if there is an algorithm Alg
such that:
It can get an arbitrary instance of problem P1 as an input.
For an instance of a problem P1 obtained as an input (let us denote itas w) it produces an instance of a problem P2 as an output.
It holds i.e., the answer for the input w of problem P1 is Yes iff theanswer for the input Alg(w) of problem P2 is Yes.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 512 / 569
![Page 885: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/885.jpg)
Reductions between Problems
Inputs of problem P1 Inputs of problem P2
Yes Yes
NoNo
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 513 / 569
![Page 886: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/886.jpg)
Reductions between Problems
Inputs of problem P1 Inputs of problem P2
Yes Yes
NoNo
Alg
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 513 / 569
![Page 887: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/887.jpg)
Reductions between Problems
Let us say there is some reduction Alg from problem P1 to problem P2.
If problem P2 is decidable then problem P1 is also decidable.
Solution of problem P1 for an input x :
Call Alg with x as an input, it returns a value Alg(x).
Call the algorithm solving problem P2 with input Alg(x).
Write the returned value to the output as the result.
It is obvious that if P1 is undecidable then P2 cannot be decidable.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 514 / 569
![Page 888: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/888.jpg)
Other Undecidable Problems
By reductions from the Halting problem we can show undecidability ofmany other problems dealing with a behaviour of programs:
Is for some input the output of a given program Yes?
Does a given program halt for an arbitrary input?
Do two given programs produce the same outputs for the sameinputs?
. . .
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 515 / 569
![Page 889: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/889.jpg)
Models of Computation
For the use in proofs and in reductions between problems, it is convenientto have the language L and the machine running programs in thislanguage as simple as possible:
the number of kinds of instructions as small as possible
instructions as primitive as possible
the datatypes, with which the algorithm works, as simple as possible
it is irrelevant how difficult is to write programs in the given language(it can be extremly user-unfriently)
On the other hand, such language (resp. machine) must be general enoughso that any program written in an arbitrary programming language can becompiled to it.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 516 / 569
![Page 890: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/890.jpg)
Models of Computation
Such languages (resp. machines), which are general enough, so thatprograms written in any other programming language can be translated tothem, are called Turing complete.
Examples of such Turing complete models of computation (languages ormachines) often used in proofs:
Turing machine (Alan Turing)
Lambda calculus (Alonzo Church)
Minsky machine (Marvin Minsky)
. . .
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 517 / 569
![Page 891: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/891.jpg)
Models of Computation
Turing machine:
Let us extend a deterministic finite automaton in the following way:
the reading head can move in both directionsit is possible to write symbols on the tapethe tape is extended into infinity
q5
a b a b b a b
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 518 / 569
![Page 892: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/892.jpg)
Church-Turing Thesis
Church-Turing thesis
Every algorithm can be implemented as a Turing machine.
It is not a theorem that can be proved in a mathematical sense – it is notformally defined what an algorithm is.
The thesis was formulated in 1930s independently by Alan Turing andAlonzo Church.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 519 / 569
![Page 893: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/893.jpg)
Halting Problem
For purposes of proofs, the following version of Halting problem is oftenused:
Halting problem
Input: A description of a Turing machine M and a word w .
Question: Does the computation of the machine M on the word w haltafter some finite number of steps?
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 520 / 569
![Page 894: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/894.jpg)
Other Undecidable Problems
We have already seen the following example of an undecidable problem:
Problem
Input: Context-free grammars G1 and G2.
Question: Is L(G1) = L(G2)?
respectively
Problem
Input: A context-free grammar generating a language over analphabet Σ.
Question: Is L(G ) = Σ∗?
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 521 / 569
![Page 895: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/895.jpg)
Other Undecidable Problems
An input is a set of types of tiles, such as:
The question is whether it is possible to cover every finite area of anarbitrary size using the given types of tiles in such a way that the colors ofneighboring tiles agree.
Remark: We can assume that we have an infinite number of tiles of alltypes.
The tiles cannot be rotated.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 522 / 569
![Page 896: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/896.jpg)
Other Undecidable Problems
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 523 / 569
![Page 897: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/897.jpg)
Other Undecidable Problems
An input is a set of types of cards, such as:
a
aa
abb
bbab
bab
ab
baba
aa
aba
a
The question is whether it is possible to construct from the given types ofcards a non-empty finite sequence such that the concatenations of thewords in the upper row and in the lower row are the same. Every type of acard can be used repeatedly.
a
aa
abb
bbab
abb
bbab
baba
aa
abb
bbab
aba
a
In the upper and in the lower row we obtained the wordaabbabbbabaabbaba.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 524 / 569
![Page 898: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/898.jpg)
Other Undecidable Problems
Undecidability of several other problems dealing with context-freegrammars can be proved by reductions from the previous problem:
Problem
Input: Context-free grammars G1 and G2.
Question: Is L(G1) ∩ L(G2) = ∅?
Problem
Input: A context-free grammar G .
Question: Is G ambiguous?
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 525 / 569
![Page 899: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/899.jpg)
Other Undecidable Problems
Problem
Input: A closed formula of the first order predicate logic where theonly predicate symbols are = and <, the only functionsymbols are + and ∗, and the only constant symbols are 0and 1.
Question: Is the given formula true in the domain of natural numbers(using the natural interpretation of all function and predicatesymbols)?
An example of an input:
∀x∃y∀z((x ∗ y = z)∧ (y + 1 = x))
Remark: There is a close connection with Godel’s incompletenesstheorem.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 526 / 569
![Page 900: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/900.jpg)
Other Undecidable Problems
It is interesting that an analogous problem, where real numbers areconsidered instead of natural numbers, is decidable (but the algorithm forit and the proof of its correctness are quite nontrivial).
Also when we consider natural numbers or integers and the same formulasas in the previous case but with the restriction that it is not allowed to usethe multiplication function symbol ∗, the problem is algorithmicallydecidable.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 527 / 569
![Page 901: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/901.jpg)
Other Undecidable Problems
If the function symbol ∗ can be used then even the very restricted case isundecidable:
Hilbert’s tenth problem
Input: A polynomial f (x1, x2, . . . , xn) constructed from variablesx1, x2, . . . , xn and integer constants.
Question: Are there some natural numbers x1, x2, . . . , xn such thatf (x1, x2, . . . , xn) = 0 ?
An example of an input: 5x2y − 8yz + 3z2 − 15
I.e., the question is whether
∃x∃y∃z(5 ∗ x ∗ x ∗ y + (−8) ∗ y ∗ z + 3 ∗ z ∗ z + (−15) = 0)
holds in the domain of natural numbers.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 528 / 569
![Page 902: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/902.jpg)
Other Undecidable Problems
Also the following problem is algorithmically undecidable:
Problem
Input: A closed formula ϕ of the first-order predicate logic.
Question: Is |= ϕ ?
Remark: Notation |= ϕ denotes that formula ϕ is logically valid, i.e., it istrue in all interpretations.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 529 / 569
![Page 903: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/903.jpg)
NP-Complete Problems
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 530 / 569
![Page 904: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/904.jpg)
Polynomial Reductions between Problems
There is a polynomial reduction of problem P1 to problem P2 if thereexists an algorithm Alg with a polynomial time complexity that reducesproblem P1 to problem P2.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 531 / 569
![Page 905: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/905.jpg)
Polynomial Reductions between Problems
Inputs of problem P1 Inputs of problem P2
Yes Yes
NoNo
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 532 / 569
![Page 906: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/906.jpg)
Polynomial Reductions between Problems
Inputs of problem P1 Inputs of problem P2
Yes Yes
NoNo
Alg
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 532 / 569
![Page 907: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/907.jpg)
Polynomial Reductions between Problems
Let us say that problem A can be reduced in polynomial time toproblem B , i.e., there is a (polynomial) algorithm P realizing thisreduction.
If problem B is in the class PTIME then problem A is also in the classPTIME.
A solution of problem A for an input x :
Call P with input x and obtain a returned value P(x).
Call a polynomial time algorithm solving problem B with theinput P(x).Write the returned value as the answer for A.
That means:
If A is not in PTIME then also B can not be in PTIME.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 533 / 569
![Page 908: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/908.jpg)
Polynomial Reductions between Problems
There is a big class of algorithmic problems called NP-complete problemssuch that:
these problems can be solved by exponential time algorithms
no polynomial time algorithm is known for any of these problems
on the other hand, for any of these problems it is not proved thatthere cannot exist a polynomial time algorithm for the given problem
every NP-complete problem can be polynomially reduced to any otherNP-complete problem
Remark: This is not a definition of NP-complete problems. The precisedefinition will be described later.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 534 / 569
![Page 909: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/909.jpg)
Problem SAT
A typical example of an NP-complete problem is the SAT problem:
SAT (boolean satisfiability problem)
Input: Boolean formula ϕ.
Question: Is ϕ satisfiable?
Example:Formula ϕ1 = x1 ∧ (¬x2 ∨ x3) is satisfiable:e.g., for valuation v where v(x1) = 1, v(x2) = 0, v(x3) = 1, theformula ϕ1 is true.
Formula ϕ2 = (x1 ∧ ¬x1)∨ (¬x2 ∧ x3 ∧ x2) is not satisfiable:it is false for every valuation v .
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 535 / 569
![Page 910: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/910.jpg)
Problem 3-SAT
3-SAT is a variant of the SAT problem where the possible inputs arerestricted to formulas of a certain special form:
3-SAT
Input: Formula ϕ is a conjunctive normal form where every clausecontains exactly 3 literals.
Question: Is ϕ satisfiable?
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 536 / 569
![Page 911: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/911.jpg)
Problem 3-SAT
Recalling some notions:
A literal is a formula of the form x or ¬x where x is an atomicproposition.
A clause is a disjuction of literals.
Examples: x1 ∨ ¬x2 ¬x5 ∨ x8 ∨ ¬x15 ∨ ¬x23 x6
A formula is in a conjuctive normal form (CNF) if it is a conjuctionof clauses.
Example: (x1 ∨ ¬x2) ∧ (¬x5 ∨ x8 ∨ ¬x15 ∨ ¬x23) ∧ x6
So in the 3-SAT problem we require that a formula ϕ is in a CNF andmoreover that every clause of ϕ contains exactly three literals.
Example:(x1 ∨¬x2 ∨ x4)∧ (¬x1 ∨ x3 ∨ x3)∧ (¬x1 ∨¬x3 ∨¬x4)∧ (x2 ∨¬x3 ∨ x4)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 537 / 569
![Page 912: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/912.jpg)
Problem 3-SAT
The following formula is satisfiable:
(x1 ∨¬x2 ∨ x4)∧ (¬x1 ∨ x3 ∨ x3)∧ (¬x1 ∨¬x3 ∨¬x4)∧ (x2 ∨¬x3 ∨ x4)
It is true for example for valuation v where
v(x1) = 0v(x2) = 1v(x3) = 0v(x4) = 1
On the other hand, the following formula is not satisfiable:
(x1 ∨ x1 ∨ x1)∧ (¬x1 ∨ ¬x1 ∨ ¬x1)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 538 / 569
![Page 913: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/913.jpg)
Polynomial Reductions between Problems
As an example, a polynomial time reduction from the 3-SAT problem tothe independent set problem (IS) will be described.
Remark: Both 3-SAT and IS are examples of NP-complete problems.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 539 / 569
![Page 914: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/914.jpg)
Independent Set (IS) Problem
Independent set (IS) problem
Input: An undirected graph G , a number k .
Question: Is there an independent set of size k in the graph G?
k = 4
Remark: An independent set in a graph is a subset of nodes of thegraph such that no pair of nodes from this set is connected by an edge.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 540 / 569
![Page 915: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/915.jpg)
Independent Set (IS) Problem
Independent set (IS) problem
Input: An undirected graph G , a number k .
Question: Is there an independent set of size k in the graph G?
k = 4
Remark: An independent set in a graph is a subset of nodes of thegraph such that no pair of nodes from this set is connected by an edge.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 540 / 569
![Page 916: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/916.jpg)
Independent Set (IS) Problem
An example of an instance where the answer is Yes:
k = 4
An example of an instance where the answer is No:
k = 5
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 541 / 569
![Page 917: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/917.jpg)
A Reduction from 3-SAT to IS
We describe a (polynomial-time) algorithm with the following properties:
Input: An arbitrary instance of 3-SAT, i.e., a formula ϕ in aconjunctive normal form where every clause contains exactly threeliterals.
Output: An instance of IS, i.e., an undirected graph G and a numberk .
Moreover, the following will be ensured for an arbitrary input (i.e., foran arbitrary formula ϕ in the above mentioned form):
There will be an independent set of size k in graph G iff formula ϕwill be satisfiable.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 542 / 569
![Page 918: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/918.jpg)
A Reduction from 3-SAT to IS
(x1 ∨¬x2 ∨ x3) ∧ (x2 ∨¬x3 ∨ x4) ∧ (x1 ∨¬x3 ∨¬x4) ∧ (¬x1 ∨ x2 ∨ x4)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 543 / 569
![Page 919: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/919.jpg)
A Reduction from 3-SAT to IS
(x1 ∨¬x2 ∨ x3) ∧ (x2 ∨¬x3 ∨ x4) ∧ (x1 ∨¬x3 ∨¬x4) ∧ (¬x1 ∨ x2 ∨ x4)
x1
¬x2
x3
x2
¬x3
x4
x1
¬x3
¬x4
x2
¬x1
x4
For each occurrence of a literal we add a node to the graph.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 543 / 569
![Page 920: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/920.jpg)
A Reduction from 3-SAT to IS
(x1 ∨¬x2 ∨ x3) ∧ (x2 ∨¬x3 ∨ x4) ∧ (x1 ∨¬x3 ∨¬x4) ∧ (¬x1 ∨ x2 ∨ x4)
x1
¬x2
x3
x2
¬x3
x4
x1
¬x3
¬x4
x2
¬x1
x4
We connect with edges the nodes corresponding to occurrences of literalsbelonging to the same clause.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 543 / 569
![Page 921: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/921.jpg)
A Reduction from 3-SAT to IS
(x1 ∨¬x2 ∨ x3) ∧ (x2 ∨¬x3 ∨ x4) ∧ (x1 ∨¬x3 ∨¬x4) ∧ (¬x1 ∨ x2 ∨ x4)
x1
¬x2
x3
x2
¬x3
x4
x1
¬x3
¬x4
x2
¬x1
x4
For each pair of nodes corresponding to literals xi and ¬xi we add an edgebetween them.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 543 / 569
![Page 922: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/922.jpg)
A Reduction from 3-SAT to IS
(x1 ∨¬x2 ∨ x3) ∧ (x2 ∨¬x3 ∨ x4) ∧ (x1 ∨¬x3 ∨¬x4) ∧ (¬x1 ∨ x2 ∨ x4)
x1
¬x2
x3
x2
¬x3
x4
x1
¬x3
¬x4
x2
¬x1
x4
k = 4
We put k to be equal to the number of clauses.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 543 / 569
![Page 923: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/923.jpg)
A Reduction from 3-SAT to IS
(x1 ∨¬x2 ∨ x3) ∧ (x2 ∨¬x3 ∨ x4) ∧ (x1 ∨¬x3 ∨¬x4) ∧ (¬x1 ∨ x2 ∨ x4)
x1
¬x2
x3
x2
¬x3
x4
x1
¬x3
¬x4
x2
¬x1
x4
k = 4
The constructed graph and number k are the output of the algorithm.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 543 / 569
![Page 924: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/924.jpg)
A Reduction from 3-SAT to IS
(x1 ∨¬x2 ∨ x3) ∧ (x2 ∨¬x3 ∨ x4) ∧ (x1 ∨¬x3 ∨¬x4) ∧ (¬x1 ∨ x2 ∨ x4)
x1
¬x2
x3
x2
¬x3
x4
x1
¬x3
¬x4
x2
¬x1
x4
k = 4
v(x1) = 1v(x2) = 1v(x3) = 0v(x4) = 1
If the formula ϕ is satisfiable then there is a valuation v where everyclause contains at least one literal with value 1.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 543 / 569
![Page 925: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/925.jpg)
A Reduction from 3-SAT to IS
(x1 ∨¬x2 ∨ x3) ∧ (x2 ∨¬x3 ∨ x4) ∧ (x1 ∨¬x3 ∨¬x4) ∧ (¬x1 ∨ x2 ∨ x4)
x1
¬x2
x3
x2
¬x3
x4
x1
¬x3
¬x4
x2
¬x1
x4
k = 4
v(x1) = 1v(x2) = 1v(x3) = 0v(x4) = 1
We select one literal that has a value 1 in the valuation v , and we put thecorresponding node into the independent set.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 543 / 569
![Page 926: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/926.jpg)
A Reduction from 3-SAT to IS
(x1 ∨¬x2 ∨ x3) ∧ (x2 ∨¬x3 ∨ x4) ∧ (x1 ∨¬x3 ∨¬x4) ∧ (¬x1 ∨ x2 ∨ x4)
x1
¬x2
x3
x2
¬x3
x4
x1
¬x3
¬x4
x2
¬x1
x4
k = 4
v(x1) = 1v(x2) = 1v(x3) = 0v(x4) = 1
We can easily verify that the selected nodes form an independent set.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 543 / 569
![Page 927: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/927.jpg)
A Reduction from 3-SAT to IS
The selected nodes form an independent set because:
One node has been selected from each triple of nodes correspondingto one clause.
Nodes denoted xi and ¬xi could not be selected together.(Exactly of them has the value 1 in the given valuation v .)
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 544 / 569
![Page 928: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/928.jpg)
A Reduction from 3-SAT to IS
On the other hand, if there is an independent set of size k in graph G ,then it surely has the following properties:
At most one node is selected from each triple of nodes correspondingto one clause.
But because there are k clauses and k nodes are selected, exactly onenode must be selected from each triple.
Nodes denoted xi and ¬xi cannot be selected together.
We can choose a valuation according to the selected nodes, since it followsfrom the previous discussion that it must exist.(Arbitrary values can be assigned to the remaining variables.)
For the given valuation, the formula ϕ has surely the value 1, since in eachclause there is at least one literal with value 1.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 545 / 569
![Page 929: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/929.jpg)
A Reduction from 3-SAT to IS
It is obvious that the running time of the described algorithm polynomial:
Graph G and number k can be constructed for a formula ϕ in time O(n2),where n is the size of formula ϕ.
We have also seen that there is an independent set of size k in theconstructed graph G iff the formula ϕ is satisfiable.
The described algorithm shows that 3-SAT can be reduced in polynomialtime to IS.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 546 / 569
![Page 930: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/930.jpg)
Complexity Classes
PTIME — the class of all algorithmic problems that can solve bya (deterministic) algorithm in polynomial time
NPTIME — the class of algorithmic problems that can be solved bya nondetermistic algorithm in polynomial time
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 547 / 569
![Page 931: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/931.jpg)
NP-Complete Problems
Let us consider a set of all decision problems.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 548 / 569
![Page 932: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/932.jpg)
NP-Complete Problems
By an arrow we denote that a problem A can be reduced in polynomialtime to a problem B .
A B
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 548 / 569
![Page 933: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/933.jpg)
NP-Complete Problems
For example 3-SAT can be reduced in polynomial time to IS.
3-SAT IS
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 548 / 569
![Page 934: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/934.jpg)
NP-Complete Problems
Let us consider now the class NPTIME and a problem P .
P
NPTIME
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 548 / 569
![Page 935: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/935.jpg)
NP-Complete Problems
A problem P is NP-hard if every problem from NPTIME can be reducedin polynomial time to P .
P
NPTIME
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 548 / 569
![Page 936: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/936.jpg)
NP-Complete Problems
A problem P is NP-complete if it is NP-hard and it belongs to the classNPTIME.
P
NPTIME
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 548 / 569
![Page 937: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/937.jpg)
NP-Complete Problems
If we have found a polynomial time algorithm for some NP-hardproblem P , then we would have polynomial time algorithms for allproblems P ′ from NPTIME:
At first we would apply an algorithm for the reduction from P ′ to P
on an input of a problem P ′.
Then we would use a polynomial algorithm for P on the constructedinstance of P and returned its result as the answer for the originalinstance of P ′.
Is such case, PTIME = NPTIME would hold, since for every problem fromNPTIME there would be a polynomial-time (deterministic) algorithm.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 549 / 569
![Page 938: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/938.jpg)
NP-Complete Problems
On the other hand, if there is at least one problem from NPTIME forwhich a polynomial-time algorithm does not exist, then it means that fornone of NP-hard problems there is a polynomial-time algorithm.
It is an open question whether the first or the second possibility holds.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 550 / 569
![Page 939: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/939.jpg)
NP-Complete Problems
It is not difficult to see that:
If a problem A can be reduced in a polynomial time to a problem B andproblem B can be reduced in a polynomial time to a problem C , thenproblem A can be reduced in a polynomial time to problem C .
So if we know about some problem P that it is NP-hard and that P canbe reduced in a polynomial time to a problem P ′, then we know that theproblem P ′ is also NP-hard.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 551 / 569
![Page 940: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/940.jpg)
NP-Complete Problems
Theorem
Problem SAT is NP-complete.
It can be shown that SAT can be reduced in a polynomial time to 3-SATand we have seen that 3-SAT can be reduced in a polynomial time to IS.
This means that problems 3-SAT and IS are NP-hard.
It is not difficult to show that 3-SAT and IS belong to the class NPTIME.
Problems 3-SAT and IS are NP-complete.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 552 / 569
![Page 941: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/941.jpg)
NP-Complete Problems
By a polynomial reductions from problems that are already known to beNP-complete, NP-completeness of many other problems can be shown:
IS
3−SAT
3−CG
SUBSET−SUM
ILP
SAT
VC
CLIQUE
HC TSPHK
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 553 / 569
![Page 942: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/942.jpg)
Examples of Some NP-Complete Problems
The following previously mentioned problems are NP-complete:
SAT (boolean satisfiability problem)
3-SAT
IS — independent set problem
On the following slides, examples of some other NP-complete problems are described:
CG — graph coloring (remark: it is NP-complete even in the special case where wehave 3 colors)
VC — vertex cover
CLIQUE — clique problem
HC — Hamiltonian cycle
HK — Hamiltonian circuit
TSP — traveling salesman problem
SUBSET-SUM
ILP — integer linear programming
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 554 / 569
![Page 943: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/943.jpg)
Graph Coloring
Graph coloring
Input: An undirected graph G , a natural number k .
Question: Is it possible to color nodes of the graph G using k colors insuch a way that there is no pair of nodes where both nodesare colored with the same color and connected with an edge?
Example: k = 3
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 555 / 569
![Page 944: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/944.jpg)
Graph Coloring
Graph coloring
Input: An undirected graph G , a natural number k .
Question: Is it possible to color nodes of the graph G using k colors insuch a way that there is no pair of nodes where both nodesare colored with the same color and connected with an edge?
Example: k = 3
Answer: YesZ. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 555 / 569
![Page 945: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/945.jpg)
Graph Coloring
Graph coloring
Input: An undirected graph G , a natural number k .
Question: Is it possible to color nodes of the graph G using k colors insuch a way that there is no pair of nodes where both nodesare colored with the same color and connected with an edge?
Example: k = 3
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 555 / 569
![Page 946: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/946.jpg)
Graph Coloring
Graph coloring
Input: An undirected graph G , a natural number k .
Question: Is it possible to color nodes of the graph G using k colors insuch a way that there is no pair of nodes where both nodesare colored with the same color and connected with an edge?
Example: k = 3
Answer: No
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 555 / 569
![Page 947: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/947.jpg)
VC – Vertex Cover
VC – vertex cover
Input: An undirected graph G and a natural number k .
Question: Is there some subset of nodes of G of size k such that everyedge has at least one of its nodes in this subset?
Example: k = 6
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 556 / 569
![Page 948: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/948.jpg)
VC – Vertex Cover
VC – vertex cover
Input: An undirected graph G and a natural number k .
Question: Is there some subset of nodes of G of size k such that everyedge has at least one of its nodes in this subset?
Example: k = 6
Answer: YesZ. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 556 / 569
![Page 949: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/949.jpg)
CLIQUE
CLIQUE
Input: An undirected graph G and a natural number k .
Question: Is there some subset of nodes of G of size k such that everytwo nodes from this subset are connected by an edge?
Example: k = 4
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 557 / 569
![Page 950: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/950.jpg)
CLIQUE
CLIQUE
Input: An undirected graph G and a natural number k .
Question: Is there some subset of nodes of G of size k such that everytwo nodes from this subset are connected by an edge?
Example: k = 4
Answer: YesZ. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 557 / 569
![Page 951: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/951.jpg)
Hamiltonian Cycle
HC – Hamiltonian cycle
Input: A directed graph G .
Question: Is there a Hamiltonian cycle in G (i.e., a directed cycle goingthrough each node exactly once)?
Example:
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 558 / 569
![Page 952: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/952.jpg)
Hamiltonian Cycle
HC – Hamiltonian cycle
Input: A directed graph G .
Question: Is there a Hamiltonian cycle in G (i.e., a directed cycle goingthrough each node exactly once)?
Example:
Answer: NoZ. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 558 / 569
![Page 953: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/953.jpg)
Hamiltonian Cycle
HC – Hamiltonian cycle
Input: A directed graph G .
Question: Is there a Hamiltonian cycle in G (i.e., a directed cycle goingthrough each node exactly once)?
Example:
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 558 / 569
![Page 954: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/954.jpg)
Hamiltonian Cycle
HC – Hamiltonian cycle
Input: A directed graph G .
Question: Is there a Hamiltonian cycle in G (i.e., a directed cycle goingthrough each node exactly once)?
Example:
Answer: YesZ. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 558 / 569
![Page 955: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/955.jpg)
Hamiltonian Circuit
HK – Hamiltonian circuit
Input: An undirected graph G .
Question: Is there a Hamiltonian circuit in G (i.e., an undirected cyclegoing through each node exactly once)?
Example:
Answer: NoZ. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 559 / 569
![Page 956: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/956.jpg)
Hamiltonian Circuit
HK – Hamiltonian circuit
Input: An undirected graph G .
Question: Is there a Hamiltonian circuit in G (i.e., an undirected cyclegoing through each node exactly once)?
Example:
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 559 / 569
![Page 957: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/957.jpg)
Hamiltonian Circuit
HK – Hamiltonian circuit
Input: An undirected graph G .
Question: Is there a Hamiltonian circuit in G (i.e., an undirected cyclegoing through each node exactly once)?
Example:
Answer: YesZ. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 559 / 569
![Page 958: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/958.jpg)
Traveling Salesman Problem
TSP - traveling salesman problem
Input: An undirected graph G with edges labelled with naturalnumbers and a number k .
Question: Is there a closed tour going through all nodes of the graph G
such that the sum of labels of edges on this tour is atmost k?
Example: k = 70
8
18 16
20
1
5 1
2
103
4
5
13
614
4
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 560 / 569
![Page 959: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/959.jpg)
Traveling Salesman Problem
TSP - traveling salesman problem
Input: An undirected graph G with edges labelled with naturalnumbers and a number k .
Question: Is there a closed tour going through all nodes of the graph G
such that the sum of labels of edges on this tour is atmost k?
Example: k = 70
8
18 16
20
1
5 1
2
103
4
5
13
614
4
Answer: Yes, since there is a tour with the sum 69.Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 560 / 569
![Page 960: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/960.jpg)
SUBSET-SUM
Problem SUBSET-SUM
Input: A sequence a1, a2, . . . , an of natural numbers and a naturalnumber s.
Question: Is there a set I ⊆ 1, 2, . . . , n such that∑
i∈I ai = s ?
In other words, the question is whether it is possible to select a subsetwith sum s of a given (multi)set of numbers.
Example: For the input consisting of numbers 3, 5, 2, 3, 7 and numbers = 15 the answer is Yes, since 3+ 5+ 7 = 15.
For the input consisting of numbers 3, 5, 2, 3, 7 and number s = 16 theanswer is No, since no subset of these numbers has sum 16.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 561 / 569
![Page 961: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/961.jpg)
SUBSET-SUM
Remark:The order of numbers a1, a2, . . . , an in an input is not important.
Note that this is not exactly the same as if we have formulated theproblem so that the input is a set a1, a2, . . . , an and a number s —numbers cannot occur multiple times in a set but they can in a sequence.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 562 / 569
![Page 962: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/962.jpg)
SUBSET-SUM
Problem SUBSET-SUM is a special case of a knapsack problem:
Knapsack problem
Input: Sequence of pairs of natural numbers(a1, b1), (a2, b2), . . . , (an, bn) and two natural numbers sand t.
Question: Is there a set I ⊆ 1, 2, . . . , n such that∑
i∈I ai ≤ s and∑i∈I bi ≥ t ?
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 563 / 569
![Page 963: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/963.jpg)
SUBSET-SUM
Informally, the knapsack problem can be formulated as follows:
We have n objects, where the i-th object weights ai grams and its priceis bi dollars.
The question is whether there is a subset of these objects with totalweight at most s grams (s is the capacity of the knapsack) and with totalprice at least t dollars.
Remark:Here we have formulated this problem as a decision problem.
This problem is usually formulated as an optimization problem where theaim is to find such a set I ⊆ 1, 2, . . . , n, where the value
∑i∈I bi is
maximal and where the condition∑
i∈I ai ≤ s is satisfied, i.e., where thecapacity of the knapsack is not exceeded.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 564 / 569
![Page 964: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/964.jpg)
SUBSET-SUM
That SUBSET-SUM is a special case of the Knapsack problem can beseen from the following simple construction:
Let us say that a1, a2, . . . , an, s1 is an instance of SUBSET-SUM.It is obvious that for the instance of the knapsack problem where we havethe sequence (a1, a1), (a2, a2), . . . , (an, an), s = s1 and t = s1, the answeris the same as for the original instance of SUBSET-SUM.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 565 / 569
![Page 965: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/965.jpg)
SUBSET-SUM
If we want to study the complexity of problems such as SUBSET-SUM orthe knapsack problem, we must clarify what we consider as the size of aninstance.
Probably the most natural it is to define the size of an instance as thetotal number of bits needed for its representation.
We must specify how natural numbers in the input are represented – if inbinary (resp. in some other numeral system with a base at least 2 (e.g.,decimal or hexadecimal) or in unary.
If we consider the total number of bits when numbers are written inbinary as the size of an input, no polynomial time algorithm is knownfor SUBSET-SUM.
If we consider the total number of bits when numbers are written inunary as the size of an input, SUBSET-SUM can be solved by analgorithm whose time complexity is polynomial.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 566 / 569
![Page 966: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/966.jpg)
ILP – Integer Linear Programming
Problem ILP (integer linear programming)
Input: An integer matrix A and an integer vector b.
Question: Is there an integer vector x such that Ax ≤ b?
An example of an instance of the problem:
A =
3 −2 51 0 12 1 0
b =
8−35
So the question is if the following system of inequations has some integersolution:
3x1 − 2x2 + 5x3 ≤ 8x1 + x3 ≤ −3
2x1 + x2 ≤ 5
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 567 / 569
![Page 967: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/967.jpg)
ILP – Integer Linear Programming
One of solutions of the system
3x1 − 2x2 + 5x3 ≤ 8x1 + x3 ≤ −3
2x1 + x2 ≤ 5
is for example x1 = −4, x2 = 1, x3 = 1, i.e.,
x =
−411
because3 · (−4) − 2 · 1+ 5 · 1 = −9 ≤ 8
−4+ 1 = −3 ≤ −32 · (−4) + 1 = −7 ≤ 5
So the answer for this instance is Yes.Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 568 / 569
![Page 968: Introduction to Theoretical Computer Science · 2019-02-08 · Introduction to Theoretical Computer Science Zdenˇek Sawa DepartmentofComputerScience,FEI, TechnicalUniversityofOstrava](https://reader034.vdocuments.mx/reader034/viewer/2022042219/5ec5a8db1bfbdc16b018221c/html5/thumbnails/968.jpg)
ILP – Integer Linear Programming
Remark: A similar problem where the question for a given system of linearinequations is whether it has a solution in the set of real numbers, can besolved in a polynomial time.
Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science February 8, 2019 569 / 569