Logic - DHBW Stuttgarthladik/Logik/2015/logic - overlays.pdf · Logic, logic, logic... Why do...

Preview:

Citation preview

Logic

Jan Hladik

DHBW Stuttgart

Wintersemester 2015/16

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 1 / 120

Introduction

Jan Hladik

Dipl.-Inform.: RWTH Aachen, 2001

Dr. rer. nat.: TU Dresden, 2007

Industry experience: SAP Research

Work in publicly funded research projectsCollaboration with SAP product groupsSupervision of Bachelor, Master, and PhD students

Professor: DHBW Stuttgart, 2014

Research

Semantic Web, Semantic Technologies, Automated Reasoning

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 2 / 120

Introduction

Jan Hladik

Dipl.-Inform.: RWTH Aachen, 2001

Dr. rer. nat.: TU Dresden, 2007

Industry experience: SAP Research

Work in publicly funded research projectsCollaboration with SAP product groupsSupervision of Bachelor, Master, and PhD students

Professor: DHBW Stuttgart, 2014

Research

Semantic Web, Semantic Technologies, Automated Reasoning

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 2 / 120

Outline

1 Why logic?

2 propositional and first-order logic

1 syntax and semantics of propositional logic2 reasoning

1 resolution2 tableaus

3 syntax and semantics of first-order logic4 reasoning

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 3 / 120

Logic, logic, logic. . .

Why do computer scientists need logic?

Mr Spock says:

Logic isthe beginning of wisdom,not the end.

Logic is not the ultimate purpose of a computer science course

but it lays the foundation for other topics

and is necessary to understand what computer science is about

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 4 / 120

Logic, logic, logic. . .

Why do computer scientists need logic?

Mr Spock says:

Logic isthe beginning of wisdom,not the end.

Logic is not the ultimate purpose of a computer science course

but it lays the foundation for other topics

and is necessary to understand what computer science is about

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 4 / 120

Logic, logic, logic. . .

Why do computer scientists need logic?

Mr Spock says:

Logic isthe beginning of wisdom,not the end.

Logic is not the ultimate purpose of a computer science course

but it lays the foundation for other topics

and is necessary to understand what computer science is about

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 4 / 120

What we need logic for

You can be a hacker without knowing anything about logic

like you can drive a car without knowing about engines

You need to know about the theoretical foundations of computerscience if you want to

understand what’s going on in a computer (Boolean logic)ensure that your program computes the right functiondesign your communication protocol so that it does not allow fordeadlocksensure that your algorithm runs as fast as possible

Without logic, you will only be a

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 5 / 120

What we need logic for

You can be a hacker without knowing anything about logiclike you can drive a car without knowing about engines

You need to know about the theoretical foundations of computerscience if you want to

understand what’s going on in a computer (Boolean logic)ensure that your program computes the right functiondesign your communication protocol so that it does not allow fordeadlocksensure that your algorithm runs as fast as possible

Without logic, you will only be a

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 5 / 120

What we need logic for

You can be a hacker without knowing anything about logiclike you can drive a car without knowing about engines

You need to know about the theoretical foundations of computerscience if you want to

understand what’s going on in a computer (Boolean logic)ensure that your program computes the right functiondesign your communication protocol so that it does not allow fordeadlocksensure that your algorithm runs as fast as possible

Without logic, you will only be a

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 5 / 120

What we need logic for

You can be a hacker without knowing anything about logiclike you can drive a car without knowing about engines

You need to know about the theoretical foundations of computerscience if you want to

understand what’s going on in a computer (Boolean logic)

ensure that your program computes the right functiondesign your communication protocol so that it does not allow fordeadlocksensure that your algorithm runs as fast as possible

Without logic, you will only be a

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 5 / 120

What we need logic for

You can be a hacker without knowing anything about logiclike you can drive a car without knowing about engines

You need to know about the theoretical foundations of computerscience if you want to

understand what’s going on in a computer (Boolean logic)ensure that your program computes the right function

design your communication protocol so that it does not allow fordeadlocksensure that your algorithm runs as fast as possible

Without logic, you will only be a

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 5 / 120

What we need logic for

You can be a hacker without knowing anything about logiclike you can drive a car without knowing about engines

You need to know about the theoretical foundations of computerscience if you want to

understand what’s going on in a computer (Boolean logic)ensure that your program computes the right functiondesign your communication protocol so that it does not allow fordeadlocks

ensure that your algorithm runs as fast as possible

Without logic, you will only be a

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 5 / 120

What we need logic for

You can be a hacker without knowing anything about logiclike you can drive a car without knowing about engines

You need to know about the theoretical foundations of computerscience if you want to

understand what’s going on in a computer (Boolean logic)ensure that your program computes the right functiondesign your communication protocol so that it does not allow fordeadlocksensure that your algorithm runs as fast as possible

Without logic, you will only be a

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 5 / 120

What we need logic for

You can be a hacker without knowing anything about logiclike you can drive a car without knowing about engines

You need to know about the theoretical foundations of computerscience if you want to

understand what’s going on in a computer (Boolean logic)ensure that your program computes the right functiondesign your communication protocol so that it does not allow fordeadlocksensure that your algorithm runs as fast as possible

Without logic, you will only be a

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 5 / 120

What we need logic for

You can be a hacker without knowing anything about logiclike you can drive a car without knowing about engines

You need to know about the theoretical foundations of computerscience if you want to

understand what’s going on in a computer (Boolean logic)ensure that your program computes the right functiondesign your communication protocol so that it does not allow fordeadlocksensure that your algorithm runs as fast as possible

Without logic, you will only be a

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 5 / 120

Propositional logic

most basic logic we consider in this course

limited expressivity

easy to understand and use

contains many concepts that are also used in more expressive logics

Propostional variables represent propositions

Example

A ; “it rains”

Operators represent relations between propositions

Example

A→ B ; “if it rains, the ground is wet”

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 6 / 120

Propositional logic

most basic logic we consider in this course

limited expressivity

easy to understand and use

contains many concepts that are also used in more expressive logics

Propostional variables represent propositions

Example

A ; “it rains”

Operators represent relations between propositions

Example

A→ B ; “if it rains, the ground is wet”

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 6 / 120

Propositional logic

most basic logic we consider in this course

limited expressivity

easy to understand and use

contains many concepts that are also used in more expressive logics

Propostional variables represent propositions

Example

A ; “it rains”

Operators represent relations between propositions

Example

A→ B ; “if it rains, the ground is wet”

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 6 / 120

Propositional variables

are referenced by capital letters A,B,X, Y, . . .

represent propositions that can be true or false

“It rains.”“Peter loves Mary.”“Socrates is mortal.”

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 7 / 120

Syntax of propositional logic

Definition (propositional formula)

every propositional variable is a propositional formula

> and ⊥ are propositional formulas

if ϕ and ψ are propositional formulas, then so are

¬ϕ (negation)ϕ ∧ ψ (conjunction)ϕ ∨ ψ (disjunction)ϕ→ ψ (material implication)ϕ↔ ψ (material equivalence)(ϕ) (brackets indicate precedence)

Examples

A ∧B⊥ ∨A¬>

A ∧ (B ∨ C)

¬(A ∨B)

C → (B ∨D)

A→ (B∧(C ↔ D)∨(D → E))

A↔ (A↔ D)

((A↔ B)↔ (C ↔ D))→ E

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 8 / 120

Syntax of propositional logic

Definition (propositional formula)

every propositional variable is a propositional formula

> and ⊥ are propositional formulas

if ϕ and ψ are propositional formulas, then so are

¬ϕ (negation)ϕ ∧ ψ (conjunction)ϕ ∨ ψ (disjunction)ϕ→ ψ (material implication)ϕ↔ ψ (material equivalence)(ϕ) (brackets indicate precedence)

Examples

A ∧B⊥ ∨A¬>

A ∧ (B ∨ C)

¬(A ∨B)

C → (B ∨D)

A→ (B∧(C ↔ D)∨(D → E))

A↔ (A↔ D)

((A↔ B)↔ (C ↔ D))→ E

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 8 / 120

Syntax of propositional logic

Definition (propositional formula)

every propositional variable is a propositional formula

> and ⊥ are propositional formulas

if ϕ and ψ are propositional formulas, then so are

¬ϕ (negation)ϕ ∧ ψ (conjunction)ϕ ∨ ψ (disjunction)ϕ→ ψ (material implication)ϕ↔ ψ (material equivalence)(ϕ) (brackets indicate precedence)

Examples

A ∧B⊥ ∨A¬>

A ∧ (B ∨ C)

¬(A ∨B)

C → (B ∨D)

A→ (B∧(C ↔ D)∨(D → E))

A↔ (A↔ D)

((A↔ B)↔ (C ↔ D))→ E

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 8 / 120

Syntax of propositional logic

Definition (propositional formula)

every propositional variable is a propositional formula

> and ⊥ are propositional formulas

if ϕ and ψ are propositional formulas, then so are

¬ϕ (negation)

ϕ ∧ ψ (conjunction)ϕ ∨ ψ (disjunction)ϕ→ ψ (material implication)ϕ↔ ψ (material equivalence)(ϕ) (brackets indicate precedence)

Examples

A ∧B⊥ ∨A¬>

A ∧ (B ∨ C)

¬(A ∨B)

C → (B ∨D)

A→ (B∧(C ↔ D)∨(D → E))

A↔ (A↔ D)

((A↔ B)↔ (C ↔ D))→ E

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 8 / 120

Syntax of propositional logic

Definition (propositional formula)

every propositional variable is a propositional formula

> and ⊥ are propositional formulas

if ϕ and ψ are propositional formulas, then so are

¬ϕ (negation)ϕ ∧ ψ (conjunction)

ϕ ∨ ψ (disjunction)ϕ→ ψ (material implication)ϕ↔ ψ (material equivalence)(ϕ) (brackets indicate precedence)

Examples

A ∧B⊥ ∨A¬>

A ∧ (B ∨ C)

¬(A ∨B)

C → (B ∨D)

A→ (B∧(C ↔ D)∨(D → E))

A↔ (A↔ D)

((A↔ B)↔ (C ↔ D))→ E

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 8 / 120

Syntax of propositional logic

Definition (propositional formula)

every propositional variable is a propositional formula

> and ⊥ are propositional formulas

if ϕ and ψ are propositional formulas, then so are

¬ϕ (negation)ϕ ∧ ψ (conjunction)ϕ ∨ ψ (disjunction)

ϕ→ ψ (material implication)ϕ↔ ψ (material equivalence)(ϕ) (brackets indicate precedence)

Examples

A ∧B⊥ ∨A¬>

A ∧ (B ∨ C)

¬(A ∨B)

C → (B ∨D)

A→ (B∧(C ↔ D)∨(D → E))

A↔ (A↔ D)

((A↔ B)↔ (C ↔ D))→ E

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 8 / 120

Syntax of propositional logic

Definition (propositional formula)

every propositional variable is a propositional formula

> and ⊥ are propositional formulas

if ϕ and ψ are propositional formulas, then so are

¬ϕ (negation)ϕ ∧ ψ (conjunction)ϕ ∨ ψ (disjunction)ϕ→ ψ (material implication)

ϕ↔ ψ (material equivalence)(ϕ) (brackets indicate precedence)

Examples

A ∧B⊥ ∨A¬>

A ∧ (B ∨ C)

¬(A ∨B)

C → (B ∨D)

A→ (B∧(C ↔ D)∨(D → E))

A↔ (A↔ D)

((A↔ B)↔ (C ↔ D))→ E

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 8 / 120

Syntax of propositional logic

Definition (propositional formula)

every propositional variable is a propositional formula

> and ⊥ are propositional formulas

if ϕ and ψ are propositional formulas, then so are

¬ϕ (negation)ϕ ∧ ψ (conjunction)ϕ ∨ ψ (disjunction)ϕ→ ψ (material implication)ϕ↔ ψ (material equivalence)

(ϕ) (brackets indicate precedence)

Examples

A ∧B⊥ ∨A¬>

A ∧ (B ∨ C)

¬(A ∨B)

C → (B ∨D)

A→ (B∧(C ↔ D)∨(D → E))

A↔ (A↔ D)

((A↔ B)↔ (C ↔ D))→ E

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 8 / 120

Syntax of propositional logic

Definition (propositional formula)

every propositional variable is a propositional formula

> and ⊥ are propositional formulas

if ϕ and ψ are propositional formulas, then so are

¬ϕ (negation)ϕ ∧ ψ (conjunction)ϕ ∨ ψ (disjunction)ϕ→ ψ (material implication)ϕ↔ ψ (material equivalence)(ϕ) (brackets indicate precedence)

Examples

A ∧B⊥ ∨A¬>

A ∧ (B ∨ C)

¬(A ∨B)

C → (B ∨D)

A→ (B∧(C ↔ D)∨(D → E))

A↔ (A↔ D)

((A↔ B)↔ (C ↔ D))→ E

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 8 / 120

Syntax of propositional logic

Definition (propositional formula)

every propositional variable is a propositional formula

> and ⊥ are propositional formulas

if ϕ and ψ are propositional formulas, then so are

¬ϕ (negation)ϕ ∧ ψ (conjunction)ϕ ∨ ψ (disjunction)ϕ→ ψ (material implication)ϕ↔ ψ (material equivalence)(ϕ) (brackets indicate precedence)

Examples

A ∧B⊥ ∨A¬>

A ∧ (B ∨ C)

¬(A ∨B)

C → (B ∨D)

A→ (B∧(C ↔ D)∨(D → E))

A↔ (A↔ D)

((A↔ B)↔ (C ↔ D))→ E

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 8 / 120

Syntax of propositional logic

Definition (propositional formula)

every propositional variable is a propositional formula

> and ⊥ are propositional formulas

if ϕ and ψ are propositional formulas, then so are

¬ϕ (negation)ϕ ∧ ψ (conjunction)ϕ ∨ ψ (disjunction)ϕ→ ψ (material implication)ϕ↔ ψ (material equivalence)(ϕ) (brackets indicate precedence)

Examples

A ∧B⊥ ∨A¬>

A ∧ (B ∨ C)

¬(A ∨B)

C → (B ∨D)

A→ (B∧(C ↔ D)∨(D → E))

A↔ (A↔ D)

((A↔ B)↔ (C ↔ D))→ E

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 8 / 120

Exercise: syntax of PL

Which of the following are propositional formulas?

a) A→ ⊥b) A ∧ (B ∨ C)

c) A¬Bd) (A→ C) ∧ (¬A→ C)→ C

e) ∨B ∨ C ∧Df) A→ (B ∨ ¬B)(C ∨ ¬C)

g) A→ A

h) A ∧ ¬Ai) A¬ ∧Bj) ¬A ∧Bk) (¬A) ∧Bl) ¬(A ∧B)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 9 / 120

Precedence and associativity of logical operators

Precedence of operators:

operator precedence

¬ 1 (strongest)∧ 2∨ 3→ 4↔ 5 (weakest)

Example

A ∧B → B ∨ C means (A ∧B)→ (B ∨ C)

Operators of the same precedence are left-associative.

Example

A→ B → C means (A→ B)→ C

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 10 / 120

Precedence and associativity of logical operators

Precedence of operators:

operator precedence

¬ 1 (strongest)∧ 2∨ 3→ 4↔ 5 (weakest)

Example

A ∧B → B ∨ C means (A ∧B)→ (B ∨ C)

Operators of the same precedence are left-associative.

Example

A→ B → C means (A→ B)→ C

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 10 / 120

Precedence and associativity of logical operators

Precedence of operators:

operator precedence

¬ 1 (strongest)∧ 2∨ 3→ 4↔ 5 (weakest)

Example

A ∧B → B ∨ C means (A ∧B)→ (B ∨ C)

Operators of the same precedence are left-associative.

Example

A→ B → C means (A→ B)→ C

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 10 / 120

Precedence and associativity of logical operators

Precedence of operators:

operator precedence

¬ 1 (strongest)∧ 2∨ 3→ 4↔ 5 (weakest)

Example

A ∧B → B ∨ C means (A ∧B)→ (B ∨ C)

Operators of the same precedence are left-associative.

Example

A→ B → C means (A→ B)→ C

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 10 / 120

Exercise: Precedence and brackets

Remove as many brackets as possible without changing the precedence.

a) ((A ∧B) ∨ ((C ∧D)→ (A ∨ C)))

b) ((((A ∧ (B ∨ C) ∧D))→ A) ∨ C)

c) (A ∧ (B ∨ (C ∧ (D → (A ∨ C)))))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 11 / 120

Semantics of propositional logic

assigning meaning to a logical formula.

assigning 0 or 1 to the variables

making the formula true or false

An interpretation assigns a truth value to variables (and thus formulas)

Definition (interpretation)

Function I : V → B where

V is a set of propositional variables

B is the binary set {0, 1}

Example

A 7→ 0 ; “it does not rain”

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 12 / 120

Semantics of propositional logic

assigning meaning to a logical formula.

assigning 0 or 1 to the variables

making the formula true or false

An interpretation assigns a truth value to variables (and thus formulas)

Definition (interpretation)

Function I : V → B where

V is a set of propositional variables

B is the binary set {0, 1}

Example

A 7→ 0 ; “it does not rain”

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 12 / 120

Semantics of propositional logic

assigning meaning to a logical formula.

assigning 0 or 1 to the variables

making the formula true or false

An interpretation assigns a truth value to variables (and thus formulas)

Definition (interpretation)

Function I : V → B where

V is a set of propositional variables

B is the binary set {0, 1}

Example

A 7→ 0 ; “it does not rain”

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 12 / 120

Interpretation of complex formulas

⊥I >I0 1

ϕI 0 1

(¬ϕ)I 1 0

(ϕ ∧ ψ)I

ϕI 0 1ψI

0 0 01 0 1

(ϕ ∨ ψ)I

ϕI 0 1ψI

0 0 11 1 1

(ϕ→ ψ)I

ϕI 0 1ψI

0 1 01 1 1

(ϕ↔ ψ)I

ϕI 0 1ψI

0 1 01 0 1

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 13 / 120

Interpretation of complex formulas

⊥I >I0 1

ϕI 0 1

(¬ϕ)I 1 0

(ϕ ∧ ψ)I

ϕI 0 1ψI

0 0 01 0 1

(ϕ ∨ ψ)I

ϕI 0 1ψI

0 0 11 1 1

(ϕ→ ψ)I

ϕI 0 1ψI

0 1 01 1 1

(ϕ↔ ψ)I

ϕI 0 1ψI

0 1 01 0 1

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 13 / 120

Interpretation of complex formulas

⊥I >I0 1

ϕI 0 1

(¬ϕ)I 1 0

(ϕ ∧ ψ)I

ϕI 0 1ψI

0 0 01 0 1

(ϕ ∨ ψ)I

ϕI 0 1ψI

0 0 11 1 1

(ϕ→ ψ)I

ϕI 0 1ψI

0 1 01 1 1

(ϕ↔ ψ)I

ϕI 0 1ψI

0 1 01 0 1

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 13 / 120

Interpretation of complex formulas

⊥I >I0 1

ϕI 0 1

(¬ϕ)I 1 0

(ϕ ∧ ψ)I

ϕI 0 1ψI

0 0 01 0 1

(ϕ ∨ ψ)I

ϕI 0 1ψI

0 0 11 1 1

(ϕ→ ψ)I

ϕI 0 1ψI

0 1 01 1 1

(ϕ↔ ψ)I

ϕI 0 1ψI

0 1 01 0 1

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 13 / 120

Interpretation of complex formulas

⊥I >I0 1

ϕI 0 1

(¬ϕ)I 1 0

(ϕ ∧ ψ)I

ϕI 0 1ψI

0 0 01 0 1

(ϕ ∨ ψ)I

ϕI 0 1ψI

0 0 11 1 1

(ϕ→ ψ)I

ϕI 0 1ψI

0 1 01 1 1

(ϕ↔ ψ)I

ϕI 0 1ψI

0 1 01 0 1

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 13 / 120

Interpretation of complex formulas

⊥I >I0 1

ϕI 0 1

(¬ϕ)I 1 0

(ϕ ∧ ψ)I

ϕI 0 1ψI

0 0 01 0 1

(ϕ ∨ ψ)I

ϕI 0 1ψI

0 0 11 1 1

(ϕ→ ψ)I

ϕI 0 1ψI

0 1 01 1 1

(ϕ↔ ψ)I

ϕI 0 1ψI

0 1 01 0 1

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 13 / 120

Example: interpretations

The interpretation I = {A 7→ 1, B 7→ 1, C 7→ 0} makes the formula

B true;

A ∧B true;

A ∧ C false;

(A ∧B) ∨ (A ∧ C) true;

((A ∧B) ∨ (A ∧ C))→ C false.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 14 / 120

Basic equivalences

Definition (equivalent)

Two propisitional formulas ϕ and ψ are equivalent if every interpretationassigns the same truth value to both formulas, i.e.

ϕI = ψI for every I

Due to the semantics, one can express some operators by using other ones

Theorem (equivalences)

ϕ↔ ψ is equivalent to (ϕ→ ψ) ∧ (ψ → ϕ) or (ϕ ∧ ψ) ∨ (¬ϕ ∧ ¬ψ)

ϕ→ ψ is equivalent to ¬ϕ ∨ ψϕ ∧ ψ is equivalent to ¬(¬ϕ ∨ ¬ψ)

ϕ ∨ ψ is equivalent to ¬(¬ϕ ∧ ¬ψ)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 15 / 120

Basic equivalences

Definition (equivalent)

Two propisitional formulas ϕ and ψ are equivalent if every interpretationassigns the same truth value to both formulas, i.e.

ϕI = ψI for every I

Due to the semantics, one can express some operators by using other ones

Theorem (equivalences)

ϕ↔ ψ is equivalent to (ϕ→ ψ) ∧ (ψ → ϕ) or (ϕ ∧ ψ) ∨ (¬ϕ ∧ ¬ψ)

ϕ→ ψ is equivalent to ¬ϕ ∨ ψϕ ∧ ψ is equivalent to ¬(¬ϕ ∨ ¬ψ)

ϕ ∨ ψ is equivalent to ¬(¬ϕ ∧ ¬ψ)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 15 / 120

Basic equivalences

Definition (equivalent)

Two propisitional formulas ϕ and ψ are equivalent if every interpretationassigns the same truth value to both formulas, i.e.

ϕI = ψI for every I

Due to the semantics, one can express some operators by using other ones

Theorem (equivalences)

ϕ↔ ψ is equivalent to (ϕ→ ψ) ∧ (ψ → ϕ) or (ϕ ∧ ψ) ∨ (¬ϕ ∧ ¬ψ)

ϕ→ ψ is equivalent to ¬ϕ ∨ ψ

ϕ ∧ ψ is equivalent to ¬(¬ϕ ∨ ¬ψ)

ϕ ∨ ψ is equivalent to ¬(¬ϕ ∧ ¬ψ)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 15 / 120

Basic equivalences

Definition (equivalent)

Two propisitional formulas ϕ and ψ are equivalent if every interpretationassigns the same truth value to both formulas, i.e.

ϕI = ψI for every I

Due to the semantics, one can express some operators by using other ones

Theorem (equivalences)

ϕ↔ ψ is equivalent to (ϕ→ ψ) ∧ (ψ → ϕ) or (ϕ ∧ ψ) ∨ (¬ϕ ∧ ¬ψ)

ϕ→ ψ is equivalent to ¬ϕ ∨ ψϕ ∧ ψ is equivalent to ¬(¬ϕ ∨ ¬ψ)

ϕ ∨ ψ is equivalent to ¬(¬ϕ ∧ ¬ψ)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 15 / 120

Basic equivalences

Definition (equivalent)

Two propisitional formulas ϕ and ψ are equivalent if every interpretationassigns the same truth value to both formulas, i.e.

ϕI = ψI for every I

Due to the semantics, one can express some operators by using other ones

Theorem (equivalences)

ϕ↔ ψ is equivalent to (ϕ→ ψ) ∧ (ψ → ϕ) or (ϕ ∧ ψ) ∨ (¬ϕ ∧ ¬ψ)

ϕ→ ψ is equivalent to ¬ϕ ∨ ψϕ ∧ ψ is equivalent to ¬(¬ϕ ∨ ¬ψ)

ϕ ∨ ψ is equivalent to ¬(¬ϕ ∧ ¬ψ)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 15 / 120

Exercise: interpretations

Find two interpretations for each of the following formulas

one that makes them true

one that makes them false

a) A ∧B → C

b) (A ∨B) ∧ (A ∨ C)→ (B ∧ C)

c) A→ B ↔ ¬B → ¬A

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 16 / 120

Tautologies

Definition (tautology)

A tautology is a formula which is true in every interpretation.

Examples (tautologies)

A↔ A (identity)

¬(A ∧ ¬A) (noncontradiction)

A ∨ ¬A (excluded middle)

A→ B ↔ ¬B → ¬A (contraposition)

(A→ B) ∧ (A→ ¬B)→ ¬A (reductio ad absurdum)

(A→ B) ∧ (B → C)→ (A→ C) (syllogism)

(A ∨B) ∧ (A→ C) ∧ (B → C)→ C (proof by cases)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 17 / 120

Tautologies

Definition (tautology)

A tautology is a formula which is true in every interpretation.

Examples (tautologies)

A↔ A (identity)

¬(A ∧ ¬A) (noncontradiction)

A ∨ ¬A (excluded middle)

A→ B ↔ ¬B → ¬A (contraposition)

(A→ B) ∧ (A→ ¬B)→ ¬A (reductio ad absurdum)

(A→ B) ∧ (B → C)→ (A→ C) (syllogism)

(A ∨B) ∧ (A→ C) ∧ (B → C)→ C (proof by cases)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 17 / 120

Tautologies

Definition (tautology)

A tautology is a formula which is true in every interpretation.

Examples (tautologies)

A↔ A (identity)

¬(A ∧ ¬A) (noncontradiction)

A ∨ ¬A (excluded middle)

A→ B ↔ ¬B → ¬A (contraposition)

(A→ B) ∧ (A→ ¬B)→ ¬A (reductio ad absurdum)

(A→ B) ∧ (B → C)→ (A→ C) (syllogism)

(A ∨B) ∧ (A→ C) ∧ (B → C)→ C (proof by cases)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 17 / 120

Tautologies

Definition (tautology)

A tautology is a formula which is true in every interpretation.

Examples (tautologies)

A↔ A (identity)

¬(A ∧ ¬A) (noncontradiction)

A ∨ ¬A (excluded middle)

A→ B ↔ ¬B → ¬A (contraposition)

(A→ B) ∧ (A→ ¬B)→ ¬A (reductio ad absurdum)

(A→ B) ∧ (B → C)→ (A→ C) (syllogism)

(A ∨B) ∧ (A→ C) ∧ (B → C)→ C (proof by cases)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 17 / 120

Tautologies

Definition (tautology)

A tautology is a formula which is true in every interpretation.

Examples (tautologies)

A↔ A (identity)

¬(A ∧ ¬A) (noncontradiction)

A ∨ ¬A (excluded middle)

A→ B ↔ ¬B → ¬A (contraposition)

(A→ B) ∧ (A→ ¬B)→ ¬A (reductio ad absurdum)

(A→ B) ∧ (B → C)→ (A→ C) (syllogism)

(A ∨B) ∧ (A→ C) ∧ (B → C)→ C (proof by cases)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 17 / 120

Tautologies

Definition (tautology)

A tautology is a formula which is true in every interpretation.

Examples (tautologies)

A↔ A (identity)

¬(A ∧ ¬A) (noncontradiction)

A ∨ ¬A (excluded middle)

A→ B ↔ ¬B → ¬A (contraposition)

(A→ B) ∧ (A→ ¬B)→ ¬A (reductio ad absurdum)

(A→ B) ∧ (B → C)→ (A→ C) (syllogism)

(A ∨B) ∧ (A→ C) ∧ (B → C)→ C (proof by cases)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 17 / 120

Tautologies

Definition (tautology)

A tautology is a formula which is true in every interpretation.

Examples (tautologies)

A↔ A (identity)

¬(A ∧ ¬A) (noncontradiction)

A ∨ ¬A (excluded middle)

A→ B ↔ ¬B → ¬A (contraposition)

(A→ B) ∧ (A→ ¬B)→ ¬A (reductio ad absurdum)

(A→ B) ∧ (B → C)→ (A→ C) (syllogism)

(A ∨B) ∧ (A→ C) ∧ (B → C)→ C (proof by cases)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 17 / 120

Tautologies

Definition (tautology)

A tautology is a formula which is true in every interpretation.

Examples (tautologies)

A↔ A (identity)

¬(A ∧ ¬A) (noncontradiction)

A ∨ ¬A (excluded middle)

A→ B ↔ ¬B → ¬A (contraposition)

(A→ B) ∧ (A→ ¬B)→ ¬A (reductio ad absurdum)

(A→ B) ∧ (B → C)→ (A→ C) (syllogism)

(A ∨B) ∧ (A→ C) ∧ (B → C)→ C (proof by cases)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 17 / 120

Further tautologies

(A ∧B) ∨ C ↔ (A ∨ C) ∧ (B ∨ C) (distributivity)

(A ∧B) ∧ C ↔ A ∧ (B ∧ C) (associativity)

A ∧B ↔ B ∧A (commutativity)

¬(A ∧B)↔ ¬A ∨ ¬B (de Morgan’s law)

A ∧A↔ A; A ∨A↔ A (idempotence)

A ∧ > ↔ A; A ∨ ⊥ ↔ A (neutral element)

A ∧ ⊥ ↔ ⊥; A ∨ > ↔ > (absorbing element)

¬¬A↔ A (double negation)

Distributivity, associativity, commutativity, and deMorgan’s law also hold if∧ is replaced with ∨ and vice versa.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 18 / 120

Further tautologies

(A ∧B) ∨ C ↔ (A ∨ C) ∧ (B ∨ C) (distributivity)

(A ∧B) ∧ C ↔ A ∧ (B ∧ C) (associativity)

A ∧B ↔ B ∧A (commutativity)

¬(A ∧B)↔ ¬A ∨ ¬B (de Morgan’s law)

A ∧A↔ A; A ∨A↔ A (idempotence)

A ∧ > ↔ A; A ∨ ⊥ ↔ A (neutral element)

A ∧ ⊥ ↔ ⊥; A ∨ > ↔ > (absorbing element)

¬¬A↔ A (double negation)

Distributivity, associativity, commutativity, and deMorgan’s law also hold if∧ is replaced with ∨ and vice versa.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 18 / 120

Further tautologies

(A ∧B) ∨ C ↔ (A ∨ C) ∧ (B ∨ C) (distributivity)

(A ∧B) ∧ C ↔ A ∧ (B ∧ C) (associativity)

A ∧B ↔ B ∧A (commutativity)

¬(A ∧B)↔ ¬A ∨ ¬B (de Morgan’s law)

A ∧A↔ A; A ∨A↔ A (idempotence)

A ∧ > ↔ A; A ∨ ⊥ ↔ A (neutral element)

A ∧ ⊥ ↔ ⊥; A ∨ > ↔ > (absorbing element)

¬¬A↔ A (double negation)

Distributivity, associativity, commutativity, and deMorgan’s law also hold if∧ is replaced with ∨ and vice versa.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 18 / 120

Further tautologies

(A ∧B) ∨ C ↔ (A ∨ C) ∧ (B ∨ C) (distributivity)

(A ∧B) ∧ C ↔ A ∧ (B ∧ C) (associativity)

A ∧B ↔ B ∧A (commutativity)

¬(A ∧B)↔ ¬A ∨ ¬B (de Morgan’s law)

A ∧A↔ A; A ∨A↔ A (idempotence)

A ∧ > ↔ A; A ∨ ⊥ ↔ A (neutral element)

A ∧ ⊥ ↔ ⊥; A ∨ > ↔ > (absorbing element)

¬¬A↔ A (double negation)

Distributivity, associativity, commutativity, and deMorgan’s law also hold if∧ is replaced with ∨ and vice versa.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 18 / 120

Further tautologies

(A ∧B) ∨ C ↔ (A ∨ C) ∧ (B ∨ C) (distributivity)

(A ∧B) ∧ C ↔ A ∧ (B ∧ C) (associativity)

A ∧B ↔ B ∧A (commutativity)

¬(A ∧B)↔ ¬A ∨ ¬B (de Morgan’s law)

A ∧A↔ A; A ∨A↔ A (idempotence)

A ∧ > ↔ A; A ∨ ⊥ ↔ A (neutral element)

A ∧ ⊥ ↔ ⊥; A ∨ > ↔ > (absorbing element)

¬¬A↔ A (double negation)

Distributivity, associativity, commutativity, and deMorgan’s law also hold if∧ is replaced with ∨ and vice versa.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 18 / 120

Further tautologies

(A ∧B) ∨ C ↔ (A ∨ C) ∧ (B ∨ C) (distributivity)

(A ∧B) ∧ C ↔ A ∧ (B ∧ C) (associativity)

A ∧B ↔ B ∧A (commutativity)

¬(A ∧B)↔ ¬A ∨ ¬B (de Morgan’s law)

A ∧A↔ A; A ∨A↔ A (idempotence)

A ∧ > ↔ A; A ∨ ⊥ ↔ A (neutral element)

A ∧ ⊥ ↔ ⊥; A ∨ > ↔ > (absorbing element)

¬¬A↔ A (double negation)

Distributivity, associativity, commutativity, and deMorgan’s law also hold if∧ is replaced with ∨ and vice versa.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 18 / 120

Further tautologies

(A ∧B) ∨ C ↔ (A ∨ C) ∧ (B ∨ C) (distributivity)

(A ∧B) ∧ C ↔ A ∧ (B ∧ C) (associativity)

A ∧B ↔ B ∧A (commutativity)

¬(A ∧B)↔ ¬A ∨ ¬B (de Morgan’s law)

A ∧A↔ A; A ∨A↔ A (idempotence)

A ∧ > ↔ A; A ∨ ⊥ ↔ A (neutral element)

A ∧ ⊥ ↔ ⊥; A ∨ > ↔ > (absorbing element)

¬¬A↔ A (double negation)

Distributivity, associativity, commutativity, and deMorgan’s law also hold if∧ is replaced with ∨ and vice versa.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 18 / 120

Further tautologies

(A ∧B) ∨ C ↔ (A ∨ C) ∧ (B ∨ C) (distributivity)

(A ∧B) ∧ C ↔ A ∧ (B ∧ C) (associativity)

A ∧B ↔ B ∧A (commutativity)

¬(A ∧B)↔ ¬A ∨ ¬B (de Morgan’s law)

A ∧A↔ A; A ∨A↔ A (idempotence)

A ∧ > ↔ A; A ∨ ⊥ ↔ A (neutral element)

A ∧ ⊥ ↔ ⊥; A ∨ > ↔ > (absorbing element)

¬¬A↔ A (double negation)

Distributivity, associativity, commutativity, and deMorgan’s law also hold if∧ is replaced with ∨ and vice versa.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 18 / 120

Further tautologies

(A ∧B) ∨ C ↔ (A ∨ C) ∧ (B ∨ C) (distributivity)

(A ∧B) ∧ C ↔ A ∧ (B ∧ C) (associativity)

A ∧B ↔ B ∧A (commutativity)

¬(A ∧B)↔ ¬A ∨ ¬B (de Morgan’s law)

A ∧A↔ A; A ∨A↔ A (idempotence)

A ∧ > ↔ A; A ∨ ⊥ ↔ A (neutral element)

A ∧ ⊥ ↔ ⊥; A ∨ > ↔ > (absorbing element)

¬¬A↔ A (double negation)

Distributivity, associativity, commutativity, and deMorgan’s law also hold if∧ is replaced with ∨ and vice versa.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 18 / 120

Further tautologies

(A ∧B) ∨ C ↔ (A ∨ C) ∧ (B ∨ C) (distributivity)

(A ∧B) ∧ C ↔ A ∧ (B ∧ C) (associativity)

A ∧B ↔ B ∧A (commutativity)

¬(A ∧B)↔ ¬A ∨ ¬B (de Morgan’s law)

A ∧A↔ A; A ∨A↔ A (idempotence)

A ∧ > ↔ A; A ∨ ⊥ ↔ A (neutral element)

A ∧ ⊥ ↔ ⊥; A ∨ > ↔ > (absorbing element)

¬¬A↔ A (double negation)

Distributivity, associativity, commutativity, and deMorgan’s law also hold if∧ is replaced with ∨ and vice versa.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 18 / 120

Models, validity, satisfiability

Definition (model)

A model for a formula ϕ is an interpretation I that makes ϕ true (I |= ϕ).

I = {A 7→ 1, B 7→ 0} is a model for A ∨B, but not for A ∧B.

Definition (satisfiable, valid)

A formula ϕ is called satisfiable if it has a model.A formula ϕ is called valid (|= ϕ) if every interpretation is a model (i.e. ifit is a tautology).

satisfiable A, A ∨B, A ∧ ¬B, A↔ B

valid A ∨ ¬A, A→ A, A↔ ¬(¬A)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 19 / 120

Models, validity, satisfiability

Definition (model)

A model for a formula ϕ is an interpretation I that makes ϕ true (I |= ϕ).

I = {A 7→ 1, B 7→ 0} is a model for A ∨B, but not for A ∧B.

Definition (satisfiable, valid)

A formula ϕ is called satisfiable if it has a model.A formula ϕ is called valid (|= ϕ) if every interpretation is a model (i.e. ifit is a tautology).

satisfiable A, A ∨B, A ∧ ¬B, A↔ B

valid A ∨ ¬A, A→ A, A↔ ¬(¬A)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 19 / 120

Models, validity, satisfiability

Definition (model)

A model for a formula ϕ is an interpretation I that makes ϕ true (I |= ϕ).

I = {A 7→ 1, B 7→ 0} is a model for A ∨B, but not for A ∧B.

Definition (satisfiable, valid)

A formula ϕ is called satisfiable if it has a model.

A formula ϕ is called valid (|= ϕ) if every interpretation is a model (i.e. ifit is a tautology).

satisfiable A, A ∨B, A ∧ ¬B, A↔ B

valid A ∨ ¬A, A→ A, A↔ ¬(¬A)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 19 / 120

Models, validity, satisfiability

Definition (model)

A model for a formula ϕ is an interpretation I that makes ϕ true (I |= ϕ).

I = {A 7→ 1, B 7→ 0} is a model for A ∨B, but not for A ∧B.

Definition (satisfiable, valid)

A formula ϕ is called satisfiable if it has a model.A formula ϕ is called valid (|= ϕ) if every interpretation is a model (i.e. ifit is a tautology).

satisfiable A, A ∨B, A ∧ ¬B, A↔ B

valid A ∨ ¬A, A→ A, A↔ ¬(¬A)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 19 / 120

Models, validity, satisfiability

Definition (model)

A model for a formula ϕ is an interpretation I that makes ϕ true (I |= ϕ).

I = {A 7→ 1, B 7→ 0} is a model for A ∨B, but not for A ∧B.

Definition (satisfiable, valid)

A formula ϕ is called satisfiable if it has a model.A formula ϕ is called valid (|= ϕ) if every interpretation is a model (i.e. ifit is a tautology).

satisfiable A, A ∨B, A ∧ ¬B, A↔ B

valid A ∨ ¬A, A→ A, A↔ ¬(¬A)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 19 / 120

Models, validity, satisfiability

Definition (model)

A model for a formula ϕ is an interpretation I that makes ϕ true (I |= ϕ).

I = {A 7→ 1, B 7→ 0} is a model for A ∨B, but not for A ∧B.

Definition (satisfiable, valid)

A formula ϕ is called satisfiable if it has a model.A formula ϕ is called valid (|= ϕ) if every interpretation is a model (i.e. ifit is a tautology).

satisfiable A, A ∨B, A ∧ ¬B, A↔ B

valid A ∨ ¬A, A→ A, A↔ ¬(¬A)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 19 / 120

Outline

1 propositional and first-order logic

1 syntax and semantics of propositional logic2 reasoning

1 resolution2 tableaus

3 syntax and semantics of first-order logic4 reasoning

2 Prolog

3 modal and description logics

4 Semantic Web

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 20 / 120

Reasoning in propositional logic

Determine if a formula ϕ is

valid (a tautology, i.e. every interpretation is a model)satisfiable (there is a model)unsatisfiable (there are no models)

Determine if a formula ϕ implies another formula ψ (ϕ |= ψ),i.e every model for ϕ is a model for ψ

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 21 / 120

Reasoning in propositional logic

Determine if a formula ϕ is

valid (a tautology, i.e. every interpretation is a model)satisfiable (there is a model)unsatisfiable (there are no models)

Determine if a formula ϕ implies another formula ψ (ϕ |= ψ),i.e every model for ϕ is a model for ψ

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 21 / 120

Showing that a formula is valid

A formula can be shown to be a tautology by using known equivalences:

Example: reductio ad absurdum

(A→ B) ∧ (A→ ¬B)→ ¬A

definition of → (twice)(¬A ∨B) ∧ (¬A ∨ ¬B)→ ¬A definition of →¬((¬A ∨B) ∧ (¬A ∨ ¬B)) ∨ ¬A De Morgan¬(¬A ∨B) ∨ ¬(¬A ∨ ¬B) ∨ ¬A De Morgan (twice)

(A ∧ ¬B) ∨ (A ∧B) ∨ ¬A distributivity(A ∧ (¬B ∨B)) ∨ ¬A excluded middle

(A ∧ >) ∨ ¬A > is neutral element for ∧A ∨ ¬A excluded middle>

Drawbacks:

One has to guess which transformation to use.

Failure to prove ϕ does not imply that ϕ is not valid.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 22 / 120

Showing that a formula is valid

A formula can be shown to be a tautology by using known equivalences:

Example: reductio ad absurdum

(A→ B) ∧ (A→ ¬B)→ ¬A definition of → (twice)(¬A ∨B) ∧ (¬A ∨ ¬B)→ ¬A

definition of →¬((¬A ∨B) ∧ (¬A ∨ ¬B)) ∨ ¬A De Morgan¬(¬A ∨B) ∨ ¬(¬A ∨ ¬B) ∨ ¬A De Morgan (twice)

(A ∧ ¬B) ∨ (A ∧B) ∨ ¬A distributivity(A ∧ (¬B ∨B)) ∨ ¬A excluded middle

(A ∧ >) ∨ ¬A > is neutral element for ∧A ∨ ¬A excluded middle>

Drawbacks:

One has to guess which transformation to use.

Failure to prove ϕ does not imply that ϕ is not valid.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 22 / 120

Showing that a formula is valid

A formula can be shown to be a tautology by using known equivalences:

Example: reductio ad absurdum

(A→ B) ∧ (A→ ¬B)→ ¬A definition of → (twice)(¬A ∨B) ∧ (¬A ∨ ¬B)→ ¬A definition of →¬((¬A ∨B) ∧ (¬A ∨ ¬B)) ∨ ¬A

De Morgan¬(¬A ∨B) ∨ ¬(¬A ∨ ¬B) ∨ ¬A De Morgan (twice)

(A ∧ ¬B) ∨ (A ∧B) ∨ ¬A distributivity(A ∧ (¬B ∨B)) ∨ ¬A excluded middle

(A ∧ >) ∨ ¬A > is neutral element for ∧A ∨ ¬A excluded middle>

Drawbacks:

One has to guess which transformation to use.

Failure to prove ϕ does not imply that ϕ is not valid.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 22 / 120

Showing that a formula is valid

A formula can be shown to be a tautology by using known equivalences:

Example: reductio ad absurdum

(A→ B) ∧ (A→ ¬B)→ ¬A definition of → (twice)(¬A ∨B) ∧ (¬A ∨ ¬B)→ ¬A definition of →¬((¬A ∨B) ∧ (¬A ∨ ¬B)) ∨ ¬A De Morgan¬(¬A ∨B) ∨ ¬(¬A ∨ ¬B) ∨ ¬A

De Morgan (twice)(A ∧ ¬B) ∨ (A ∧B) ∨ ¬A distributivity

(A ∧ (¬B ∨B)) ∨ ¬A excluded middle(A ∧ >) ∨ ¬A > is neutral element for ∧

A ∨ ¬A excluded middle>

Drawbacks:

One has to guess which transformation to use.

Failure to prove ϕ does not imply that ϕ is not valid.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 22 / 120

Showing that a formula is valid

A formula can be shown to be a tautology by using known equivalences:

Example: reductio ad absurdum

(A→ B) ∧ (A→ ¬B)→ ¬A definition of → (twice)(¬A ∨B) ∧ (¬A ∨ ¬B)→ ¬A definition of →¬((¬A ∨B) ∧ (¬A ∨ ¬B)) ∨ ¬A De Morgan¬(¬A ∨B) ∨ ¬(¬A ∨ ¬B) ∨ ¬A De Morgan (twice)

(A ∧ ¬B) ∨ (A ∧B) ∨ ¬A

distributivity(A ∧ (¬B ∨B)) ∨ ¬A excluded middle

(A ∧ >) ∨ ¬A > is neutral element for ∧A ∨ ¬A excluded middle>

Drawbacks:

One has to guess which transformation to use.

Failure to prove ϕ does not imply that ϕ is not valid.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 22 / 120

Showing that a formula is valid

A formula can be shown to be a tautology by using known equivalences:

Example: reductio ad absurdum

(A→ B) ∧ (A→ ¬B)→ ¬A definition of → (twice)(¬A ∨B) ∧ (¬A ∨ ¬B)→ ¬A definition of →¬((¬A ∨B) ∧ (¬A ∨ ¬B)) ∨ ¬A De Morgan¬(¬A ∨B) ∨ ¬(¬A ∨ ¬B) ∨ ¬A De Morgan (twice)

(A ∧ ¬B) ∨ (A ∧B) ∨ ¬A distributivity(A ∧ (¬B ∨B)) ∨ ¬A

excluded middle(A ∧ >) ∨ ¬A > is neutral element for ∧

A ∨ ¬A excluded middle>

Drawbacks:

One has to guess which transformation to use.

Failure to prove ϕ does not imply that ϕ is not valid.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 22 / 120

Showing that a formula is valid

A formula can be shown to be a tautology by using known equivalences:

Example: reductio ad absurdum

(A→ B) ∧ (A→ ¬B)→ ¬A definition of → (twice)(¬A ∨B) ∧ (¬A ∨ ¬B)→ ¬A definition of →¬((¬A ∨B) ∧ (¬A ∨ ¬B)) ∨ ¬A De Morgan¬(¬A ∨B) ∨ ¬(¬A ∨ ¬B) ∨ ¬A De Morgan (twice)

(A ∧ ¬B) ∨ (A ∧B) ∨ ¬A distributivity(A ∧ (¬B ∨B)) ∨ ¬A excluded middle

(A ∧ >) ∨ ¬A

> is neutral element for ∧A ∨ ¬A excluded middle>

Drawbacks:

One has to guess which transformation to use.

Failure to prove ϕ does not imply that ϕ is not valid.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 22 / 120

Showing that a formula is valid

A formula can be shown to be a tautology by using known equivalences:

Example: reductio ad absurdum

(A→ B) ∧ (A→ ¬B)→ ¬A definition of → (twice)(¬A ∨B) ∧ (¬A ∨ ¬B)→ ¬A definition of →¬((¬A ∨B) ∧ (¬A ∨ ¬B)) ∨ ¬A De Morgan¬(¬A ∨B) ∨ ¬(¬A ∨ ¬B) ∨ ¬A De Morgan (twice)

(A ∧ ¬B) ∨ (A ∧B) ∨ ¬A distributivity(A ∧ (¬B ∨B)) ∨ ¬A excluded middle

(A ∧ >) ∨ ¬A > is neutral element for ∧A ∨ ¬A

excluded middle>

Drawbacks:

One has to guess which transformation to use.

Failure to prove ϕ does not imply that ϕ is not valid.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 22 / 120

Showing that a formula is valid

A formula can be shown to be a tautology by using known equivalences:

Example: reductio ad absurdum

(A→ B) ∧ (A→ ¬B)→ ¬A definition of → (twice)(¬A ∨B) ∧ (¬A ∨ ¬B)→ ¬A definition of →¬((¬A ∨B) ∧ (¬A ∨ ¬B)) ∨ ¬A De Morgan¬(¬A ∨B) ∨ ¬(¬A ∨ ¬B) ∨ ¬A De Morgan (twice)

(A ∧ ¬B) ∨ (A ∧B) ∨ ¬A distributivity(A ∧ (¬B ∨B)) ∨ ¬A excluded middle

(A ∧ >) ∨ ¬A > is neutral element for ∧A ∨ ¬A excluded middle>

Drawbacks:

One has to guess which transformation to use.

Failure to prove ϕ does not imply that ϕ is not valid.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 22 / 120

Showing that a formula is valid

A formula can be shown to be a tautology by using known equivalences:

Example: reductio ad absurdum

(A→ B) ∧ (A→ ¬B)→ ¬A definition of → (twice)(¬A ∨B) ∧ (¬A ∨ ¬B)→ ¬A definition of →¬((¬A ∨B) ∧ (¬A ∨ ¬B)) ∨ ¬A De Morgan¬(¬A ∨B) ∨ ¬(¬A ∨ ¬B) ∨ ¬A De Morgan (twice)

(A ∧ ¬B) ∨ (A ∧B) ∨ ¬A distributivity(A ∧ (¬B ∨B)) ∨ ¬A excluded middle

(A ∧ >) ∨ ¬A > is neutral element for ∧A ∨ ¬A excluded middle>

Drawbacks:

One has to guess which transformation to use.

Failure to prove ϕ does not imply that ϕ is not valid.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 22 / 120

Showing that a formula is valid

The same result can be shown using a truth table:

Example: reductio ad absurdum

A B C := A→ B D := A→ ¬B C ∧D ¬A C ∧D → ¬A0 0 1 1 1 1 1

0 1 1 1 1 1 11 0 0 1 0 0 11 1 1 0 0 0 1

Problems:

inefficient, especially with many propositional variables

redundant, since many valuation changes do not affect results

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 23 / 120

Showing that a formula is valid

The same result can be shown using a truth table:

Example: reductio ad absurdum

A B C := A→ B D := A→ ¬B C ∧D ¬A C ∧D → ¬A0 0 1 1 1 1 10 1 1 1 1 1 1

1 0 0 1 0 0 11 1 1 0 0 0 1

Problems:

inefficient, especially with many propositional variables

redundant, since many valuation changes do not affect results

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 23 / 120

Showing that a formula is valid

The same result can be shown using a truth table:

Example: reductio ad absurdum

A B C := A→ B D := A→ ¬B C ∧D ¬A C ∧D → ¬A0 0 1 1 1 1 10 1 1 1 1 1 11 0 0 1 0 0 1

1 1 1 0 0 0 1

Problems:

inefficient, especially with many propositional variables

redundant, since many valuation changes do not affect results

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 23 / 120

Showing that a formula is valid

The same result can be shown using a truth table:

Example: reductio ad absurdum

A B C := A→ B D := A→ ¬B C ∧D ¬A C ∧D → ¬A0 0 1 1 1 1 10 1 1 1 1 1 11 0 0 1 0 0 11 1 1 0 0 0 1

Problems:

inefficient, especially with many propositional variables

redundant, since many valuation changes do not affect results

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 23 / 120

Showing that a formula is valid

The same result can be shown using a truth table:

Example: reductio ad absurdum

A B C := A→ B D := A→ ¬B C ∧D ¬A C ∧D → ¬A0 0 1 1 1 1 10 1 1 1 1 1 11 0 0 1 0 0 11 1 1 0 0 0 1

Problems:

inefficient, especially with many propositional variables

redundant, since many valuation changes do not affect results

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 23 / 120

Exercise: reasoning

Prove that the following formula is a tautology

A ∧B → C ↔ A→ (B → C)

using

a) known equivalences,

b) a truth table.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 24 / 120

Outline

1 propositional and first-order logic

1 syntax and semantics of propositional logic2 reasoning

1 resolution2 tableaus

3 syntax and semantics of first-order logic4 reasoning

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 25 / 120

Resolution

method to test satisfiability of a propositional formula ϕ

introduced in 1965 by John Robinson

can also be used to test

validity: |= ϕ holds iff ¬ϕ is usatisfiable.(logical) implication: ϕ |= ψ holds iff ϕ ∧ ¬ψ is unsatisfiable.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 26 / 120

Resolution

method to test satisfiability of a propositional formula ϕ

introduced in 1965 by John Robinson

can also be used to test

validity: |= ϕ holds iff ¬ϕ is usatisfiable.(logical) implication: ϕ |= ψ holds iff ϕ ∧ ¬ψ is unsatisfiable.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 26 / 120

Resolution principle

Find contradiction in ϕ

operate on set of disjunctions (clauses)

find pairs of contradictory literals L,L in clauses C1, C2

generate resolvent C3 by joining C1 and C2 (parent clauses) andeliminating L and L

C3 is not equivalent to C1 ∧ C2!C1 ∧ C2 satisfiable ; C3 satisfiableC3 unsatisfiable ; C1 ∧ C2 unsatisfiable

empty clause 2: contradiction

Example (ϕ = (X ∨ Y ) ∧ (¬Y ∨ Z) ∧ ¬Z ∧ ¬X)

X ∨ Y ¬Y ∨ Z ¬Z ¬X

X ∨ ZX

2

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 27 / 120

Resolution principle

Find contradiction in ϕ

operate on set of disjunctions (clauses)

find pairs of contradictory literals L,L in clauses C1, C2

generate resolvent C3 by joining C1 and C2 (parent clauses) andeliminating L and L

C3 is not equivalent to C1 ∧ C2!C1 ∧ C2 satisfiable ; C3 satisfiableC3 unsatisfiable ; C1 ∧ C2 unsatisfiable

empty clause 2: contradiction

Example (ϕ = (X ∨ Y ) ∧ (¬Y ∨ Z) ∧ ¬Z ∧ ¬X)

X ∨ Y ¬Y ∨ Z ¬Z ¬X

X ∨ ZX

2

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 27 / 120

Resolution principle

Find contradiction in ϕ

operate on set of disjunctions (clauses)

find pairs of contradictory literals L,L in clauses C1, C2

generate resolvent C3 by joining C1 and C2 (parent clauses) andeliminating L and L

C3 is not equivalent to C1 ∧ C2!C1 ∧ C2 satisfiable ; C3 satisfiableC3 unsatisfiable ; C1 ∧ C2 unsatisfiable

empty clause 2: contradiction

Example (ϕ = (X ∨ Y ) ∧ (¬Y ∨ Z) ∧ ¬Z ∧ ¬X)

X ∨ Y ¬Y ∨ Z ¬Z ¬X

X ∨ ZX

2

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 27 / 120

Resolution principle

Find contradiction in ϕ

operate on set of disjunctions (clauses)

find pairs of contradictory literals L,L in clauses C1, C2

generate resolvent C3 by joining C1 and C2 (parent clauses) andeliminating L and L

C3 is not equivalent to C1 ∧ C2!C1 ∧ C2 satisfiable ; C3 satisfiableC3 unsatisfiable ; C1 ∧ C2 unsatisfiable

empty clause 2: contradiction

Example (ϕ = (X ∨ Y ) ∧ (¬Y ∨ Z) ∧ ¬Z ∧ ¬X)

X ∨ Y ¬Y ∨ Z ¬Z ¬XX ∨ Z

X2

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 27 / 120

Resolution principle

Find contradiction in ϕ

operate on set of disjunctions (clauses)

find pairs of contradictory literals L,L in clauses C1, C2

generate resolvent C3 by joining C1 and C2 (parent clauses) andeliminating L and L

C3 is not equivalent to C1 ∧ C2!

C1 ∧ C2 satisfiable ; C3 satisfiableC3 unsatisfiable ; C1 ∧ C2 unsatisfiable

empty clause 2: contradiction

Example (ϕ = (X ∨ Y ) ∧ (¬Y ∨ Z) ∧ ¬Z ∧ ¬X)

X ∨ Y ¬Y ∨ Z ¬Z ¬XX ∨ Z

X2

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 27 / 120

Resolution principle

Find contradiction in ϕ

operate on set of disjunctions (clauses)

find pairs of contradictory literals L,L in clauses C1, C2

generate resolvent C3 by joining C1 and C2 (parent clauses) andeliminating L and L

C3 is not equivalent to C1 ∧ C2!C1 ∧ C2 satisfiable ; C3 satisfiable

C3 unsatisfiable ; C1 ∧ C2 unsatisfiable

empty clause 2: contradiction

Example (ϕ = (X ∨ Y ) ∧ (¬Y ∨ Z) ∧ ¬Z ∧ ¬X)

X ∨ Y ¬Y ∨ Z ¬Z ¬XX ∨ Z

X2

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 27 / 120

Resolution principle

Find contradiction in ϕ

operate on set of disjunctions (clauses)

find pairs of contradictory literals L,L in clauses C1, C2

generate resolvent C3 by joining C1 and C2 (parent clauses) andeliminating L and L

C3 is not equivalent to C1 ∧ C2!C1 ∧ C2 satisfiable ; C3 satisfiableC3 unsatisfiable ; C1 ∧ C2 unsatisfiable

empty clause 2: contradiction

Example (ϕ = (X ∨ Y ) ∧ (¬Y ∨ Z) ∧ ¬Z ∧ ¬X)

X ∨ Y ¬Y ∨ Z ¬Z ¬XX ∨ Z

X2

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 27 / 120

Resolution principle

Find contradiction in ϕ

operate on set of disjunctions (clauses)

find pairs of contradictory literals L,L in clauses C1, C2

generate resolvent C3 by joining C1 and C2 (parent clauses) andeliminating L and L

C3 is not equivalent to C1 ∧ C2!C1 ∧ C2 satisfiable ; C3 satisfiableC3 unsatisfiable ; C1 ∧ C2 unsatisfiable

empty clause 2: contradiction

Example (ϕ = (X ∨ Y ) ∧ (¬Y ∨ Z) ∧ ¬Z ∧ ¬X)

X ∨ Y ¬Y ∨ Z ¬Z ¬XX ∨ Z

X

2

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 27 / 120

Resolution principle

Find contradiction in ϕ

operate on set of disjunctions (clauses)

find pairs of contradictory literals L,L in clauses C1, C2

generate resolvent C3 by joining C1 and C2 (parent clauses) andeliminating L and L

C3 is not equivalent to C1 ∧ C2!C1 ∧ C2 satisfiable ; C3 satisfiableC3 unsatisfiable ; C1 ∧ C2 unsatisfiable

empty clause 2: contradiction

Example (ϕ = (X ∨ Y ) ∧ (¬Y ∨ Z) ∧ ¬Z ∧ ¬X)

X ∨ Y ¬Y ∨ Z ¬Z ¬XX ∨ Z

X2

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 27 / 120

Resolution principle

Find contradiction in ϕ

operate on set of disjunctions (clauses)

find pairs of contradictory literals L,L in clauses C1, C2

generate resolvent C3 by joining C1 and C2 (parent clauses) andeliminating L and L

C3 is not equivalent to C1 ∧ C2!C1 ∧ C2 satisfiable ; C3 satisfiableC3 unsatisfiable ; C1 ∧ C2 unsatisfiable

empty clause 2: contradiction

Example (ϕ = (X ∨ Y ) ∧ (¬Y ∨ Z) ∧ ¬Z ∧ ¬X)

X ∨ Y ¬Y ∨ Z ¬Z ¬XX ∨ Z

X2

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 27 / 120

Literals and their negations

Definition (Literal)

A literal is a (possibly negated) propositional variable.

Example

For the set of variables {A,B}, the set of possible literals is{A,¬A,B,¬B}.

Definition (Negation of a literal)

The negation L of a literal L is defined as follows

for a variable A: A = ¬A;

for a negated variable ¬A: ¬A = A

Example

B = ¬B; ¬C = C, . . .

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 28 / 120

Literals and their negations

Definition (Literal)

A literal is a (possibly negated) propositional variable.

Example

For the set of variables {A,B}, the set of possible literals is{A,¬A,B,¬B}.

Definition (Negation of a literal)

The negation L of a literal L is defined as follows

for a variable A: A = ¬A;

for a negated variable ¬A: ¬A = A

Example

B = ¬B; ¬C = C, . . .

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 28 / 120

Literals and their negations

Definition (Literal)

A literal is a (possibly negated) propositional variable.

Example

For the set of variables {A,B}, the set of possible literals is{A,¬A,B,¬B}.

Definition (Negation of a literal)

The negation L of a literal L is defined as follows

for a variable A: A = ¬A;

for a negated variable ¬A: ¬A = A

Example

B = ¬B; ¬C = C, . . .

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 28 / 120

Literals and their negations

Definition (Literal)

A literal is a (possibly negated) propositional variable.

Example

For the set of variables {A,B}, the set of possible literals is{A,¬A,B,¬B}.

Definition (Negation of a literal)

The negation L of a literal L is defined as follows

for a variable A: A = ¬A;

for a negated variable ¬A: ¬A = A

Example

B = ¬B; ¬C = C, . . .

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 28 / 120

Conjunctive Normal Form

Conjunctive Normal Form

A propositional formula ϕ is in conjunctive normal form (CNF) if ϕ is aconjunction of disjunctions of literals.

Example

(X ∨ Y ) ∧ (¬Y ∨ Z) ∧ ¬Z ∧ ¬X is in CNF;(X ∧ Y ) ∨ ¬(¬Y ∨ Z) is not in CNF.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 29 / 120

Conjunctive Normal Form

Conjunctive Normal Form

A propositional formula ϕ is in conjunctive normal form (CNF) if ϕ is aconjunction of disjunctions of literals.

Example

(X ∨ Y ) ∧ (¬Y ∨ Z) ∧ ¬Z ∧ ¬X is in CNF;

(X ∧ Y ) ∨ ¬(¬Y ∨ Z) is not in CNF.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 29 / 120

Conjunctive Normal Form

Conjunctive Normal Form

A propositional formula ϕ is in conjunctive normal form (CNF) if ϕ is aconjunction of disjunctions of literals.

Example

(X ∨ Y ) ∧ (¬Y ∨ Z) ∧ ¬Z ∧ ¬X is in CNF;(X ∧ Y ) ∨ ¬(¬Y ∨ Z) is not in CNF.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 29 / 120

Transformation into CNF

Theorem

Every propositional formula can be transformed into an equivalent formulain CNF.

Goal: (L1 ∨ L2 ∨ L3) ∧ (L4 ∨ L5) ∧ L6 . . .

1. eliminate material implication ϕ→ ψ ; ¬ϕ ∨ ψ1. and material equivalence ϕ↔ ψ ; ϕ ∧ ψ ∨ ¬ϕ ∧ ¬ψ2. De Morgan’s laws ¬(ϕ ∨ ψ) ; ¬ϕ ∧ ¬ψ3. eliminate double negation ¬¬ϕ ; ϕ4. distributivity ϕ ∨ (ψ ∧ χ) ; (ϕ ∨ ψ) ∧ (ϕ ∨ χ)5. associativity ϕ ∨ (ψ ∨ χ) ; ϕ ∨ ψ ∨ χ

Example

(X ∧ Y )∨¬(¬Y ∨Z) ; (X ∨ Y )∧ (Y ∨ Y )∧ (X ∨¬Z)∧ (Y ∨¬Z)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 30 / 120

Transformation into CNF

Theorem

Every propositional formula can be transformed into an equivalent formulain CNF.

Goal: (L1 ∨ L2 ∨ L3) ∧ (L4 ∨ L5) ∧ L6 . . .

1. eliminate material implication ϕ→ ψ ; ¬ϕ ∨ ψ1. and material equivalence ϕ↔ ψ ; ϕ ∧ ψ ∨ ¬ϕ ∧ ¬ψ2. De Morgan’s laws ¬(ϕ ∨ ψ) ; ¬ϕ ∧ ¬ψ3. eliminate double negation ¬¬ϕ ; ϕ4. distributivity ϕ ∨ (ψ ∧ χ) ; (ϕ ∨ ψ) ∧ (ϕ ∨ χ)5. associativity ϕ ∨ (ψ ∨ χ) ; ϕ ∨ ψ ∨ χ

Example

(X ∧ Y )∨¬(¬Y ∨Z) ; (X ∨ Y )∧ (Y ∨ Y )∧ (X ∨¬Z)∧ (Y ∨¬Z)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 30 / 120

Transformation into CNF

Theorem

Every propositional formula can be transformed into an equivalent formulain CNF.

Goal: (L1 ∨ L2 ∨ L3) ∧ (L4 ∨ L5) ∧ L6 . . .

1. eliminate material implication ϕ→ ψ ; ¬ϕ ∨ ψ1. and material equivalence ϕ↔ ψ ; ϕ ∧ ψ ∨ ¬ϕ ∧ ¬ψ

2. De Morgan’s laws ¬(ϕ ∨ ψ) ; ¬ϕ ∧ ¬ψ3. eliminate double negation ¬¬ϕ ; ϕ4. distributivity ϕ ∨ (ψ ∧ χ) ; (ϕ ∨ ψ) ∧ (ϕ ∨ χ)5. associativity ϕ ∨ (ψ ∨ χ) ; ϕ ∨ ψ ∨ χ

Example

(X ∧ Y )∨¬(¬Y ∨Z) ; (X ∨ Y )∧ (Y ∨ Y )∧ (X ∨¬Z)∧ (Y ∨¬Z)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 30 / 120

Transformation into CNF

Theorem

Every propositional formula can be transformed into an equivalent formulain CNF.

Goal: (L1 ∨ L2 ∨ L3) ∧ (L4 ∨ L5) ∧ L6 . . .

1. eliminate material implication ϕ→ ψ ; ¬ϕ ∨ ψ1. and material equivalence ϕ↔ ψ ; ϕ ∧ ψ ∨ ¬ϕ ∧ ¬ψ2. De Morgan’s laws ¬(ϕ ∨ ψ) ; ¬ϕ ∧ ¬ψ

3. eliminate double negation ¬¬ϕ ; ϕ4. distributivity ϕ ∨ (ψ ∧ χ) ; (ϕ ∨ ψ) ∧ (ϕ ∨ χ)5. associativity ϕ ∨ (ψ ∨ χ) ; ϕ ∨ ψ ∨ χ

Example

(X ∧ Y )∨¬(¬Y ∨Z) ; (X ∨ Y )∧ (Y ∨ Y )∧ (X ∨¬Z)∧ (Y ∨¬Z)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 30 / 120

Transformation into CNF

Theorem

Every propositional formula can be transformed into an equivalent formulain CNF.

Goal: (L1 ∨ L2 ∨ L3) ∧ (L4 ∨ L5) ∧ L6 . . .

1. eliminate material implication ϕ→ ψ ; ¬ϕ ∨ ψ1. and material equivalence ϕ↔ ψ ; ϕ ∧ ψ ∨ ¬ϕ ∧ ¬ψ2. De Morgan’s laws ¬(ϕ ∨ ψ) ; ¬ϕ ∧ ¬ψ3. eliminate double negation ¬¬ϕ ; ϕ

4. distributivity ϕ ∨ (ψ ∧ χ) ; (ϕ ∨ ψ) ∧ (ϕ ∨ χ)5. associativity ϕ ∨ (ψ ∨ χ) ; ϕ ∨ ψ ∨ χ

Example

(X ∧ Y )∨¬(¬Y ∨Z) ; (X ∨ Y )∧ (Y ∨ Y )∧ (X ∨¬Z)∧ (Y ∨¬Z)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 30 / 120

Transformation into CNF

Theorem

Every propositional formula can be transformed into an equivalent formulain CNF.

Goal: (L1 ∨ L2 ∨ L3) ∧ (L4 ∨ L5) ∧ L6 . . .

1. eliminate material implication ϕ→ ψ ; ¬ϕ ∨ ψ1. and material equivalence ϕ↔ ψ ; ϕ ∧ ψ ∨ ¬ϕ ∧ ¬ψ2. De Morgan’s laws ¬(ϕ ∨ ψ) ; ¬ϕ ∧ ¬ψ3. eliminate double negation ¬¬ϕ ; ϕ4. distributivity ϕ ∨ (ψ ∧ χ) ; (ϕ ∨ ψ) ∧ (ϕ ∨ χ)

5. associativity ϕ ∨ (ψ ∨ χ) ; ϕ ∨ ψ ∨ χ

Example

(X ∧ Y )∨¬(¬Y ∨Z) ; (X ∨ Y )∧ (Y ∨ Y )∧ (X ∨¬Z)∧ (Y ∨¬Z)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 30 / 120

Transformation into CNF

Theorem

Every propositional formula can be transformed into an equivalent formulain CNF.

Goal: (L1 ∨ L2 ∨ L3) ∧ (L4 ∨ L5) ∧ L6 . . .

1. eliminate material implication ϕ→ ψ ; ¬ϕ ∨ ψ1. and material equivalence ϕ↔ ψ ; ϕ ∧ ψ ∨ ¬ϕ ∧ ¬ψ2. De Morgan’s laws ¬(ϕ ∨ ψ) ; ¬ϕ ∧ ¬ψ3. eliminate double negation ¬¬ϕ ; ϕ4. distributivity ϕ ∨ (ψ ∧ χ) ; (ϕ ∨ ψ) ∧ (ϕ ∨ χ)5. associativity ϕ ∨ (ψ ∨ χ) ; ϕ ∨ ψ ∨ χ

Example

(X ∧ Y )∨¬(¬Y ∨Z) ; (X ∨ Y )∧ (Y ∨ Y )∧ (X ∨¬Z)∧ (Y ∨¬Z)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 30 / 120

Transformation into CNF

Theorem

Every propositional formula can be transformed into an equivalent formulain CNF.

Goal: (L1 ∨ L2 ∨ L3) ∧ (L4 ∨ L5) ∧ L6 . . .

1. eliminate material implication ϕ→ ψ ; ¬ϕ ∨ ψ1. and material equivalence ϕ↔ ψ ; ϕ ∧ ψ ∨ ¬ϕ ∧ ¬ψ2. De Morgan’s laws ¬(ϕ ∨ ψ) ; ¬ϕ ∧ ¬ψ3. eliminate double negation ¬¬ϕ ; ϕ4. distributivity ϕ ∨ (ψ ∧ χ) ; (ϕ ∨ ψ) ∧ (ϕ ∨ χ)5. associativity ϕ ∨ (ψ ∨ χ) ; ϕ ∨ ψ ∨ χ

Example

(X ∧ Y )∨¬(¬Y ∨Z) ; (X ∨ Y )∧ (Y ∨ Y )∧ (X ∨¬Z)∧ (Y ∨¬Z)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 30 / 120

Exercise: Conjunctive Normal Form

Transform the following formulas into CNF:

(X ∨ Y ) ∧ (A ∧B)

(X ∨ Y )→ (A ∨B)

X ∨ (¬A ∧ ¬(B ∧ ¬C))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 31 / 120

Clauses

Definition (Clause)

A clause is a disjunction of literals, written as a set.

Example

(X ∨ ¬Y ∨ Z) ; {X,¬Y,Z}

Every propositional formula can be written as a set of clauses.

ϕ = (X ∨ Y ) ∧ (¬Y ∨ Z) ∧ ¬Z ∧ ¬XK(ϕ) = {{X,Y }, {¬Y, Z}, {¬Z}, {¬X}}

Intuitively:

∧ between the sets

∨ between the elements of the sets

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 32 / 120

Clauses

Definition (Clause)

A clause is a disjunction of literals, written as a set.

Example

(X ∨ ¬Y ∨ Z) ; {X,¬Y,Z}

Every propositional formula can be written as a set of clauses.

ϕ = (X ∨ Y ) ∧ (¬Y ∨ Z) ∧ ¬Z ∧ ¬XK(ϕ) = {{X,Y }, {¬Y, Z}, {¬Z}, {¬X}}

Intuitively:

∧ between the sets

∨ between the elements of the sets

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 32 / 120

Clauses

Definition (Clause)

A clause is a disjunction of literals, written as a set.

Example

(X ∨ ¬Y ∨ Z) ; {X,¬Y,Z}

Every propositional formula can be written as a set of clauses.

ϕ = (X ∨ Y ) ∧ (¬Y ∨ Z) ∧ ¬Z ∧ ¬X

K(ϕ) = {{X,Y }, {¬Y, Z}, {¬Z}, {¬X}}

Intuitively:

∧ between the sets

∨ between the elements of the sets

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 32 / 120

Clauses

Definition (Clause)

A clause is a disjunction of literals, written as a set.

Example

(X ∨ ¬Y ∨ Z) ; {X,¬Y,Z}

Every propositional formula can be written as a set of clauses.

ϕ = (X ∨ Y ) ∧ (¬Y ∨ Z) ∧ ¬Z ∧ ¬XK(ϕ) = {{X,Y }, {¬Y, Z}, {¬Z}, {¬X}}

Intuitively:

∧ between the sets

∨ between the elements of the sets

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 32 / 120

Clauses

Definition (Clause)

A clause is a disjunction of literals, written as a set.

Example

(X ∨ ¬Y ∨ Z) ; {X,¬Y,Z}

Every propositional formula can be written as a set of clauses.

ϕ = (X ∨ Y ) ∧ (¬Y ∨ Z) ∧ ¬Z ∧ ¬XK(ϕ) = {{X,Y }, {¬Y, Z}, {¬Z}, {¬X}}

Intuitively:

∧ between the sets

∨ between the elements of the sets

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 32 / 120

Resolution of clauses

We have two clauses C1 = {X,Y } and C2 = {¬Y , Z}.We are looking for a model for C1 ∧ C2.

In an interpretation I, Y I is either 0 or 1.

if Y I = 1 holds, then CI1 = 1 and CI2 = 1 iff ZI = 1;

if Y I = 0 holds, then CI2 = 1 and CI1 = 1 iff XI = 1.

Every model for C1 and C2 is also a model for C3 = {X,Z}.If {C1, C2} is satisfiable, then {C1, C2, C3} is also satisfiable.

Definition (Resolvent)

Let C1 = {L1, L2, L3, . . .} and C2 = {L1, L6, L7, . . .} be propositionalclauses. Then C3 = {L2, L3, . . . , L6, L7, . . .} is called the resolvent of C1

and C2 ({C1, C2} ` C3).

If a clause C can be obtained from a clause set S using several resolutionsteps, we write S `∗ C.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 33 / 120

Resolution of clauses

We have two clauses C1 = {X,Y } and C2 = {¬Y , Z}.We are looking for a model for C1 ∧ C2.

In an interpretation I, Y I is either 0 or 1.

if Y I = 1 holds, then CI1 = 1 and CI2 = 1 iff ZI = 1;

if Y I = 0 holds, then CI2 = 1 and CI1 = 1 iff XI = 1.

Every model for C1 and C2 is also a model for C3 = {X,Z}.If {C1, C2} is satisfiable, then {C1, C2, C3} is also satisfiable.

Definition (Resolvent)

Let C1 = {L1, L2, L3, . . .} and C2 = {L1, L6, L7, . . .} be propositionalclauses. Then C3 = {L2, L3, . . . , L6, L7, . . .} is called the resolvent of C1

and C2 ({C1, C2} ` C3).

If a clause C can be obtained from a clause set S using several resolutionsteps, we write S `∗ C.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 33 / 120

Resolution of clauses

We have two clauses C1 = {X,Y } and C2 = {¬Y , Z}.We are looking for a model for C1 ∧ C2.

In an interpretation I, Y I is either 0 or 1.

if Y I = 1 holds, then CI1 = 1 and CI2 = 1 iff ZI = 1;

if Y I = 0 holds, then CI2 = 1 and CI1 = 1 iff XI = 1.

Every model for C1 and C2 is also a model for C3 = {X,Z}.

If {C1, C2} is satisfiable, then {C1, C2, C3} is also satisfiable.

Definition (Resolvent)

Let C1 = {L1, L2, L3, . . .} and C2 = {L1, L6, L7, . . .} be propositionalclauses. Then C3 = {L2, L3, . . . , L6, L7, . . .} is called the resolvent of C1

and C2 ({C1, C2} ` C3).

If a clause C can be obtained from a clause set S using several resolutionsteps, we write S `∗ C.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 33 / 120

Resolution of clauses

We have two clauses C1 = {X,Y } and C2 = {¬Y , Z}.We are looking for a model for C1 ∧ C2.

In an interpretation I, Y I is either 0 or 1.

if Y I = 1 holds, then CI1 = 1 and CI2 = 1 iff ZI = 1;

if Y I = 0 holds, then CI2 = 1 and CI1 = 1 iff XI = 1.

Every model for C1 and C2 is also a model for C3 = {X,Z}.If {C1, C2} is satisfiable, then {C1, C2, C3} is also satisfiable.

Definition (Resolvent)

Let C1 = {L1, L2, L3, . . .} and C2 = {L1, L6, L7, . . .} be propositionalclauses. Then C3 = {L2, L3, . . . , L6, L7, . . .} is called the resolvent of C1

and C2 ({C1, C2} ` C3).

If a clause C can be obtained from a clause set S using several resolutionsteps, we write S `∗ C.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 33 / 120

Resolution of clauses

We have two clauses C1 = {X,Y } and C2 = {¬Y , Z}.We are looking for a model for C1 ∧ C2.

In an interpretation I, Y I is either 0 or 1.

if Y I = 1 holds, then CI1 = 1 and CI2 = 1 iff ZI = 1;

if Y I = 0 holds, then CI2 = 1 and CI1 = 1 iff XI = 1.

Every model for C1 and C2 is also a model for C3 = {X,Z}.If {C1, C2} is satisfiable, then {C1, C2, C3} is also satisfiable.

Definition (Resolvent)

Let C1 = {L1, L2, L3, . . .} and C2 = {L1, L6, L7, . . .} be propositionalclauses. Then C3 = {L2, L3, . . . , L6, L7, . . .} is called the resolvent of C1

and C2 ({C1, C2} ` C3).

If a clause C can be obtained from a clause set S using several resolutionsteps, we write S `∗ C.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 33 / 120

Resolution of clauses

We have two clauses C1 = {X,Y } and C2 = {¬Y , Z}.We are looking for a model for C1 ∧ C2.

In an interpretation I, Y I is either 0 or 1.

if Y I = 1 holds, then CI1 = 1 and CI2 = 1 iff ZI = 1;

if Y I = 0 holds, then CI2 = 1 and CI1 = 1 iff XI = 1.

Every model for C1 and C2 is also a model for C3 = {X,Z}.If {C1, C2} is satisfiable, then {C1, C2, C3} is also satisfiable.

Definition (Resolvent)

Let C1 = {L1, L2, L3, . . .} and C2 = {L1, L6, L7, . . .} be propositionalclauses. Then C3 = {L2, L3, . . . , L6, L7, . . .} is called the resolvent of C1

and C2 ({C1, C2} ` C3).

If a clause C can be obtained from a clause set S using several resolutionsteps, we write S `∗ C.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 33 / 120

Exercise: Resolution

Find as many resolvents as possible for the clause set S.

S = {{A,B,¬C}, {B,C,D}, {¬D}, {¬A,D}, {¬B,¬E}, {D,E}}

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 34 / 120

Using resolution to test satisfiability

Let S ` C.

Every model for S is also a model for C.

If S is satisfiable, then so is S ∪ {C}.If S ∪ {C} is unsatisfiable, then so is S.

The empty clause 2 is unsatisfiable.(It is obtained by resolving A and ¬A for some A.)

Theorem (soundness of resolution)

Let S be a set of clauses.If 2 can be obtained from S by resolution, then S is unsatisfiable.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 35 / 120

Using resolution to test satisfiability

Let S ` C.

Every model for S is also a model for C.

If S is satisfiable, then so is S ∪ {C}.

If S ∪ {C} is unsatisfiable, then so is S.

The empty clause 2 is unsatisfiable.(It is obtained by resolving A and ¬A for some A.)

Theorem (soundness of resolution)

Let S be a set of clauses.If 2 can be obtained from S by resolution, then S is unsatisfiable.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 35 / 120

Using resolution to test satisfiability

Let S ` C.

Every model for S is also a model for C.

If S is satisfiable, then so is S ∪ {C}.If S ∪ {C} is unsatisfiable, then so is S.

The empty clause 2 is unsatisfiable.(It is obtained by resolving A and ¬A for some A.)

Theorem (soundness of resolution)

Let S be a set of clauses.If 2 can be obtained from S by resolution, then S is unsatisfiable.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 35 / 120

Using resolution to test satisfiability

Let S ` C.

Every model for S is also a model for C.

If S is satisfiable, then so is S ∪ {C}.If S ∪ {C} is unsatisfiable, then so is S.

The empty clause 2 is unsatisfiable.(It is obtained by resolving A and ¬A for some A.)

Theorem (soundness of resolution)

Let S be a set of clauses.If 2 can be obtained from S by resolution, then S is unsatisfiable.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 35 / 120

Using resolution to test satisfiability

Let S ` C.

Every model for S is also a model for C.

If S is satisfiable, then so is S ∪ {C}.If S ∪ {C} is unsatisfiable, then so is S.

The empty clause 2 is unsatisfiable.(It is obtained by resolving A and ¬A for some A.)

Theorem (soundness of resolution)

Let S be a set of clauses.If 2 can be obtained from S by resolution, then S is unsatisfiable.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 35 / 120

Using resolution to test satisfiability

Let S ` C.

Every model for S is also a model for C.

If S is satisfiable, then so is S ∪ {C}.If S ∪ {C} is unsatisfiable, then so is S.

The empty clause 2 is unsatisfiable.(It is obtained by resolving A and ¬A for some A.)

Theorem (soundness of resolution)

Let S be a set of clauses.If 2 can be obtained from S by resolution, then S is unsatisfiable.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 35 / 120

Resolution algorithm for propositional logic

input: propositional formula ϕoutput: “satisfiable” or “unsatisfiable”

1: transform ϕ into CNF2: initialise C with disjunctions of ϕ3: while there is C3 = res(C1, C2) with C3 /∈ C do4: if C3 = 2 then5: output “unsatisfiable”6: else7: C := C ∪ {C3}8: output “satisfiable”

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 36 / 120

Resolution algorithm for propositional logic

input: propositional formula ϕoutput: “satisfiable” or “unsatisfiable”

1: transform ϕ into CNF

2: initialise C with disjunctions of ϕ3: while there is C3 = res(C1, C2) with C3 /∈ C do4: if C3 = 2 then5: output “unsatisfiable”6: else7: C := C ∪ {C3}8: output “satisfiable”

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 36 / 120

Resolution algorithm for propositional logic

input: propositional formula ϕoutput: “satisfiable” or “unsatisfiable”

1: transform ϕ into CNF2: initialise C with disjunctions of ϕ

3: while there is C3 = res(C1, C2) with C3 /∈ C do4: if C3 = 2 then5: output “unsatisfiable”6: else7: C := C ∪ {C3}8: output “satisfiable”

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 36 / 120

Resolution algorithm for propositional logic

input: propositional formula ϕoutput: “satisfiable” or “unsatisfiable”

1: transform ϕ into CNF2: initialise C with disjunctions of ϕ3: while there is C3 = res(C1, C2) with C3 /∈ C do

4: if C3 = 2 then5: output “unsatisfiable”6: else7: C := C ∪ {C3}8: output “satisfiable”

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 36 / 120

Resolution algorithm for propositional logic

input: propositional formula ϕoutput: “satisfiable” or “unsatisfiable”

1: transform ϕ into CNF2: initialise C with disjunctions of ϕ3: while there is C3 = res(C1, C2) with C3 /∈ C do4: if C3 = 2 then5: output “unsatisfiable”

6: else7: C := C ∪ {C3}8: output “satisfiable”

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 36 / 120

Resolution algorithm for propositional logic

input: propositional formula ϕoutput: “satisfiable” or “unsatisfiable”

1: transform ϕ into CNF2: initialise C with disjunctions of ϕ3: while there is C3 = res(C1, C2) with C3 /∈ C do4: if C3 = 2 then5: output “unsatisfiable”6: else7: C := C ∪ {C3}

8: output “satisfiable”

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 36 / 120

Resolution algorithm for propositional logic

input: propositional formula ϕoutput: “satisfiable” or “unsatisfiable”

1: transform ϕ into CNF2: initialise C with disjunctions of ϕ3: while there is C3 = res(C1, C2) with C3 /∈ C do4: if C3 = 2 then5: output “unsatisfiable”6: else7: C := C ∪ {C3}8: output “satisfiable”

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 36 / 120

Properties of the resolution algorithm

Theorem (soundness)

K(ϕ) `∗ 2 implies unsatisfiability of ϕ.

Theorem (refutation completeness)

If ϕ is unsatisfiable, then K(ϕ) `∗ 2 holds.

Theorem (termination)

The resolution algorithm terminates for every input.

Proof.

Only new clauses are added.

New clauses contain only literals from the input.

Clauses are never removed.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 37 / 120

Properties of the resolution algorithm

Theorem (soundness)

K(ϕ) `∗ 2 implies unsatisfiability of ϕ.

Theorem (refutation completeness)

If ϕ is unsatisfiable, then K(ϕ) `∗ 2 holds.

Theorem (termination)

The resolution algorithm terminates for every input.

Proof.

Only new clauses are added.

New clauses contain only literals from the input.

Clauses are never removed.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 37 / 120

Properties of the resolution algorithm

Theorem (soundness)

K(ϕ) `∗ 2 implies unsatisfiability of ϕ.

Theorem (refutation completeness)

If ϕ is unsatisfiable, then K(ϕ) `∗ 2 holds.

Theorem (termination)

The resolution algorithm terminates for every input.

Proof.

Only new clauses are added.

New clauses contain only literals from the input.

Clauses are never removed.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 37 / 120

Properties of the resolution algorithm

Theorem (soundness)

K(ϕ) `∗ 2 implies unsatisfiability of ϕ.

Theorem (refutation completeness)

If ϕ is unsatisfiable, then K(ϕ) `∗ 2 holds.

Theorem (termination)

The resolution algorithm terminates for every input.

Proof.

Only new clauses are added.

New clauses contain only literals from the input.

Clauses are never removed.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 37 / 120

Properties of the resolution algorithm

Theorem (soundness)

K(ϕ) `∗ 2 implies unsatisfiability of ϕ.

Theorem (refutation completeness)

If ϕ is unsatisfiable, then K(ϕ) `∗ 2 holds.

Theorem (termination)

The resolution algorithm terminates for every input.

Proof.

Only new clauses are added.

New clauses contain only literals from the input.

Clauses are never removed.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 37 / 120

Properties of the resolution algorithm

Theorem (soundness)

K(ϕ) `∗ 2 implies unsatisfiability of ϕ.

Theorem (refutation completeness)

If ϕ is unsatisfiable, then K(ϕ) `∗ 2 holds.

Theorem (termination)

The resolution algorithm terminates for every input.

Proof.

Only new clauses are added.

New clauses contain only literals from the input.

Clauses are never removed.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 37 / 120

Resolution and non-determinism

If several possibilities for new resolvents exist:

the algorithm will terminate for every choice

. . . but some choices will be faster than others

Definition (don’t-care-nondeterminism)

An algorithm is called don’t-care-nondeterministic if at any point withseveral choices every choice will lead to a solution.

no backtracking required

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 38 / 120

Resolution and non-determinism

If several possibilities for new resolvents exist:

the algorithm will terminate for every choice

. . . but some choices will be faster than others

Definition (don’t-care-nondeterminism)

An algorithm is called don’t-care-nondeterministic if at any point withseveral choices every choice will lead to a solution.

no backtracking required

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 38 / 120

Resolution and non-determinism

If several possibilities for new resolvents exist:

the algorithm will terminate for every choice

. . . but some choices will be faster than others

Definition (don’t-care-nondeterminism)

An algorithm is called don’t-care-nondeterministic if at any point withseveral choices every choice will lead to a solution.

no backtracking required

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 38 / 120

Resolution and non-determinism

If several possibilities for new resolvents exist:

the algorithm will terminate for every choice

. . . but some choices will be faster than others

Definition (don’t-care-nondeterminism)

An algorithm is called don’t-care-nondeterministic if at any point withseveral choices every choice will lead to a solution.

no backtracking required

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 38 / 120

Turning natural language into propositional formulas

1 If John is not sick and he is invited to the meeting, he attends it.¬S ∧ I → A ; S ∨ ¬I ∨A

2 If the boss wants John at the meeting, he invites him.B → I ; ¬B ∨ I

3 If the boss does not want John at the meeting, John will be fired.¬B → F ; B ∨ F

4 John did not attend the meeting. ¬A5 John is not sick. ¬S6 Conjecture: John will be fired. F

To test if the conjecture is valid, we check if the premises together withthe negation of the conjecture are satisfiable.

{{S,¬I, A}, {¬B, I}, {B,F}, {¬A}, {¬S}, {¬F}}

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 39 / 120

Turning natural language into propositional formulas

1 If John is not sick and he is invited to the meeting, he attends it.¬S ∧ I → A ; S ∨ ¬I ∨A

2 If the boss wants John at the meeting, he invites him.B → I ; ¬B ∨ I

3 If the boss does not want John at the meeting, John will be fired.¬B → F ; B ∨ F

4 John did not attend the meeting. ¬A5 John is not sick. ¬S6 Conjecture: John will be fired. F

To test if the conjecture is valid, we check if the premises together withthe negation of the conjecture are satisfiable.

{{S,¬I, A}, {¬B, I}, {B,F}, {¬A}, {¬S}, {¬F}}

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 39 / 120

Turning natural language into propositional formulas

1 If John is not sick and he is invited to the meeting, he attends it.¬S ∧ I → A ; S ∨ ¬I ∨A

2 If the boss wants John at the meeting, he invites him.B → I ; ¬B ∨ I

3 If the boss does not want John at the meeting, John will be fired.¬B → F ; B ∨ F

4 John did not attend the meeting. ¬A5 John is not sick. ¬S6 Conjecture: John will be fired. F

To test if the conjecture is valid, we check if the premises together withthe negation of the conjecture are satisfiable.

{{S,¬I, A}, {¬B, I}, {B,F}, {¬A}, {¬S}, {¬F}}

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 39 / 120

Turning natural language into propositional formulas

1 If John is not sick and he is invited to the meeting, he attends it.¬S ∧ I → A ; S ∨ ¬I ∨A

2 If the boss wants John at the meeting, he invites him.B → I ; ¬B ∨ I

3 If the boss does not want John at the meeting, John will be fired.¬B → F ; B ∨ F

4 John did not attend the meeting. ¬A

5 John is not sick. ¬S6 Conjecture: John will be fired. F

To test if the conjecture is valid, we check if the premises together withthe negation of the conjecture are satisfiable.

{{S,¬I, A}, {¬B, I}, {B,F}, {¬A}, {¬S}, {¬F}}

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 39 / 120

Turning natural language into propositional formulas

1 If John is not sick and he is invited to the meeting, he attends it.¬S ∧ I → A ; S ∨ ¬I ∨A

2 If the boss wants John at the meeting, he invites him.B → I ; ¬B ∨ I

3 If the boss does not want John at the meeting, John will be fired.¬B → F ; B ∨ F

4 John did not attend the meeting. ¬A5 John is not sick. ¬S

6 Conjecture: John will be fired. F

To test if the conjecture is valid, we check if the premises together withthe negation of the conjecture are satisfiable.

{{S,¬I, A}, {¬B, I}, {B,F}, {¬A}, {¬S}, {¬F}}

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 39 / 120

Turning natural language into propositional formulas

1 If John is not sick and he is invited to the meeting, he attends it.¬S ∧ I → A ; S ∨ ¬I ∨A

2 If the boss wants John at the meeting, he invites him.B → I ; ¬B ∨ I

3 If the boss does not want John at the meeting, John will be fired.¬B → F ; B ∨ F

4 John did not attend the meeting. ¬A5 John is not sick. ¬S6 Conjecture: John will be fired. F

To test if the conjecture is valid, we check if the premises together withthe negation of the conjecture are satisfiable.

{{S,¬I, A}, {¬B, I}, {B,F}, {¬A}, {¬S}, {¬F}}

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 39 / 120

Turning natural language into propositional formulas

1 If John is not sick and he is invited to the meeting, he attends it.¬S ∧ I → A ; S ∨ ¬I ∨A

2 If the boss wants John at the meeting, he invites him.B → I ; ¬B ∨ I

3 If the boss does not want John at the meeting, John will be fired.¬B → F ; B ∨ F

4 John did not attend the meeting. ¬A5 John is not sick. ¬S6 Conjecture: John will be fired. F

To test if the conjecture is valid, we check if the premises together withthe negation of the conjecture are satisfiable.

{{S,¬I, A}, {¬B, I}, {B,F}, {¬A}, {¬S}, {¬F}}

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 39 / 120

Determining John’s future by resolution

{{S,¬I, A}, {¬B, I}, {B,F}, {¬A}, {¬S}, {¬F}}

S,¬I, A ¬A

S,¬I

¬B, I B, F

I, F

S, F ¬S

F ¬F

2

So unfortunately, the conjecture is valid and John will be fired . . .

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 40 / 120

Determining John’s future by resolution

{{S,¬I, A}, {¬B, I}, {B,F}, {¬A}, {¬S}, {¬F}}

S,¬I, A ¬A

S,¬I

¬B, I B, F

I, F

S, F ¬S

F ¬F

2

So unfortunately, the conjecture is valid and John will be fired . . .

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 40 / 120

Determining John’s future by resolution

{{S,¬I, A}, {¬B, I}, {B,F}, {¬A}, {¬S}, {¬F}}

S,¬I, A ¬A

S,¬I

¬B, I B, F

I, F

S, F ¬S

F ¬F

2

So unfortunately, the conjecture is valid and John will be fired . . .

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 40 / 120

Determining John’s future by resolution

{{S,¬I, A}, {¬B, I}, {B,F}, {¬A}, {¬S}, {¬F}}

S,¬I, A ¬A

S,¬I

¬B, I B, F

I, F

S, F

¬S

F ¬F

2

So unfortunately, the conjecture is valid and John will be fired . . .

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 40 / 120

Determining John’s future by resolution

{{S,¬I, A}, {¬B, I}, {B,F}, {¬A}, {¬S}, {¬F}}

S,¬I, A ¬A

S,¬I

¬B, I B, F

I, F

S, F ¬S

F ¬F

2

So unfortunately, the conjecture is valid and John will be fired . . .

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 40 / 120

Determining John’s future by resolution

{{S,¬I, A}, {¬B, I}, {B,F}, {¬A}, {¬S}, {¬F}}

S,¬I, A ¬A

S,¬I

¬B, I B, F

I, F

S, F ¬S

F

¬F

2

So unfortunately, the conjecture is valid and John will be fired . . .

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 40 / 120

Determining John’s future by resolution

{{S,¬I, A}, {¬B, I}, {B,F}, {¬A}, {¬S}, {¬F}}

S,¬I, A ¬A

S,¬I

¬B, I B, F

I, F

S, F ¬S

F ¬F

2

So unfortunately, the conjecture is valid and John will be fired . . .

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 40 / 120

Determining John’s future by resolution

{{S,¬I, A}, {¬B, I}, {B,F}, {¬A}, {¬S}, {¬F}}

S,¬I, A ¬A

S,¬I

¬B, I B, F

I, F

S, F ¬S

F ¬F

2

So unfortunately, the conjecture is valid and John will be fired . . .

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 40 / 120

Determining John’s future by resolution

{{S,¬I, A}, {¬B, I}, {B,F}, {¬A}, {¬S}, {¬F}}

S,¬I, A ¬A

S,¬I

¬B, I B, F

I, F

S, F ¬S

F ¬F

2

So unfortunately, the conjecture is valid and John will be fired . . .

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 40 / 120

Determining the answer using a truth table

1 S,¬I, A2 ¬B, I3 B,F

4 ¬A5 ¬S6 F

S I A B F 1 2 3 4 5 6 1 ∧ . . . ∧ 5 ∧ ¬6

0 0 0 0 0 1 1 0 1 1 0 00 0 0 0 1 1 1 1 1 1 1 0

......

...1 0 1 0 0 1 1 0 0 0 0 0

......

...1 1 1 1 1 1 1 1 0 0 1 0

The only valuation that makes clauses 1–5 true also makes clause 6true (line 2).

The last column always remains 0.

The conjecture follows from the premises.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 41 / 120

Determining the answer using a truth table

1 S,¬I, A2 ¬B, I3 B,F

4 ¬A5 ¬S6 F

S I A B F 1 2 3 4 5 6 1 ∧ . . . ∧ 5 ∧ ¬6

0 0 0 0 0 1 1 0 1 1 0 00 0 0 0 1 1 1 1 1 1 1 0

......

...1 0 1 0 0 1 1 0 0 0 0 0

......

...1 1 1 1 1 1 1 1 0 0 1 0

The only valuation that makes clauses 1–5 true also makes clause 6true (line 2).

The last column always remains 0.

The conjecture follows from the premises.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 41 / 120

Determining the answer using a truth table

1 S,¬I, A2 ¬B, I3 B,F

4 ¬A5 ¬S6 F

S I A B F 1 2 3 4 5 6 1 ∧ . . . ∧ 5 ∧ ¬6

0 0 0 0 0 1 1 0 1 1 0 0

0 0 0 0 1 1 1 1 1 1 1 0...

......

1 0 1 0 0 1 1 0 0 0 0 0...

......

1 1 1 1 1 1 1 1 0 0 1 0

The only valuation that makes clauses 1–5 true also makes clause 6true (line 2).

The last column always remains 0.

The conjecture follows from the premises.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 41 / 120

Determining the answer using a truth table

1 S,¬I, A2 ¬B, I3 B,F

4 ¬A5 ¬S6 F

S I A B F 1 2 3 4 5 6 1 ∧ . . . ∧ 5 ∧ ¬6

0 0 0 0 0 1 1 0 1 1 0 00 0 0 0 1 1 1 1 1 1 1 0

......

...1 0 1 0 0 1 1 0 0 0 0 0

......

...1 1 1 1 1 1 1 1 0 0 1 0

The only valuation that makes clauses 1–5 true also makes clause 6true (line 2).

The last column always remains 0.

The conjecture follows from the premises.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 41 / 120

Determining the answer using a truth table

1 S,¬I, A2 ¬B, I3 B,F

4 ¬A5 ¬S6 F

S I A B F 1 2 3 4 5 6 1 ∧ . . . ∧ 5 ∧ ¬6

0 0 0 0 0 1 1 0 1 1 0 00 0 0 0 1 1 1 1 1 1 1 0

......

...1 0 1 0 0 1 1 0 0 0 0 0

......

...1 1 1 1 1 1 1 1 0 0 1 0

The only valuation that makes clauses 1–5 true also makes clause 6true (line 2).

The last column always remains 0.

The conjecture follows from the premises.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 41 / 120

Exercise: resolution algorithm

Inspector Craig is called to a jewelry store that has been subject to arobbery where three suspects, Austin, Brian, and Colin, were arrested.After evaluation of all facts, this is known:

1 At least one of the suspects is guilty.

2 If Austin is guilty he had exactly one accomplice.

3 If Brian is innocent, so is Colin.

4 If exactly two suspects are guilty, Colin is one of them.

5 If Colin is innocent then Austin is guilty.

6 Conjecture: Brian and Colin are guilty.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 42 / 120

Optimisation of the resolution procedure

Choosing the right parent clauses is crucial for practical efficiency.

Heuristics:

prioritise short clauses

prioritise clauses with high derivation depth ; depth-first search

ignore tautologies {X,¬X, . . .}ignore C1 if C2 ⊆ C1 exists

perform resolution with more than two clauses (hyperresolution)

Restriction to special cases, e.g. Horn formulas

Horn clause: at most one positive literal

X ∧ Y ∧ Z . . .→W

useful for rule-based systems (Prolog)

polynomial runtime

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 43 / 120

Optimisation of the resolution procedure

Choosing the right parent clauses is crucial for practical efficiency.

Heuristics:

prioritise short clauses

prioritise clauses with high derivation depth ; depth-first search

ignore tautologies {X,¬X, . . .}ignore C1 if C2 ⊆ C1 exists

perform resolution with more than two clauses (hyperresolution)

Restriction to special cases, e.g. Horn formulas

Horn clause: at most one positive literal

X ∧ Y ∧ Z . . .→W

useful for rule-based systems (Prolog)

polynomial runtime

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 43 / 120

Optimisation of the resolution procedure

Choosing the right parent clauses is crucial for practical efficiency.

Heuristics:

prioritise short clauses

prioritise clauses with high derivation depth ; depth-first search

ignore tautologies {X,¬X, . . .}ignore C1 if C2 ⊆ C1 exists

perform resolution with more than two clauses (hyperresolution)

Restriction to special cases, e.g. Horn formulas

Horn clause: at most one positive literal

X ∧ Y ∧ Z . . .→W

useful for rule-based systems (Prolog)

polynomial runtime

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 43 / 120

Optimisation of the resolution procedure

Choosing the right parent clauses is crucial for practical efficiency.

Heuristics:

prioritise short clauses

prioritise clauses with high derivation depth ; depth-first search

ignore tautologies {X,¬X, . . .}

ignore C1 if C2 ⊆ C1 exists

perform resolution with more than two clauses (hyperresolution)

Restriction to special cases, e.g. Horn formulas

Horn clause: at most one positive literal

X ∧ Y ∧ Z . . .→W

useful for rule-based systems (Prolog)

polynomial runtime

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 43 / 120

Optimisation of the resolution procedure

Choosing the right parent clauses is crucial for practical efficiency.

Heuristics:

prioritise short clauses

prioritise clauses with high derivation depth ; depth-first search

ignore tautologies {X,¬X, . . .}ignore C1 if C2 ⊆ C1 exists

perform resolution with more than two clauses (hyperresolution)

Restriction to special cases, e.g. Horn formulas

Horn clause: at most one positive literal

X ∧ Y ∧ Z . . .→W

useful for rule-based systems (Prolog)

polynomial runtime

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 43 / 120

Optimisation of the resolution procedure

Choosing the right parent clauses is crucial for practical efficiency.

Heuristics:

prioritise short clauses

prioritise clauses with high derivation depth ; depth-first search

ignore tautologies {X,¬X, . . .}ignore C1 if C2 ⊆ C1 exists

perform resolution with more than two clauses (hyperresolution)

Restriction to special cases, e.g. Horn formulas

Horn clause: at most one positive literal

X ∧ Y ∧ Z . . .→W

useful for rule-based systems (Prolog)

polynomial runtime

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 43 / 120

Optimisation of the resolution procedure

Choosing the right parent clauses is crucial for practical efficiency.

Heuristics:

prioritise short clauses

prioritise clauses with high derivation depth ; depth-first search

ignore tautologies {X,¬X, . . .}ignore C1 if C2 ⊆ C1 exists

perform resolution with more than two clauses (hyperresolution)

Restriction to special cases, e.g. Horn formulas

Horn clause: at most one positive literal

X ∧ Y ∧ Z . . .→W

useful for rule-based systems (Prolog)

polynomial runtime

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 43 / 120

Optimisation of the resolution procedure

Choosing the right parent clauses is crucial for practical efficiency.

Heuristics:

prioritise short clauses

prioritise clauses with high derivation depth ; depth-first search

ignore tautologies {X,¬X, . . .}ignore C1 if C2 ⊆ C1 exists

perform resolution with more than two clauses (hyperresolution)

Restriction to special cases, e.g. Horn formulas

Horn clause: at most one positive literal

X ∧ Y ∧ Z . . .→W

useful for rule-based systems (Prolog)

polynomial runtime

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 43 / 120

Optimisation of the resolution procedure

Choosing the right parent clauses is crucial for practical efficiency.

Heuristics:

prioritise short clauses

prioritise clauses with high derivation depth ; depth-first search

ignore tautologies {X,¬X, . . .}ignore C1 if C2 ⊆ C1 exists

perform resolution with more than two clauses (hyperresolution)

Restriction to special cases, e.g. Horn formulas

Horn clause: at most one positive literal

X ∧ Y ∧ Z . . .→W

useful for rule-based systems (Prolog)

polynomial runtime

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 43 / 120

Outline

1 propositional and first-order logic

1 syntax and semantics of propositional logic2 reasoning

1 resolution2 tableaus

3 syntax and semantics of first-order logic4 reasoning

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 44 / 120

Tableau algorithms

Different method to test satisfiability of propositional formulas

resolution: try to find the contradiction

tableau: try to build a model

Properties of tableau algorithms

rules: break down complex formulas into simpler ones“If you have ϕ ∧ ψ but not both ϕ and ψ, add ϕ and ψ.”

clash triggers: define cases when a contradiction has been found“If you have ϕ and ¬ϕ, there is a contradiction.”

tableau: table of formulas that have to be satisfied

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 45 / 120

Tableau algorithms

Different method to test satisfiability of propositional formulas

resolution: try to find the contradiction

tableau: try to build a model

Properties of tableau algorithms

rules: break down complex formulas into simpler ones“If you have ϕ ∧ ψ but not both ϕ and ψ, add ϕ and ψ.”

clash triggers: define cases when a contradiction has been found“If you have ϕ and ¬ϕ, there is a contradiction.”

tableau: table of formulas that have to be satisfied

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 45 / 120

Tableau algorithms

Different method to test satisfiability of propositional formulas

resolution: try to find the contradiction

tableau: try to build a model

Properties of tableau algorithms

rules: break down complex formulas into simpler ones“If you have ϕ ∧ ψ but not both ϕ and ψ, add ϕ and ψ.”

clash triggers: define cases when a contradiction has been found“If you have ϕ and ¬ϕ, there is a contradiction.”

tableau: table of formulas that have to be satisfied

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 45 / 120

Tableau algorithms

Different method to test satisfiability of propositional formulas

resolution: try to find the contradiction

tableau: try to build a model

Properties of tableau algorithms

rules: break down complex formulas into simpler ones“If you have ϕ ∧ ψ but not both ϕ and ψ, add ϕ and ψ.”

clash triggers: define cases when a contradiction has been found“If you have ϕ and ¬ϕ, there is a contradiction.”

tableau: table of formulas that have to be satisfied

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 45 / 120

Tableau algorithms: rules

precondition: describes which kind of formula is processed“If you have ϕ ∧ ψ . . . ”

applicability condition: describes when a rule is not applicable anymore, toensure termination“. . . and not both ϕ and ψ, . . . ”

postcondition: describes what to do to process the formula“. . . add ϕ and ψ.”

Rules can require testing different alternatives:

“If you have ϕ ∨ ψ . . . , add ϕ or ψ”

This means: split the current table column,try ϕ in one column, ψ in the other one

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 46 / 120

Tableau algorithms: rules

precondition: describes which kind of formula is processed“If you have ϕ ∧ ψ . . . ”

applicability condition: describes when a rule is not applicable anymore, toensure termination“. . . and not both ϕ and ψ, . . . ”

postcondition: describes what to do to process the formula“. . . add ϕ and ψ.”

Rules can require testing different alternatives:

“If you have ϕ ∨ ψ . . . , add ϕ or ψ”

This means: split the current table column,try ϕ in one column, ψ in the other one

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 46 / 120

Tableau algorithms: rules

precondition: describes which kind of formula is processed“If you have ϕ ∧ ψ . . . ”

applicability condition: describes when a rule is not applicable anymore, toensure termination“. . . and not both ϕ and ψ, . . . ”

postcondition: describes what to do to process the formula“. . . add ϕ and ψ.”

Rules can require testing different alternatives:

“If you have ϕ ∨ ψ . . . , add ϕ or ψ”

This means: split the current table column,try ϕ in one column, ψ in the other one

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 46 / 120

Tableau algorithms: rules

precondition: describes which kind of formula is processed“If you have ϕ ∧ ψ . . . ”

applicability condition: describes when a rule is not applicable anymore, toensure termination“. . . and not both ϕ and ψ, . . . ”

postcondition: describes what to do to process the formula“. . . add ϕ and ψ.”

Rules can require testing different alternatives:

“If you have ϕ ∨ ψ . . . , add ϕ or ψ”

This means: split the current table column,try ϕ in one column, ψ in the other one

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 46 / 120

Tableau algorithms: termination

The algorithm terminates if

there is one clash-free column where no rules are applicable; satisfiable

all columns contain to a clash; unsatisfiable

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 47 / 120

Tableau algorithm for propositional logic

input: propositional formula ϕoutput: “satisfiable” or “unsatisfiable”

1: initialise S with {ϕ}2: while there is a formula ϕ in S to which a rule R is applicable do3: apply R to ϕ4: if every column contains a clash then5: output “unsatisfiable”6: else7: output “satisfiable”

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 48 / 120

Tableau algorithm for propositional logic

input: propositional formula ϕoutput: “satisfiable” or “unsatisfiable”

1: initialise S with {ϕ}

2: while there is a formula ϕ in S to which a rule R is applicable do3: apply R to ϕ4: if every column contains a clash then5: output “unsatisfiable”6: else7: output “satisfiable”

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 48 / 120

Tableau algorithm for propositional logic

input: propositional formula ϕoutput: “satisfiable” or “unsatisfiable”

1: initialise S with {ϕ}2: while there is a formula ϕ in S to which a rule R is applicable do3: apply R to ϕ

4: if every column contains a clash then5: output “unsatisfiable”6: else7: output “satisfiable”

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 48 / 120

Tableau algorithm for propositional logic

input: propositional formula ϕoutput: “satisfiable” or “unsatisfiable”

1: initialise S with {ϕ}2: while there is a formula ϕ in S to which a rule R is applicable do3: apply R to ϕ4: if every column contains a clash then5: output “unsatisfiable”6: else7: output “satisfiable”

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 48 / 120

Tableau rules for propositional logic

∧ If ϕ ∧ ψ ∈ S and {ϕ,ψ} * Sthen S := S ∪ {ϕ,ψ}

∨ If ϕ ∨ ψ ∈ S and {ϕ,ψ} ∩ S = ∅then S := S ∪ {ϕ} or S := S ∪ {ψ}

→ If ϕ→ ψ ∈ S and {¬ϕ,ψ} ∩ S = ∅then S := S ∪ {¬ϕ} or S := S ∪ {ψ}

↔ If ϕ↔ ψ ∈ S and {ϕ,ψ} ∩ S = ∅ and {¬ϕ,¬ψ} ∩ S = ∅then S := S ∪ {ϕ,ψ} or S := S ∪ {¬ϕ,¬ψ}

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 49 / 120

Tableau rules for propositional logic

∧ If ϕ ∧ ψ ∈ S and {ϕ,ψ} * Sthen S := S ∪ {ϕ,ψ}

∨ If ϕ ∨ ψ ∈ S and {ϕ,ψ} ∩ S = ∅then S := S ∪ {ϕ} or S := S ∪ {ψ}

→ If ϕ→ ψ ∈ S and {¬ϕ,ψ} ∩ S = ∅then S := S ∪ {¬ϕ} or S := S ∪ {ψ}

↔ If ϕ↔ ψ ∈ S and {ϕ,ψ} ∩ S = ∅ and {¬ϕ,¬ψ} ∩ S = ∅then S := S ∪ {ϕ,ψ} or S := S ∪ {¬ϕ,¬ψ}

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 49 / 120

Tableau rules for propositional logic

∧ If ϕ ∧ ψ ∈ S and {ϕ,ψ} * Sthen S := S ∪ {ϕ,ψ}

∨ If ϕ ∨ ψ ∈ S and {ϕ,ψ} ∩ S = ∅then S := S ∪ {ϕ} or S := S ∪ {ψ}

→ If ϕ→ ψ ∈ S and {¬ϕ,ψ} ∩ S = ∅then S := S ∪ {¬ϕ} or S := S ∪ {ψ}

↔ If ϕ↔ ψ ∈ S and {ϕ,ψ} ∩ S = ∅ and {¬ϕ,¬ψ} ∩ S = ∅then S := S ∪ {ϕ,ψ} or S := S ∪ {¬ϕ,¬ψ}

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 49 / 120

Tableau rules for propositional logic

∧ If ϕ ∧ ψ ∈ S and {ϕ,ψ} * Sthen S := S ∪ {ϕ,ψ}

∨ If ϕ ∨ ψ ∈ S and {ϕ,ψ} ∩ S = ∅then S := S ∪ {ϕ} or S := S ∪ {ψ}

→ If ϕ→ ψ ∈ S and {¬ϕ,ψ} ∩ S = ∅then S := S ∪ {¬ϕ} or S := S ∪ {ψ}

↔ If ϕ↔ ψ ∈ S and {ϕ,ψ} ∩ S = ∅ and {¬ϕ,¬ψ} ∩ S = ∅then S := S ∪ {ϕ,ψ} or S := S ∪ {¬ϕ,¬ψ}

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 49 / 120

Tableau rules: negated formulas

¬∧ If ¬(ϕ ∧ ψ) ∈ S and {¬ϕ,¬ψ} ∩ S = ∅then S := S ∪ {¬ϕ} or S := S ∪ {¬ψ}

¬∨ If ¬(ϕ ∨ ψ) ∈ S and {¬ϕ,¬ψ} * Sthen S := S ∪ {¬ϕ,¬ψ}

¬ → If ¬(ϕ→ ψ) ∈ S and {ϕ,¬ψ} * Sthen S := S ∪ {ϕ,¬ψ}

¬ ↔ If ¬(ϕ↔ ψ) ∈ S and {ϕ ∨ ψ,¬ϕ ∨ ¬ψ} * Sthen S := S ∪ {ϕ ∨ ψ,¬ϕ ∨ ¬ψ}

¬¬ If ¬(¬ϕ) ∈ S and ϕ /∈ Sthen S := S ∪ {ϕ}

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 50 / 120

Tableau rules: negated formulas

¬∧ If ¬(ϕ ∧ ψ) ∈ S and {¬ϕ,¬ψ} ∩ S = ∅then S := S ∪ {¬ϕ} or S := S ∪ {¬ψ}

¬∨ If ¬(ϕ ∨ ψ) ∈ S and {¬ϕ,¬ψ} * Sthen S := S ∪ {¬ϕ,¬ψ}

¬ → If ¬(ϕ→ ψ) ∈ S and {ϕ,¬ψ} * Sthen S := S ∪ {ϕ,¬ψ}

¬ ↔ If ¬(ϕ↔ ψ) ∈ S and {ϕ ∨ ψ,¬ϕ ∨ ¬ψ} * Sthen S := S ∪ {ϕ ∨ ψ,¬ϕ ∨ ¬ψ}

¬¬ If ¬(¬ϕ) ∈ S and ϕ /∈ Sthen S := S ∪ {ϕ}

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 50 / 120

Tableau rules: negated formulas

¬∧ If ¬(ϕ ∧ ψ) ∈ S and {¬ϕ,¬ψ} ∩ S = ∅then S := S ∪ {¬ϕ} or S := S ∪ {¬ψ}

¬∨ If ¬(ϕ ∨ ψ) ∈ S and {¬ϕ,¬ψ} * Sthen S := S ∪ {¬ϕ,¬ψ}

¬ → If ¬(ϕ→ ψ) ∈ S and {ϕ,¬ψ} * Sthen S := S ∪ {ϕ,¬ψ}

¬ ↔ If ¬(ϕ↔ ψ) ∈ S and {ϕ ∨ ψ,¬ϕ ∨ ¬ψ} * Sthen S := S ∪ {ϕ ∨ ψ,¬ϕ ∨ ¬ψ}

¬¬ If ¬(¬ϕ) ∈ S and ϕ /∈ Sthen S := S ∪ {ϕ}

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 50 / 120

Tableau rules: negated formulas

¬∧ If ¬(ϕ ∧ ψ) ∈ S and {¬ϕ,¬ψ} ∩ S = ∅then S := S ∪ {¬ϕ} or S := S ∪ {¬ψ}

¬∨ If ¬(ϕ ∨ ψ) ∈ S and {¬ϕ,¬ψ} * Sthen S := S ∪ {¬ϕ,¬ψ}

¬ → If ¬(ϕ→ ψ) ∈ S and {ϕ,¬ψ} * Sthen S := S ∪ {ϕ,¬ψ}

¬ ↔ If ¬(ϕ↔ ψ) ∈ S and {ϕ ∨ ψ,¬ϕ ∨ ¬ψ} * Sthen S := S ∪ {ϕ ∨ ψ,¬ϕ ∨ ¬ψ}

¬¬ If ¬(¬ϕ) ∈ S and ϕ /∈ Sthen S := S ∪ {ϕ}

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 50 / 120

Tableau rules: negated formulas

¬∧ If ¬(ϕ ∧ ψ) ∈ S and {¬ϕ,¬ψ} ∩ S = ∅then S := S ∪ {¬ϕ} or S := S ∪ {¬ψ}

¬∨ If ¬(ϕ ∨ ψ) ∈ S and {¬ϕ,¬ψ} * Sthen S := S ∪ {¬ϕ,¬ψ}

¬ → If ¬(ϕ→ ψ) ∈ S and {ϕ,¬ψ} * Sthen S := S ∪ {ϕ,¬ψ}

¬ ↔ If ¬(ϕ↔ ψ) ∈ S and {ϕ ∨ ψ,¬ϕ ∨ ¬ψ} * Sthen S := S ∪ {ϕ ∨ ψ,¬ϕ ∨ ¬ψ}

¬¬ If ¬(¬ϕ) ∈ S and ϕ /∈ Sthen S := S ∪ {ϕ}

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 50 / 120

Tableau rules

Effectively, only two kinds of rules exist:

deterministic rules that add formulas to the corresponding column

∧, ¬¬, ¬∨, . . .

non-deterministic rules that split the column

∨, →, ↔, . . .

For efficiency reasons, deterministic rules should be applied first.Otherwise, they have to be applied separately in each column.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 51 / 120

Tableau rules

Effectively, only two kinds of rules exist:

deterministic rules that add formulas to the corresponding column

∧, ¬¬, ¬∨, . . .

non-deterministic rules that split the column

∨, →, ↔, . . .

For efficiency reasons, deterministic rules should be applied first.Otherwise, they have to be applied separately in each column.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 51 / 120

Tableau rules

Effectively, only two kinds of rules exist:

deterministic rules that add formulas to the corresponding column

∧, ¬¬, ¬∨, . . .

non-deterministic rules that split the column

∨, →, ↔, . . .

For efficiency reasons, deterministic rules should be applied first.Otherwise, they have to be applied separately in each column.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 51 / 120

Tableau rules

Effectively, only two kinds of rules exist:

deterministic rules that add formulas to the corresponding column

∧, ¬¬, ¬∨, . . .

non-deterministic rules that split the column

∨, →, ↔, . . .

For efficiency reasons, deterministic rules should be applied first.Otherwise, they have to be applied separately in each column.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 51 / 120

Tableau rules

Effectively, only two kinds of rules exist:

deterministic rules that add formulas to the corresponding column

∧, ¬¬, ¬∨, . . .

non-deterministic rules that split the column

∨, →, ↔, . . .

For efficiency reasons, deterministic rules should be applied first.Otherwise, they have to be applied separately in each column.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 51 / 120

Tableau rules

Effectively, only two kinds of rules exist:

deterministic rules that add formulas to the corresponding column

∧, ¬¬, ¬∨, . . .

non-deterministic rules that split the column

∨, →, ↔, . . .

For efficiency reasons, deterministic rules should be applied first.Otherwise, they have to be applied separately in each column.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 51 / 120

Example: determining John’s future with a tableau

Premises: (¬S ∧ I → A); (B → I); (¬B → F ); ¬A; ¬SConjecture: F

Test if premises together with negation of conjecture are satisfiable.(¬S ∧ I → A) ∧ (B → I) ∧ (¬B → F ) ∧ ¬A ∧ ¬S ∧ ¬F

. . . ∧ . . . ∧ . . .(¬S ∧ I → A); (B → I); (¬B → F );¬A;¬S;¬F ¬S ∧ I → A

¬(¬S ∧ I) A ¬(¬S ∧ I)¬¬S ¬I ¬¬SS B → I

¬B I ¬B → F¬¬B F ¬¬BB

all columns contain a clash; ϕ is unsatisfiable; conjecture follows from premises

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 52 / 120

Example: determining John’s future with a tableau

Premises: (¬S ∧ I → A); (B → I); (¬B → F ); ¬A; ¬SConjecture: F

Test if premises together with negation of conjecture are satisfiable.(¬S ∧ I → A) ∧ (B → I) ∧ (¬B → F ) ∧ ¬A ∧ ¬S ∧ ¬F . . . ∧ . . . ∧ . . .

(¬S ∧ I → A); (B → I); (¬B → F );¬A;¬S;¬F

¬S ∧ I → A¬(¬S ∧ I) A ¬(¬S ∧ I)

¬¬S ¬I ¬¬SS B → I

¬B I ¬B → F¬¬B F ¬¬BB

all columns contain a clash; ϕ is unsatisfiable; conjecture follows from premises

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 52 / 120

Example: determining John’s future with a tableau

Premises: (¬S ∧ I → A); (B → I); (¬B → F ); ¬A; ¬SConjecture: F

Test if premises together with negation of conjecture are satisfiable.(¬S ∧ I → A) ∧ (B → I) ∧ (¬B → F ) ∧ ¬A ∧ ¬S ∧ ¬F . . . ∧ . . . ∧ . . .

(¬S ∧ I → A); (B → I); (¬B → F );¬A;¬S;¬F ¬S ∧ I → A¬(¬S ∧ I) A

¬(¬S ∧ I)¬¬S ¬I ¬¬SS B → I

¬B I ¬B → F¬¬B F ¬¬BB

all columns contain a clash; ϕ is unsatisfiable; conjecture follows from premises

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 52 / 120

Example: determining John’s future with a tableau

Premises: (¬S ∧ I → A); (B → I); (¬B → F ); ¬A; ¬SConjecture: F

Test if premises together with negation of conjecture are satisfiable.(¬S ∧ I → A) ∧ (B → I) ∧ (¬B → F ) ∧ ¬A ∧ ¬S ∧ ¬F . . . ∧ . . . ∧ . . .

(¬S ∧ I → A); (B → I); (¬B → F );¬A;¬S;¬F ¬S ∧ I → A¬(¬S ∧ I) A ¬(¬S ∧ I)

¬¬S ¬I

¬¬SS B → I

¬B I ¬B → F¬¬B F ¬¬BB

all columns contain a clash; ϕ is unsatisfiable; conjecture follows from premises

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 52 / 120

Example: determining John’s future with a tableau

Premises: (¬S ∧ I → A); (B → I); (¬B → F ); ¬A; ¬SConjecture: F

Test if premises together with negation of conjecture are satisfiable.(¬S ∧ I → A) ∧ (B → I) ∧ (¬B → F ) ∧ ¬A ∧ ¬S ∧ ¬F . . . ∧ . . . ∧ . . .

(¬S ∧ I → A); (B → I); (¬B → F );¬A;¬S;¬F ¬S ∧ I → A¬(¬S ∧ I) A ¬(¬S ∧ I)

¬¬S ¬I ¬¬SS

B → I¬B I ¬B → F

¬¬B F ¬¬BB

all columns contain a clash; ϕ is unsatisfiable; conjecture follows from premises

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 52 / 120

Example: determining John’s future with a tableau

Premises: (¬S ∧ I → A); (B → I); (¬B → F ); ¬A; ¬SConjecture: F

Test if premises together with negation of conjecture are satisfiable.(¬S ∧ I → A) ∧ (B → I) ∧ (¬B → F ) ∧ ¬A ∧ ¬S ∧ ¬F . . . ∧ . . . ∧ . . .

(¬S ∧ I → A); (B → I); (¬B → F );¬A;¬S;¬F ¬S ∧ I → A¬(¬S ∧ I) A ¬(¬S ∧ I)

¬¬S ¬I ¬¬SS B → I

¬B I

¬B → F¬¬B F ¬¬BB

all columns contain a clash; ϕ is unsatisfiable; conjecture follows from premises

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 52 / 120

Example: determining John’s future with a tableau

Premises: (¬S ∧ I → A); (B → I); (¬B → F ); ¬A; ¬SConjecture: F

Test if premises together with negation of conjecture are satisfiable.(¬S ∧ I → A) ∧ (B → I) ∧ (¬B → F ) ∧ ¬A ∧ ¬S ∧ ¬F . . . ∧ . . . ∧ . . .

(¬S ∧ I → A); (B → I); (¬B → F );¬A;¬S;¬F ¬S ∧ I → A¬(¬S ∧ I) A ¬(¬S ∧ I)

¬¬S ¬I ¬¬SS B → I

¬B I ¬B → F¬¬B F

¬¬BB

all columns contain a clash; ϕ is unsatisfiable; conjecture follows from premises

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 52 / 120

Example: determining John’s future with a tableau

Premises: (¬S ∧ I → A); (B → I); (¬B → F ); ¬A; ¬SConjecture: F

Test if premises together with negation of conjecture are satisfiable.(¬S ∧ I → A) ∧ (B → I) ∧ (¬B → F ) ∧ ¬A ∧ ¬S ∧ ¬F . . . ∧ . . . ∧ . . .

(¬S ∧ I → A); (B → I); (¬B → F );¬A;¬S;¬F ¬S ∧ I → A¬(¬S ∧ I) A ¬(¬S ∧ I)

¬¬S ¬I ¬¬SS B → I

¬B I ¬B → F¬¬B F ¬¬BB

all columns contain a clash; ϕ is unsatisfiable; conjecture follows from premises

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 52 / 120

Example: determining John’s future with a tableau

Premises: (¬S ∧ I → A); (B → I); (¬B → F ); ¬A; ¬SConjecture: F

Test if premises together with negation of conjecture are satisfiable.(¬S ∧ I → A) ∧ (B → I) ∧ (¬B → F ) ∧ ¬A ∧ ¬S ∧ ¬F . . . ∧ . . . ∧ . . .

(¬S ∧ I → A); (B → I); (¬B → F );¬A;¬S;¬F ¬S ∧ I → A¬(¬S ∧ I) A ¬(¬S ∧ I)

¬¬S ¬I ¬¬SS B → I

¬B I ¬B → F¬¬B F ¬¬BB

all columns contain a clash; ϕ is unsatisfiable; conjecture follows from premises

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 52 / 120

Tableau rules and negation normal form

Definition (NNF)

A propostional formula is in negation normal form (NNF) if the only binaryconnectives that appear are ∧ and ∨ and negation only appearsimmediately before propositional variables.

Every propositional formula can be transformed into NNF by

1 eliminating → and ↔2 applying deMorgan’s laws

3 removing double negation

as for CNF.

For formulas in NNF, the only tableau rules that are needed are those forconjunction and disjunction.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 53 / 120

Tableau rules and negation normal form

Definition (NNF)

A propostional formula is in negation normal form (NNF) if the only binaryconnectives that appear are ∧ and ∨ and negation only appearsimmediately before propositional variables.

Every propositional formula can be transformed into NNF by

1 eliminating → and ↔

2 applying deMorgan’s laws

3 removing double negation

as for CNF.

For formulas in NNF, the only tableau rules that are needed are those forconjunction and disjunction.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 53 / 120

Tableau rules and negation normal form

Definition (NNF)

A propostional formula is in negation normal form (NNF) if the only binaryconnectives that appear are ∧ and ∨ and negation only appearsimmediately before propositional variables.

Every propositional formula can be transformed into NNF by

1 eliminating → and ↔2 applying deMorgan’s laws

3 removing double negation

as for CNF.

For formulas in NNF, the only tableau rules that are needed are those forconjunction and disjunction.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 53 / 120

Tableau rules and negation normal form

Definition (NNF)

A propostional formula is in negation normal form (NNF) if the only binaryconnectives that appear are ∧ and ∨ and negation only appearsimmediately before propositional variables.

Every propositional formula can be transformed into NNF by

1 eliminating → and ↔2 applying deMorgan’s laws

3 removing double negation

as for CNF.

For formulas in NNF, the only tableau rules that are needed are those forconjunction and disjunction.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 53 / 120

Tableau rules and negation normal form

Definition (NNF)

A propostional formula is in negation normal form (NNF) if the only binaryconnectives that appear are ∧ and ∨ and negation only appearsimmediately before propositional variables.

Every propositional formula can be transformed into NNF by

1 eliminating → and ↔2 applying deMorgan’s laws

3 removing double negation

as for CNF.

For formulas in NNF, the only tableau rules that are needed are those forconjunction and disjunction.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 53 / 120

Tableau rules and negation normal form

Definition (NNF)

A propostional formula is in negation normal form (NNF) if the only binaryconnectives that appear are ∧ and ∨ and negation only appearsimmediately before propositional variables.

Every propositional formula can be transformed into NNF by

1 eliminating → and ↔2 applying deMorgan’s laws

3 removing double negation

as for CNF.

For formulas in NNF, the only tableau rules that are needed are those forconjunction and disjunction.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 53 / 120

Tableau rules and negation normal form

Definition (NNF)

A propostional formula is in negation normal form (NNF) if the only binaryconnectives that appear are ∧ and ∨ and negation only appearsimmediately before propositional variables.

Every propositional formula can be transformed into NNF by

1 eliminating → and ↔2 applying deMorgan’s laws

3 removing double negation

as for CNF.

For formulas in NNF, the only tableau rules that are needed are those forconjunction and disjunction.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 53 / 120

Exercise: tableau algorithm

Prove that Brian and Colin are guilty using a tableau.

(A ∨B ∨ C) ∧(A→ B ∧ ¬C ∨ ¬B ∧ C) ∧

(¬B → ¬C) ∧¬(A ∧B ∧ ¬C) ∧

(¬C → A) ∧¬(B ∧ C)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 54 / 120

Tableaus and nondeterminism

if several rules are applicable, the choice which one to apply isdon’t-care-nondeterministic

reminder: every choice leads to a solution

if a rule is nondeterministic (like the ∨-rule), the choice whichalternative to take is don’t-know-nondeterministic

finding of a solution may depend on the choiceall alternatives must be tested

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 55 / 120

Tableaus and nondeterminism

if several rules are applicable, the choice which one to apply isdon’t-care-nondeterministic

reminder: every choice leads to a solution

if a rule is nondeterministic (like the ∨-rule), the choice whichalternative to take is don’t-know-nondeterministic

finding of a solution may depend on the choiceall alternatives must be tested

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 55 / 120

Tableaus and nondeterminism

if several rules are applicable, the choice which one to apply isdon’t-care-nondeterministic

reminder: every choice leads to a solution

if a rule is nondeterministic (like the ∨-rule), the choice whichalternative to take is don’t-know-nondeterministic

finding of a solution may depend on the choiceall alternatives must be tested

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 55 / 120

Tableaus and nondeterminism

if several rules are applicable, the choice which one to apply isdon’t-care-nondeterministic

reminder: every choice leads to a solution

if a rule is nondeterministic (like the ∨-rule), the choice whichalternative to take is don’t-know-nondeterministic

finding of a solution may depend on the choice

all alternatives must be tested

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 55 / 120

Tableaus and nondeterminism

if several rules are applicable, the choice which one to apply isdon’t-care-nondeterministic

reminder: every choice leads to a solution

if a rule is nondeterministic (like the ∨-rule), the choice whichalternative to take is don’t-know-nondeterministic

finding of a solution may depend on the choiceall alternatives must be tested

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 55 / 120

Practical application of tableaus

the tree generated by the TA can be exponential in the size of theinput

example: (A ∨B) ∧ (C ∨D) ∧ (E ∨ F )

to save time and space, the TA is created depth-first:

only operate on one branchapply every rule in this branchno clash: abort and output “satisfiable”clash: try next branch

requires storing backtracking information for every application of anon-deterministic rule

another reason to delay application of non-deterministic rules as longas possible

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 56 / 120

Practical application of tableaus

the tree generated by the TA can be exponential in the size of theinput

example: (A ∨B) ∧ (C ∨D) ∧ (E ∨ F )

to save time and space, the TA is created depth-first:

only operate on one branchapply every rule in this branchno clash: abort and output “satisfiable”clash: try next branch

requires storing backtracking information for every application of anon-deterministic rule

another reason to delay application of non-deterministic rules as longas possible

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 56 / 120

Practical application of tableaus

the tree generated by the TA can be exponential in the size of theinput

example: (A ∨B) ∧ (C ∨D) ∧ (E ∨ F )

to save time and space, the TA is created depth-first:

only operate on one branchapply every rule in this branchno clash: abort and output “satisfiable”clash: try next branch

requires storing backtracking information for every application of anon-deterministic rule

another reason to delay application of non-deterministic rules as longas possible

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 56 / 120

Practical application of tableaus

the tree generated by the TA can be exponential in the size of theinput

example: (A ∨B) ∧ (C ∨D) ∧ (E ∨ F )

to save time and space, the TA is created depth-first:

only operate on one branch

apply every rule in this branchno clash: abort and output “satisfiable”clash: try next branch

requires storing backtracking information for every application of anon-deterministic rule

another reason to delay application of non-deterministic rules as longas possible

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 56 / 120

Practical application of tableaus

the tree generated by the TA can be exponential in the size of theinput

example: (A ∨B) ∧ (C ∨D) ∧ (E ∨ F )

to save time and space, the TA is created depth-first:

only operate on one branchapply every rule in this branch

no clash: abort and output “satisfiable”clash: try next branch

requires storing backtracking information for every application of anon-deterministic rule

another reason to delay application of non-deterministic rules as longas possible

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 56 / 120

Practical application of tableaus

the tree generated by the TA can be exponential in the size of theinput

example: (A ∨B) ∧ (C ∨D) ∧ (E ∨ F )

to save time and space, the TA is created depth-first:

only operate on one branchapply every rule in this branchno clash: abort and output “satisfiable”

clash: try next branch

requires storing backtracking information for every application of anon-deterministic rule

another reason to delay application of non-deterministic rules as longas possible

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 56 / 120

Practical application of tableaus

the tree generated by the TA can be exponential in the size of theinput

example: (A ∨B) ∧ (C ∨D) ∧ (E ∨ F )

to save time and space, the TA is created depth-first:

only operate on one branchapply every rule in this branchno clash: abort and output “satisfiable”clash: try next branch

requires storing backtracking information for every application of anon-deterministic rule

another reason to delay application of non-deterministic rules as longas possible

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 56 / 120

Practical application of tableaus

the tree generated by the TA can be exponential in the size of theinput

example: (A ∨B) ∧ (C ∨D) ∧ (E ∨ F )

to save time and space, the TA is created depth-first:

only operate on one branchapply every rule in this branchno clash: abort and output “satisfiable”clash: try next branch

requires storing backtracking information for every application of anon-deterministic rule

another reason to delay application of non-deterministic rules as longas possible

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 56 / 120

Practical application of tableaus

the tree generated by the TA can be exponential in the size of theinput

example: (A ∨B) ∧ (C ∨D) ∧ (E ∨ F )

to save time and space, the TA is created depth-first:

only operate on one branchapply every rule in this branchno clash: abort and output “satisfiable”clash: try next branch

requires storing backtracking information for every application of anon-deterministic rule

another reason to delay application of non-deterministic rules as longas possible

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 56 / 120

Tableaus vs. resolution

Advantages of tableaus

fast for satisfiable inputs

no preprocessing necessary (CNF)

generates a model (justification) for satisfiable inputs

Advantages of resolution

fast for unsatisfiable inputs

don’t-care-nondeterministic procedure (no backtracking)

only one operation, easy to optimise

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 57 / 120

Tableaus vs. resolution

Advantages of tableaus

fast for satisfiable inputs

no preprocessing necessary (CNF)

generates a model (justification) for satisfiable inputs

Advantages of resolution

fast for unsatisfiable inputs

don’t-care-nondeterministic procedure (no backtracking)

only one operation, easy to optimise

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 57 / 120

Tableaus vs. resolution

Advantages of tableaus

fast for satisfiable inputs

no preprocessing necessary (CNF)

generates a model (justification) for satisfiable inputs

Advantages of resolution

fast for unsatisfiable inputs

don’t-care-nondeterministic procedure (no backtracking)

only one operation, easy to optimise

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 57 / 120

Tableaus vs. resolution

Advantages of tableaus

fast for satisfiable inputs

no preprocessing necessary (CNF)

generates a model (justification) for satisfiable inputs

Advantages of resolution

fast for unsatisfiable inputs

don’t-care-nondeterministic procedure (no backtracking)

only one operation, easy to optimise

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 57 / 120

Tableaus vs. resolution

Advantages of tableaus

fast for satisfiable inputs

no preprocessing necessary (CNF)

generates a model (justification) for satisfiable inputs

Advantages of resolution

fast for unsatisfiable inputs

don’t-care-nondeterministic procedure (no backtracking)

only one operation, easy to optimise

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 57 / 120

Tableaus vs. resolution

Advantages of tableaus

fast for satisfiable inputs

no preprocessing necessary (CNF)

generates a model (justification) for satisfiable inputs

Advantages of resolution

fast for unsatisfiable inputs

don’t-care-nondeterministic procedure (no backtracking)

only one operation, easy to optimise

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 57 / 120

Outline

1 propositional and first-order logic

1 syntax and semantics of propositional logic2 reasoning

1 resolution2 tableaus

3 syntax and semantics of first-order logic4 reasoning

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 58 / 120

Limitations of propositional logic

PL can only deal with propositions as a whole

propositions can only be true or false

structure of propositions cannot be analysed

Example

Some chickens cannot fly.

All chickens are birds.

Conjecture: Some birds cannot fly.

Translation into PL:

C → ¬F ?

C → B

B → ¬F ?

formalisation is questionable; inference cannot be proved

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 59 / 120

Limitations of propositional logic

PL can only deal with propositions as a whole

propositions can only be true or false

structure of propositions cannot be analysed

Example

Some chickens cannot fly.

All chickens are birds.

Conjecture: Some birds cannot fly.

Translation into PL:

C → ¬F ?

C → B

B → ¬F ?

formalisation is questionable; inference cannot be proved

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 59 / 120

Limitations of propositional logic

PL can only deal with propositions as a whole

propositions can only be true or false

structure of propositions cannot be analysed

Example

Some chickens cannot fly.

All chickens are birds.

Conjecture: Some birds cannot fly.

Translation into PL:

C → ¬F ?

C → B

B → ¬F ?

formalisation is questionable; inference cannot be proved

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 59 / 120

Limitations of propositional logic

PL can only deal with propositions as a whole

propositions can only be true or false

structure of propositions cannot be analysed

Example

Some chickens cannot fly.

All chickens are birds.

Conjecture: Some birds cannot fly.

Translation into PL:

C → ¬F ?

C → B

B → ¬F ?

formalisation is questionable; inference cannot be proved

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 59 / 120

Limitations of propositional logic

PL can only deal with propositions as a whole

propositions can only be true or false

structure of propositions cannot be analysed

Example

Some chickens cannot fly.

All chickens are birds.

Conjecture: Some birds cannot fly.

Translation into PL:

C → ¬F ?

C → B

B → ¬F ?

formalisation is questionable; inference cannot be proved

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 59 / 120

Limitations of propositional logic

PL can only deal with propositions as a whole

propositions can only be true or false

structure of propositions cannot be analysed

Example

Some chickens cannot fly.

All chickens are birds.

Conjecture: Some birds cannot fly.

Translation into PL:

C → ¬F ?

C → B

B → ¬F ?

formalisation is questionable; inference cannot be proved

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 59 / 120

Limitations of propositional logic

PL can only deal with propositions as a whole

propositions can only be true or false

structure of propositions cannot be analysed

Example

Some chickens cannot fly.

All chickens are birds.

Conjecture: Some birds cannot fly.

Translation into PL:

C → ¬F ?

C → B

B → ¬F ?

formalisation is questionable; inference cannot be proved

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 59 / 120

Limitations of propositional logic

PL can only deal with propositions as a whole

propositions can only be true or false

structure of propositions cannot be analysed

Example

Some chickens cannot fly.

All chickens are birds.

Conjecture: Some birds cannot fly.

Translation into PL:

C → ¬F ?

C → B

B → ¬F ?

formalisation is questionable; inference cannot be proved

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 59 / 120

Limitations of propositional logic

PL can only deal with propositions as a whole

propositions can only be true or false

structure of propositions cannot be analysed

Example

Some chickens cannot fly.

All chickens are birds.

Conjecture: Some birds cannot fly.

Translation into PL:

C → ¬F ?

C → B

B → ¬F ?

formalisation is questionable; inference cannot be proved

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 59 / 120

Limitations of propositional logic

PL can only deal with propositions as a whole

propositions can only be true or false

structure of propositions cannot be analysed

Example

Some chickens cannot fly.

All chickens are birds.

Conjecture: Some birds cannot fly.

Translation into PL:

C → ¬F ?

C → B

B → ¬F ?

formalisation is questionable; inference cannot be proved

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 59 / 120

First-order predicate logic: syntax

constructor notation real-life domain math domain

variables x, y (people) (numbers)

constant a, b, c Calvin, Hobbes 1, 2, πsymbols

function f(x), h(x, y) has-mother, married-to x+ y, sqrt(x),symbols log(x, b)

predicate R(x), S(x, y) has-daughter, has-friend, x > y, x = y,symbols likes prime(x)

quantifiers ∀,∃operators ∧,∨,¬,→

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 60 / 120

First-order predicate logic: syntax

constructor notation real-life domain math domain

variables x, y (people) (numbers)

constant a, b, c Calvin, Hobbes 1, 2, πsymbols

function f(x), h(x, y) has-mother, married-to x+ y, sqrt(x),symbols log(x, b)

predicate R(x), S(x, y) has-daughter, has-friend, x > y, x = y,symbols likes prime(x)

quantifiers ∀,∃operators ∧,∨,¬,→

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 60 / 120

First-order predicate logic: syntax

constructor notation real-life domain math domain

variables x, y (people) (numbers)

constant a, b, c Calvin, Hobbes 1, 2, πsymbols

function f(x), h(x, y) has-mother, married-to x+ y, sqrt(x),symbols log(x, b)

predicate R(x), S(x, y) has-daughter, has-friend, x > y, x = y,symbols likes prime(x)

quantifiers ∀,∃

operators ∧,∨,¬,→

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 60 / 120

First-order predicate logic: syntax

constructor notation real-life domain math domain

variables x, y (people) (numbers)

constant a, b, c Calvin, Hobbes 1, 2, πsymbols

function f(x), h(x, y) has-mother, married-to x+ y, sqrt(x),symbols log(x, b)

predicate R(x), S(x, y) has-daughter, has-friend, x > y, x = y,symbols likes prime(x)

quantifiers ∀,∃operators ∧,∨,¬,→

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 60 / 120

Functions and their arity

Function symbols come with an arity

an n-ary function symbol has exactly n arguments

+ is binary (x+ y)

sqrt() is unary (sqrt(x))

has-mother and married-to are unary

nullary function symbols are constant symbols

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 61 / 120

Functions and their arity

Function symbols come with an arity

an n-ary function symbol has exactly n arguments

+ is binary (x+ y)

sqrt() is unary (sqrt(x))

has-mother and married-to are unary

nullary function symbols are constant symbols

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 61 / 120

Functions and their arity

Function symbols come with an arity

an n-ary function symbol has exactly n arguments

+ is binary (x+ y)

sqrt() is unary (sqrt(x))

has-mother and married-to are unary

nullary function symbols are constant symbols

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 61 / 120

Functions and their arity

Function symbols come with an arity

an n-ary function symbol has exactly n arguments

+ is binary (x+ y)

sqrt() is unary (sqrt(x))

has-mother and married-to are unary

nullary function symbols are constant symbols

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 61 / 120

Functions and their arity

Function symbols come with an arity

an n-ary function symbol has exactly n arguments

+ is binary (x+ y)

sqrt() is unary (sqrt(x))

has-mother and married-to are unary

nullary function symbols are constant symbols

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 61 / 120

Terms

Variables and function symbols (and thus also constant symbols) can beused to build terms.

Definition (term)

Terms are defined inductively as follows:

every variable is a term.

if f is n-ary and t1, . . . , tn are terms, then f(t1, . . . , tn) is a term.

every constant is a termbinary functions are often written in infix notation:x+ y rather than +(x, y)

terms without variables are called ground terms

Note: terms denote elements of the domain.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 62 / 120

Terms

Variables and function symbols (and thus also constant symbols) can beused to build terms.

Definition (term)

Terms are defined inductively as follows:

every variable is a term.

if f is n-ary and t1, . . . , tn are terms, then f(t1, . . . , tn) is a term.

every constant is a termbinary functions are often written in infix notation:x+ y rather than +(x, y)

terms without variables are called ground terms

Note: terms denote elements of the domain.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 62 / 120

Terms

Variables and function symbols (and thus also constant symbols) can beused to build terms.

Definition (term)

Terms are defined inductively as follows:

every variable is a term.

if f is n-ary and t1, . . . , tn are terms, then f(t1, . . . , tn) is a term.

every constant is a termbinary functions are often written in infix notation:x+ y rather than +(x, y)

terms without variables are called ground terms

Note: terms denote elements of the domain.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 62 / 120

Terms

Variables and function symbols (and thus also constant symbols) can beused to build terms.

Definition (term)

Terms are defined inductively as follows:

every variable is a term.

if f is n-ary and t1, . . . , tn are terms, then f(t1, . . . , tn) is a term.

every constant is a term

binary functions are often written in infix notation:x+ y rather than +(x, y)

terms without variables are called ground terms

Note: terms denote elements of the domain.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 62 / 120

Terms

Variables and function symbols (and thus also constant symbols) can beused to build terms.

Definition (term)

Terms are defined inductively as follows:

every variable is a term.

if f is n-ary and t1, . . . , tn are terms, then f(t1, . . . , tn) is a term.

every constant is a termbinary functions are often written in infix notation:x+ y rather than +(x, y)

terms without variables are called ground terms

Note: terms denote elements of the domain.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 62 / 120

Terms

Variables and function symbols (and thus also constant symbols) can beused to build terms.

Definition (term)

Terms are defined inductively as follows:

every variable is a term.

if f is n-ary and t1, . . . , tn are terms, then f(t1, . . . , tn) is a term.

every constant is a termbinary functions are often written in infix notation:x+ y rather than +(x, y)

terms without variables are called ground terms

Note: terms denote elements of the domain.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 62 / 120

Terms

Variables and function symbols (and thus also constant symbols) can beused to build terms.

Definition (term)

Terms are defined inductively as follows:

every variable is a term.

if f is n-ary and t1, . . . , tn are terms, then f(t1, . . . , tn) is a term.

every constant is a termbinary functions are often written in infix notation:x+ y rather than +(x, y)

terms without variables are called ground terms

Note: terms denote elements of the domain.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 62 / 120

Terms

Variables and function symbols (and thus also constant symbols) can beused to build terms.

Definition (term)

Terms are defined inductively as follows:

every variable is a term.

if f is n-ary and t1, . . . , tn are terms, then f(t1, . . . , tn) is a term.

every constant is a termbinary functions are often written in infix notation:x+ y rather than +(x, y)

terms without variables are called ground terms

Note: terms denote elements of the domain.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 62 / 120

Example: terms

Let

x, y be variables,

c, d be constant symbols,

f be a unary function symbol,

+ be a binary function symbol.

Example (ground terms)

c

f(d)

c+ f(c) or +(c, f(c))

+(c,+(d,+(f(c), f(f(d)))))

Example (non-ground terms)

x

f(y)

c+ f(y)

+(c,+(y,+(f(x), f(y))))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 63 / 120

Example: terms

Let

x, y be variables,

c, d be constant symbols,

f be a unary function symbol,

+ be a binary function symbol.

Example (ground terms)

c

f(d)

c+ f(c) or +(c, f(c))

+(c,+(d,+(f(c), f(f(d)))))

Example (non-ground terms)

x

f(y)

c+ f(y)

+(c,+(y,+(f(x), f(y))))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 63 / 120

Example: terms

Let

x, y be variables,

c, d be constant symbols,

f be a unary function symbol,

+ be a binary function symbol.

Example (ground terms)

c

f(d)

c+ f(c) or +(c, f(c))

+(c,+(d,+(f(c), f(f(d)))))

Example (non-ground terms)

x

f(y)

c+ f(y)

+(c,+(y,+(f(x), f(y))))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 63 / 120

Example: terms

Let

x, y be variables,

c, d be constant symbols,

f be a unary function symbol,

+ be a binary function symbol.

Example (ground terms)

c

f(d)

c+ f(c) or +(c, f(c))

+(c,+(d,+(f(c), f(f(d)))))

Example (non-ground terms)

x

f(y)

c+ f(y)

+(c,+(y,+(f(x), f(y))))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 63 / 120

Example: terms

Let

x, y be variables,

c, d be constant symbols,

f be a unary function symbol,

+ be a binary function symbol.

Example (ground terms)

c

f(d)

c+ f(c) or +(c, f(c))

+(c,+(d,+(f(c), f(f(d)))))

Example (non-ground terms)

x

f(y)

c+ f(y)

+(c,+(y,+(f(x), f(y))))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 63 / 120

Example: terms

Let

x, y be variables,

c, d be constant symbols,

f be a unary function symbol,

+ be a binary function symbol.

Example (ground terms)

c

f(d)

c+ f(c) or +(c, f(c))

+(c,+(d,+(f(c), f(f(d)))))

Example (non-ground terms)

x

f(y)

c+ f(y)

+(c,+(y,+(f(x), f(y))))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 63 / 120

Example: terms

Let

x, y be variables,

c, d be constant symbols,

f be a unary function symbol,

+ be a binary function symbol.

Example (ground terms)

c

f(d)

c+ f(c) or +(c, f(c))

+(c,+(d,+(f(c), f(f(d)))))

Example (non-ground terms)

x

f(y)

c+ f(y)

+(c,+(y,+(f(x), f(y))))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 63 / 120

Example: terms

Let

x, y be variables,

c, d be constant symbols,

f be a unary function symbol,

+ be a binary function symbol.

Example (ground terms)

c

f(d)

c+ f(c) or +(c, f(c))

+(c,+(d,+(f(c), f(f(d)))))

Example (non-ground terms)

x

f(y)

c+ f(y)

+(c,+(y,+(f(x), f(y))))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 63 / 120

Example: terms

Let

x, y be variables,

c, d be constant symbols,

f be a unary function symbol,

+ be a binary function symbol.

Example (ground terms)

c

f(d)

c+ f(c) or +(c, f(c))

+(c,+(d,+(f(c), f(f(d)))))

Example (non-ground terms)

x

f(y)

c+ f(y)

+(c,+(y,+(f(x), f(y))))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 63 / 120

Example: terms

Let

x, y be variables,

c, d be constant symbols,

f be a unary function symbol,

+ be a binary function symbol.

Example (ground terms)

c

f(d)

c+ f(c) or +(c, f(c))

+(c,+(d,+(f(c), f(f(d)))))

Example (non-ground terms)

x

f(y)

c+ f(y)

+(c,+(y,+(f(x), f(y))))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 63 / 120

Predicates and their arity

Predicate symbols also come with an arity.

an n-ary predicate symbol has exactly n arguments

> is binary (x > y)

prime() is unary (prime(x))

has-daughter and likes are binary

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 64 / 120

Predicates and their arity

Predicate symbols also come with an arity.

an n-ary predicate symbol has exactly n arguments

> is binary (x > y)

prime() is unary (prime(x))

has-daughter and likes are binary

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 64 / 120

Predicates and their arity

Predicate symbols also come with an arity.

an n-ary predicate symbol has exactly n arguments

> is binary (x > y)

prime() is unary (prime(x))

has-daughter and likes are binary

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 64 / 120

Predicates and their arity

Predicate symbols also come with an arity.

an n-ary predicate symbol has exactly n arguments

> is binary (x > y)

prime() is unary (prime(x))

has-daughter and likes are binary

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 64 / 120

Atoms

Predicate symbols and terms can be used to build atoms.

Definition (Atom)

Atoms are defined as follows:

if R is an n-ary predicate symbol and t1, . . . , tn are terms, thenR(t1, . . . , tn) is an atom

binary relations are often written in infix notation:x > y rather than > (x, y)

atoms without variables are called ground atoms

Note: Atoms are either true or false.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 65 / 120

Atoms

Predicate symbols and terms can be used to build atoms.

Definition (Atom)

Atoms are defined as follows:

if R is an n-ary predicate symbol and t1, . . . , tn are terms, thenR(t1, . . . , tn) is an atom

binary relations are often written in infix notation:x > y rather than > (x, y)

atoms without variables are called ground atoms

Note: Atoms are either true or false.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 65 / 120

Atoms

Predicate symbols and terms can be used to build atoms.

Definition (Atom)

Atoms are defined as follows:

if R is an n-ary predicate symbol and t1, . . . , tn are terms, thenR(t1, . . . , tn) is an atom

binary relations are often written in infix notation:x > y rather than > (x, y)

atoms without variables are called ground atoms

Note: Atoms are either true or false.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 65 / 120

Atoms

Predicate symbols and terms can be used to build atoms.

Definition (Atom)

Atoms are defined as follows:

if R is an n-ary predicate symbol and t1, . . . , tn are terms, thenR(t1, . . . , tn) is an atom

binary relations are often written in infix notation:x > y rather than > (x, y)

atoms without variables are called ground atoms

Note: Atoms are either true or false.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 65 / 120

Atoms

Predicate symbols and terms can be used to build atoms.

Definition (Atom)

Atoms are defined as follows:

if R is an n-ary predicate symbol and t1, . . . , tn are terms, thenR(t1, . . . , tn) is an atom

binary relations are often written in infix notation:x > y rather than > (x, y)

atoms without variables are called ground atoms

Note: Atoms are either true or false.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 65 / 120

Atoms

Predicate symbols and terms can be used to build atoms.

Definition (Atom)

Atoms are defined as follows:

if R is an n-ary predicate symbol and t1, . . . , tn are terms, thenR(t1, . . . , tn) is an atom

binary relations are often written in infix notation:x > y rather than > (x, y)

atoms without variables are called ground atoms

Note: Atoms are either true or false.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 65 / 120

Example: atoms

Let

> be a binary predicate symbol

P be a unary predicate symbol

Example (ground atoms)

P (c)

c > f(c) or > (c, f(c))

c > c

P (c+ f(c))

Example (non-ground atoms)

x > y

f(y) > c+ f(x)

P (f(c+ y))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 66 / 120

Example: atoms

Let

> be a binary predicate symbol

P be a unary predicate symbol

Example (ground atoms)

P (c)

c > f(c) or > (c, f(c))

c > c

P (c+ f(c))

Example (non-ground atoms)

x > y

f(y) > c+ f(x)

P (f(c+ y))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 66 / 120

Example: atoms

Let

> be a binary predicate symbol

P be a unary predicate symbol

Example (ground atoms)

P (c)

c > f(c) or > (c, f(c))

c > c

P (c+ f(c))

Example (non-ground atoms)

x > y

f(y) > c+ f(x)

P (f(c+ y))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 66 / 120

Example: atoms

Let

> be a binary predicate symbol

P be a unary predicate symbol

Example (ground atoms)

P (c)

c > f(c) or > (c, f(c))

c > c

P (c+ f(c))

Example (non-ground atoms)

x > y

f(y) > c+ f(x)

P (f(c+ y))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 66 / 120

Example: atoms

Let

> be a binary predicate symbol

P be a unary predicate symbol

Example (ground atoms)

P (c)

c > f(c) or > (c, f(c))

c > c

P (c+ f(c))

Example (non-ground atoms)

x > y

f(y) > c+ f(x)

P (f(c+ y))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 66 / 120

Example: atoms

Let

> be a binary predicate symbol

P be a unary predicate symbol

Example (ground atoms)

P (c)

c > f(c) or > (c, f(c))

c > c

P (c+ f(c))

Example (non-ground atoms)

x > y

f(y) > c+ f(x)

P (f(c+ y))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 66 / 120

Example: atoms

Let

> be a binary predicate symbol

P be a unary predicate symbol

Example (ground atoms)

P (c)

c > f(c) or > (c, f(c))

c > c

P (c+ f(c))

Example (non-ground atoms)

x > y

f(y) > c+ f(x)

P (f(c+ y))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 66 / 120

Example: atoms

Let

> be a binary predicate symbol

P be a unary predicate symbol

Example (ground atoms)

P (c)

c > f(c) or > (c, f(c))

c > c

P (c+ f(c))

Example (non-ground atoms)

x > y

f(y) > c+ f(x)

P (f(c+ y))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 66 / 120

Example: atoms

Let

> be a binary predicate symbol

P be a unary predicate symbol

Example (ground atoms)

P (c)

c > f(c) or > (c, f(c))

c > c

P (c+ f(c))

Example (non-ground atoms)

x > y

f(y) > c+ f(x)

P (f(c+ y))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 66 / 120

Boolean operators, quantifiers, and formulas

Atoms can be used to build complex formulas.

Definition (formula)

Formulas are defined recursively as follows:

every atom is a formula

if ϕ and ψ are formulas and x is a variable, then the following are alsoformulas:

¬ϕ, >, ⊥ϕ ∧ ψ, ϕ ∨ ψ, ϕ→ ψ, ϕ↔ ψ∀xϕ, ∃xϕ

if x appears in ϕ, it is called bound by the quantifierotherwise, it is called free

a formula with free variables is called an open formula

a formula without free variables is called a closed formula or asentence

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 67 / 120

Boolean operators, quantifiers, and formulas

Atoms can be used to build complex formulas.

Definition (formula)

Formulas are defined recursively as follows:

every atom is a formula

if ϕ and ψ are formulas and x is a variable, then the following are alsoformulas:

¬ϕ, >, ⊥ϕ ∧ ψ, ϕ ∨ ψ, ϕ→ ψ, ϕ↔ ψ∀xϕ, ∃xϕ

if x appears in ϕ, it is called bound by the quantifierotherwise, it is called free

a formula with free variables is called an open formula

a formula without free variables is called a closed formula or asentence

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 67 / 120

Boolean operators, quantifiers, and formulas

Atoms can be used to build complex formulas.

Definition (formula)

Formulas are defined recursively as follows:

every atom is a formula

if ϕ and ψ are formulas and x is a variable, then the following are alsoformulas:

¬ϕ, >, ⊥

ϕ ∧ ψ, ϕ ∨ ψ, ϕ→ ψ, ϕ↔ ψ∀xϕ, ∃xϕ

if x appears in ϕ, it is called bound by the quantifierotherwise, it is called free

a formula with free variables is called an open formula

a formula without free variables is called a closed formula or asentence

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 67 / 120

Boolean operators, quantifiers, and formulas

Atoms can be used to build complex formulas.

Definition (formula)

Formulas are defined recursively as follows:

every atom is a formula

if ϕ and ψ are formulas and x is a variable, then the following are alsoformulas:

¬ϕ, >, ⊥ϕ ∧ ψ, ϕ ∨ ψ, ϕ→ ψ, ϕ↔ ψ

∀xϕ, ∃xϕ

if x appears in ϕ, it is called bound by the quantifierotherwise, it is called free

a formula with free variables is called an open formula

a formula without free variables is called a closed formula or asentence

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 67 / 120

Boolean operators, quantifiers, and formulas

Atoms can be used to build complex formulas.

Definition (formula)

Formulas are defined recursively as follows:

every atom is a formula

if ϕ and ψ are formulas and x is a variable, then the following are alsoformulas:

¬ϕ, >, ⊥ϕ ∧ ψ, ϕ ∨ ψ, ϕ→ ψ, ϕ↔ ψ∀xϕ, ∃xϕ

if x appears in ϕ, it is called bound by the quantifierotherwise, it is called free

a formula with free variables is called an open formula

a formula without free variables is called a closed formula or asentence

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 67 / 120

Boolean operators, quantifiers, and formulas

Atoms can be used to build complex formulas.

Definition (formula)

Formulas are defined recursively as follows:

every atom is a formula

if ϕ and ψ are formulas and x is a variable, then the following are alsoformulas:

¬ϕ, >, ⊥ϕ ∧ ψ, ϕ ∨ ψ, ϕ→ ψ, ϕ↔ ψ∀xϕ, ∃xϕ

if x appears in ϕ, it is called bound by the quantifier

otherwise, it is called free

a formula with free variables is called an open formula

a formula without free variables is called a closed formula or asentence

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 67 / 120

Boolean operators, quantifiers, and formulas

Atoms can be used to build complex formulas.

Definition (formula)

Formulas are defined recursively as follows:

every atom is a formula

if ϕ and ψ are formulas and x is a variable, then the following are alsoformulas:

¬ϕ, >, ⊥ϕ ∧ ψ, ϕ ∨ ψ, ϕ→ ψ, ϕ↔ ψ∀xϕ, ∃xϕ

if x appears in ϕ, it is called bound by the quantifierotherwise, it is called free

a formula with free variables is called an open formula

a formula without free variables is called a closed formula or asentence

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 67 / 120

Boolean operators, quantifiers, and formulas

Atoms can be used to build complex formulas.

Definition (formula)

Formulas are defined recursively as follows:

every atom is a formula

if ϕ and ψ are formulas and x is a variable, then the following are alsoformulas:

¬ϕ, >, ⊥ϕ ∧ ψ, ϕ ∨ ψ, ϕ→ ψ, ϕ↔ ψ∀xϕ, ∃xϕ

if x appears in ϕ, it is called bound by the quantifierotherwise, it is called free

a formula with free variables is called an open formula

a formula without free variables is called a closed formula or asentence

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 67 / 120

Boolean operators, quantifiers, and formulas

Atoms can be used to build complex formulas.

Definition (formula)

Formulas are defined recursively as follows:

every atom is a formula

if ϕ and ψ are formulas and x is a variable, then the following are alsoformulas:

¬ϕ, >, ⊥ϕ ∧ ψ, ϕ ∨ ψ, ϕ→ ψ, ϕ↔ ψ∀xϕ, ∃xϕ

if x appears in ϕ, it is called bound by the quantifierotherwise, it is called free

a formula with free variables is called an open formula

a formula without free variables is called a closed formula or asentence

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 67 / 120

Example: Formulas

Example (open formulas)

P (x)

f(y) > c+ f(x)

P (y) ∨ x > c

x > y → ¬∀x(x > y)

∀xP (x) ∨ x > c (!)

Example (sentences)

∀xx > c

∀x∀y(x > y∨y > x∨x = y)

∃xP (x)

∃x(P (x) ∨ x > d)

∃x(P (x)→ ∀y(y + c > x))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 68 / 120

Example: Formulas

Example (open formulas)

P (x)

f(y) > c+ f(x)

P (y) ∨ x > c

x > y → ¬∀x(x > y)

∀xP (x) ∨ x > c (!)

Example (sentences)

∀xx > c

∀x∀y(x > y∨y > x∨x = y)

∃xP (x)

∃x(P (x) ∨ x > d)

∃x(P (x)→ ∀y(y + c > x))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 68 / 120

Example: Formulas

Example (open formulas)

P (x)

f(y) > c+ f(x)

P (y) ∨ x > c

x > y → ¬∀x(x > y)

∀xP (x) ∨ x > c (!)

Example (sentences)

∀xx > c

∀x∀y(x > y∨y > x∨x = y)

∃xP (x)

∃x(P (x) ∨ x > d)

∃x(P (x)→ ∀y(y + c > x))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 68 / 120

Example: Formulas

Example (open formulas)

P (x)

f(y) > c+ f(x)

P (y) ∨ x > c

x > y → ¬∀x(x > y)

∀xP (x) ∨ x > c (!)

Example (sentences)

∀xx > c

∀x∀y(x > y∨y > x∨x = y)

∃xP (x)

∃x(P (x) ∨ x > d)

∃x(P (x)→ ∀y(y + c > x))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 68 / 120

Example: Formulas

Example (open formulas)

P (x)

f(y) > c+ f(x)

P (y) ∨ x > c

x > y → ¬∀x(x > y)

∀xP (x) ∨ x > c (!)

Example (sentences)

∀xx > c

∀x∀y(x > y∨y > x∨x = y)

∃xP (x)

∃x(P (x) ∨ x > d)

∃x(P (x)→ ∀y(y + c > x))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 68 / 120

Example: Formulas

Example (open formulas)

P (x)

f(y) > c+ f(x)

P (y) ∨ x > c

x > y → ¬∀x(x > y)

∀xP (x) ∨ x > c (!)

Example (sentences)

∀xx > c

∀x∀y(x > y∨y > x∨x = y)

∃xP (x)

∃x(P (x) ∨ x > d)

∃x(P (x)→ ∀y(y + c > x))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 68 / 120

Example: Formulas

Example (open formulas)

P (x)

f(y) > c+ f(x)

P (y) ∨ x > c

x > y → ¬∀x(x > y)

∀xP (x) ∨ x > c (!)

Example (sentences)

∀xx > c

∀x∀y(x > y∨y > x∨x = y)

∃xP (x)

∃x(P (x) ∨ x > d)

∃x(P (x)→ ∀y(y + c > x))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 68 / 120

Example: Formulas

Example (open formulas)

P (x)

f(y) > c+ f(x)

P (y) ∨ x > c

x > y → ¬∀x(x > y)

∀xP (x) ∨ x > c (!)

Example (sentences)

∀xx > c

∀x∀y(x > y∨y > x∨x = y)

∃xP (x)

∃x(P (x) ∨ x > d)

∃x(P (x)→ ∀y(y + c > x))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 68 / 120

Example: Formulas

Example (open formulas)

P (x)

f(y) > c+ f(x)

P (y) ∨ x > c

x > y → ¬∀x(x > y)

∀xP (x) ∨ x > c (!)

Example (sentences)

∀xx > c

∀x∀y(x > y∨y > x∨x = y)

∃xP (x)

∃x(P (x) ∨ x > d)

∃x(P (x)→ ∀y(y + c > x))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 68 / 120

Example: Formulas

Example (open formulas)

P (x)

f(y) > c+ f(x)

P (y) ∨ x > c

x > y → ¬∀x(x > y)

∀xP (x) ∨ x > c (!)

Example (sentences)

∀xx > c

∀x∀y(x > y∨y > x∨x = y)

∃xP (x)

∃x(P (x) ∨ x > d)

∃x(P (x)→ ∀y(y + c > x))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 68 / 120

Example: Formulas

Example (open formulas)

P (x)

f(y) > c+ f(x)

P (y) ∨ x > c

x > y → ¬∀x(x > y)

∀xP (x) ∨ x > c (!)

Example (sentences)

∀xx > c

∀x∀y(x > y∨y > x∨x = y)

∃xP (x)

∃x(P (x) ∨ x > d)

∃x(P (x)→ ∀y(y + c > x))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 68 / 120

Operator precedence in predicate logic

∀ and ∃ are stronger than all boolean operators

∀xR(x, y) ∧ S(x) means (∀xR(x, y)) ∧ S(x)∃xR(x, y)→ S(y) means (∃xR(x, y))→ S(y)

functions and predicates are stronger than quantifiers

∀x∀yx+ y = y + x means ∀x∀y(x+ y = y + x)otherwise, it would not be a formula anymore: (∀x∀yx) + y = y + xin prefix notation, this is obvious: ∀x∀y = (+(x, y),+(y, x))

functions are stronger than predicates

x+ y > c+ d means (x+ y) > (c+ d)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 69 / 120

Operator precedence in predicate logic

∀ and ∃ are stronger than all boolean operators

∀xR(x, y) ∧ S(x) means (∀xR(x, y)) ∧ S(x)

∃xR(x, y)→ S(y) means (∃xR(x, y))→ S(y)

functions and predicates are stronger than quantifiers

∀x∀yx+ y = y + x means ∀x∀y(x+ y = y + x)otherwise, it would not be a formula anymore: (∀x∀yx) + y = y + xin prefix notation, this is obvious: ∀x∀y = (+(x, y),+(y, x))

functions are stronger than predicates

x+ y > c+ d means (x+ y) > (c+ d)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 69 / 120

Operator precedence in predicate logic

∀ and ∃ are stronger than all boolean operators

∀xR(x, y) ∧ S(x) means (∀xR(x, y)) ∧ S(x)∃xR(x, y)→ S(y) means (∃xR(x, y))→ S(y)

functions and predicates are stronger than quantifiers

∀x∀yx+ y = y + x means ∀x∀y(x+ y = y + x)otherwise, it would not be a formula anymore: (∀x∀yx) + y = y + xin prefix notation, this is obvious: ∀x∀y = (+(x, y),+(y, x))

functions are stronger than predicates

x+ y > c+ d means (x+ y) > (c+ d)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 69 / 120

Operator precedence in predicate logic

∀ and ∃ are stronger than all boolean operators

∀xR(x, y) ∧ S(x) means (∀xR(x, y)) ∧ S(x)∃xR(x, y)→ S(y) means (∃xR(x, y))→ S(y)

functions and predicates are stronger than quantifiers

∀x∀yx+ y = y + x means ∀x∀y(x+ y = y + x)otherwise, it would not be a formula anymore: (∀x∀yx) + y = y + xin prefix notation, this is obvious: ∀x∀y = (+(x, y),+(y, x))

functions are stronger than predicates

x+ y > c+ d means (x+ y) > (c+ d)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 69 / 120

Operator precedence in predicate logic

∀ and ∃ are stronger than all boolean operators

∀xR(x, y) ∧ S(x) means (∀xR(x, y)) ∧ S(x)∃xR(x, y)→ S(y) means (∃xR(x, y))→ S(y)

functions and predicates are stronger than quantifiers

∀x∀yx+ y = y + x means ∀x∀y(x+ y = y + x)

otherwise, it would not be a formula anymore: (∀x∀yx) + y = y + xin prefix notation, this is obvious: ∀x∀y = (+(x, y),+(y, x))

functions are stronger than predicates

x+ y > c+ d means (x+ y) > (c+ d)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 69 / 120

Operator precedence in predicate logic

∀ and ∃ are stronger than all boolean operators

∀xR(x, y) ∧ S(x) means (∀xR(x, y)) ∧ S(x)∃xR(x, y)→ S(y) means (∃xR(x, y))→ S(y)

functions and predicates are stronger than quantifiers

∀x∀yx+ y = y + x means ∀x∀y(x+ y = y + x)otherwise, it would not be a formula anymore: (∀x∀yx) + y = y + x

in prefix notation, this is obvious: ∀x∀y = (+(x, y),+(y, x))

functions are stronger than predicates

x+ y > c+ d means (x+ y) > (c+ d)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 69 / 120

Operator precedence in predicate logic

∀ and ∃ are stronger than all boolean operators

∀xR(x, y) ∧ S(x) means (∀xR(x, y)) ∧ S(x)∃xR(x, y)→ S(y) means (∃xR(x, y))→ S(y)

functions and predicates are stronger than quantifiers

∀x∀yx+ y = y + x means ∀x∀y(x+ y = y + x)otherwise, it would not be a formula anymore: (∀x∀yx) + y = y + xin prefix notation, this is obvious: ∀x∀y = (+(x, y),+(y, x))

functions are stronger than predicates

x+ y > c+ d means (x+ y) > (c+ d)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 69 / 120

Operator precedence in predicate logic

∀ and ∃ are stronger than all boolean operators

∀xR(x, y) ∧ S(x) means (∀xR(x, y)) ∧ S(x)∃xR(x, y)→ S(y) means (∃xR(x, y))→ S(y)

functions and predicates are stronger than quantifiers

∀x∀yx+ y = y + x means ∀x∀y(x+ y = y + x)otherwise, it would not be a formula anymore: (∀x∀yx) + y = y + xin prefix notation, this is obvious: ∀x∀y = (+(x, y),+(y, x))

functions are stronger than predicates

x+ y > c+ d means (x+ y) > (c+ d)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 69 / 120

Operator precedence in predicate logic

∀ and ∃ are stronger than all boolean operators

∀xR(x, y) ∧ S(x) means (∀xR(x, y)) ∧ S(x)∃xR(x, y)→ S(y) means (∃xR(x, y))→ S(y)

functions and predicates are stronger than quantifiers

∀x∀yx+ y = y + x means ∀x∀y(x+ y = y + x)otherwise, it would not be a formula anymore: (∀x∀yx) + y = y + xin prefix notation, this is obvious: ∀x∀y = (+(x, y),+(y, x))

functions are stronger than predicates

x+ y > c+ d means (x+ y) > (c+ d)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 69 / 120

Exercise: syntax of predicate logic

Determine if the following are

(ground) terms,

(ground) atoms,

formulas,

sentences,

nonsense.

Determine which appearances of variables are bound and which are free.

a) x+ y

b) x+ y > c

c) P (c, d)

d) x > P (d)

e) ∀x(x+ c > x)

f) ∀x > (+(x, c), x)

g) ∀x, y(x > y)

h) ∃x∃y(x+ y)

i) P (∀x(x = x))

j) x > y ∧ x+ y

k) ∀x(x > c ∨ c > x) ∨ x = c

l) c > f(d)

m) P (P (x))

n) f(f(x))

o) ∀x∀y(P (x) > P (y))

p) ∃xP (x)→ ∀xP (x)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 70 / 120

First-order semantics: interpretation

An interpretation I gives meaning to the symbols of a formal language.

determines the universe or domain

assigns to every n-ary function symbol f an n-ary function fI overthe universe

assigns to every n-ary predicate symbol n-ary relation RI over theuniverse

The interpretation is extended to complex terms in the natural way: for aterm t = f(t1, . . . , tn), tI is obtained by

recursively interpreting the terms t1, . . . , tn

and finally the interpretation fI

tI = fI(tI1 , . . . , tIn)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 71 / 120

First-order semantics: interpretation

An interpretation I gives meaning to the symbols of a formal language.

determines the universe or domain

assigns to every n-ary function symbol f an n-ary function fI overthe universe

assigns to every n-ary predicate symbol n-ary relation RI over theuniverse

The interpretation is extended to complex terms in the natural way: for aterm t = f(t1, . . . , tn), tI is obtained by

recursively interpreting the terms t1, . . . , tn

and finally the interpretation fI

tI = fI(tI1 , . . . , tIn)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 71 / 120

First-order semantics: interpretation

An interpretation I gives meaning to the symbols of a formal language.

determines the universe or domain

assigns to every n-ary function symbol f an n-ary function fI overthe universe

assigns to every n-ary predicate symbol n-ary relation RI over theuniverse

The interpretation is extended to complex terms in the natural way: for aterm t = f(t1, . . . , tn), tI is obtained by

recursively interpreting the terms t1, . . . , tn

and finally the interpretation fI

tI = fI(tI1 , . . . , tIn)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 71 / 120

First-order semantics: interpretation

An interpretation I gives meaning to the symbols of a formal language.

determines the universe or domain

assigns to every n-ary function symbol f an n-ary function fI overthe universe

assigns to every n-ary predicate symbol n-ary relation RI over theuniverse

The interpretation is extended to complex terms in the natural way: for aterm t = f(t1, . . . , tn), tI is obtained by

recursively interpreting the terms t1, . . . , tn

and finally the interpretation fI

tI = fI(tI1 , . . . , tIn)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 71 / 120

First-order semantics: interpretation

An interpretation I gives meaning to the symbols of a formal language.

determines the universe or domain

assigns to every n-ary function symbol f an n-ary function fI overthe universe

assigns to every n-ary predicate symbol n-ary relation RI over theuniverse

The interpretation is extended to complex terms in the natural way: for aterm t = f(t1, . . . , tn), tI is obtained by

recursively interpreting the terms t1, . . . , tn

and finally the interpretation fI

tI = fI(tI1 , . . . , tIn)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 71 / 120

First-order semantics: interpretation

An interpretation I gives meaning to the symbols of a formal language.

determines the universe or domain

assigns to every n-ary function symbol f an n-ary function fI overthe universe

assigns to every n-ary predicate symbol n-ary relation RI over theuniverse

The interpretation is extended to complex terms in the natural way: for aterm t = f(t1, . . . , tn), tI is obtained by

recursively interpreting the terms t1, . . . , tn

and finally the interpretation fI

tI = fI(tI1 , . . . , tIn)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 71 / 120

First-order semantics: interpretation

An interpretation I gives meaning to the symbols of a formal language.

determines the universe or domain

assigns to every n-ary function symbol f an n-ary function fI overthe universe

assigns to every n-ary predicate symbol n-ary relation RI over theuniverse

The interpretation is extended to complex terms in the natural way: for aterm t = f(t1, . . . , tn), tI is obtained by

recursively interpreting the terms t1, . . . , tn

and finally the interpretation fI

tI = fI(tI1 , . . . , tIn)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 71 / 120

Example: interpretation

ϕ = ∀xR(x, f(x))

Example: Interpretation I with people domain

Universe ∆I : P = {Alice,Bob,Clara,Don}Function fI : married-toP = {Alice 7→ Bob, Bob 7→ Alice, Clara 7→Don, Don 7→ Clara}Relation RI : likesP = {(Alice,Bob), (Alice,Clara), (Bob,Alice),(Bob,Don), (Clara,Don), (Don,Alice), (Don,Bob)}I makes ϕ false (because Don does not like Clara)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 72 / 120

Example: interpretation

ϕ = ∀xR(x, f(x))

Example: Interpretation I with people domain

Universe ∆I : P = {Alice,Bob,Clara,Don}

Function fI : married-toP = {Alice 7→ Bob, Bob 7→ Alice, Clara 7→Don, Don 7→ Clara}Relation RI : likesP = {(Alice,Bob), (Alice,Clara), (Bob,Alice),(Bob,Don), (Clara,Don), (Don,Alice), (Don,Bob)}I makes ϕ false (because Don does not like Clara)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 72 / 120

Example: interpretation

ϕ = ∀xR(x, f(x))

Example: Interpretation I with people domain

Universe ∆I : P = {Alice,Bob,Clara,Don}Function fI : married-toP = {Alice 7→ Bob, Bob 7→ Alice, Clara 7→Don, Don 7→ Clara}

Relation RI : likesP = {(Alice,Bob), (Alice,Clara), (Bob,Alice),(Bob,Don), (Clara,Don), (Don,Alice), (Don,Bob)}I makes ϕ false (because Don does not like Clara)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 72 / 120

Example: interpretation

ϕ = ∀xR(x, f(x))

Example: Interpretation I with people domain

Universe ∆I : P = {Alice,Bob,Clara,Don}Function fI : married-toP = {Alice 7→ Bob, Bob 7→ Alice, Clara 7→Don, Don 7→ Clara}Relation RI : likesP = {(Alice,Bob), (Alice,Clara), (Bob,Alice),(Bob,Don), (Clara,Don), (Don,Alice), (Don,Bob)}

I makes ϕ false (because Don does not like Clara)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 72 / 120

Example: interpretation

ϕ = ∀xR(x, f(x))

Example: Interpretation I with people domain

Universe ∆I : P = {Alice,Bob,Clara,Don}Function fI : married-toP = {Alice 7→ Bob, Bob 7→ Alice, Clara 7→Don, Don 7→ Clara}Relation RI : likesP = {(Alice,Bob), (Alice,Clara), (Bob,Alice),(Bob,Don), (Clara,Don), (Don,Alice), (Don,Bob)}I makes ϕ false (because Don does not like Clara)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 72 / 120

Example: interpretation (cont’)

ϕ = ∀xR(x, f(x))

Example: Interpretation J with number domain

Universe ∆J : N = {0, 1, 2, . . .}

Function fJ : sN (successor) = {0 7→ 1, 1 7→ 2, . . .}Relation RJ : <N (less-than) = {(0, 1), (0, 2), . . . , (1, 2), (1, 3), . . .}J makes ϕ true (because every number is less than its successor)

It depends on the interpretation if a sentence is evaluated to true or false

the interpretation of the function and predicate symbolsIf J ′ interprets R as >N, then ϕ is evaluated as false

the universe∀x∃y(y < x) is true in Z, but false in N.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 73 / 120

Example: interpretation (cont’)

ϕ = ∀xR(x, f(x))

Example: Interpretation J with number domain

Universe ∆J : N = {0, 1, 2, . . .}Function fJ : sN (successor) = {0 7→ 1, 1 7→ 2, . . .}

Relation RJ : <N (less-than) = {(0, 1), (0, 2), . . . , (1, 2), (1, 3), . . .}J makes ϕ true (because every number is less than its successor)

It depends on the interpretation if a sentence is evaluated to true or false

the interpretation of the function and predicate symbolsIf J ′ interprets R as >N, then ϕ is evaluated as false

the universe∀x∃y(y < x) is true in Z, but false in N.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 73 / 120

Example: interpretation (cont’)

ϕ = ∀xR(x, f(x))

Example: Interpretation J with number domain

Universe ∆J : N = {0, 1, 2, . . .}Function fJ : sN (successor) = {0 7→ 1, 1 7→ 2, . . .}Relation RJ : <N (less-than) = {(0, 1), (0, 2), . . . , (1, 2), (1, 3), . . .}

J makes ϕ true (because every number is less than its successor)

It depends on the interpretation if a sentence is evaluated to true or false

the interpretation of the function and predicate symbolsIf J ′ interprets R as >N, then ϕ is evaluated as false

the universe∀x∃y(y < x) is true in Z, but false in N.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 73 / 120

Example: interpretation (cont’)

ϕ = ∀xR(x, f(x))

Example: Interpretation J with number domain

Universe ∆J : N = {0, 1, 2, . . .}Function fJ : sN (successor) = {0 7→ 1, 1 7→ 2, . . .}Relation RJ : <N (less-than) = {(0, 1), (0, 2), . . . , (1, 2), (1, 3), . . .}J makes ϕ true (because every number is less than its successor)

It depends on the interpretation if a sentence is evaluated to true or false

the interpretation of the function and predicate symbolsIf J ′ interprets R as >N, then ϕ is evaluated as false

the universe∀x∃y(y < x) is true in Z, but false in N.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 73 / 120

Example: interpretation (cont’)

ϕ = ∀xR(x, f(x))

Example: Interpretation J with number domain

Universe ∆J : N = {0, 1, 2, . . .}Function fJ : sN (successor) = {0 7→ 1, 1 7→ 2, . . .}Relation RJ : <N (less-than) = {(0, 1), (0, 2), . . . , (1, 2), (1, 3), . . .}J makes ϕ true (because every number is less than its successor)

It depends on the interpretation if a sentence is evaluated to true or false

the interpretation of the function and predicate symbolsIf J ′ interprets R as >N, then ϕ is evaluated as false

the universe∀x∃y(y < x) is true in Z, but false in N.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 73 / 120

Example: interpretation (cont’)

ϕ = ∀xR(x, f(x))

Example: Interpretation J with number domain

Universe ∆J : N = {0, 1, 2, . . .}Function fJ : sN (successor) = {0 7→ 1, 1 7→ 2, . . .}Relation RJ : <N (less-than) = {(0, 1), (0, 2), . . . , (1, 2), (1, 3), . . .}J makes ϕ true (because every number is less than its successor)

It depends on the interpretation if a sentence is evaluated to true or false

the interpretation of the function and predicate symbolsIf J ′ interprets R as >N, then ϕ is evaluated as false

the universe∀x∃y(y < x) is true in Z, but false in N.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 73 / 120

Example: interpretation (cont’)

ϕ = ∀xR(x, f(x))

Example: Interpretation J with number domain

Universe ∆J : N = {0, 1, 2, . . .}Function fJ : sN (successor) = {0 7→ 1, 1 7→ 2, . . .}Relation RJ : <N (less-than) = {(0, 1), (0, 2), . . . , (1, 2), (1, 3), . . .}J makes ϕ true (because every number is less than its successor)

It depends on the interpretation if a sentence is evaluated to true or false

the interpretation of the function and predicate symbolsIf J ′ interprets R as >N, then ϕ is evaluated as false

the universe∀x∃y(y < x) is true in Z, but false in N.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 73 / 120

Exercise: Interpretation

Letϕ = ∀x∀y((¬(x = y) ∧R(x, y))→ ∃z((¬(z = x)) ∧ (¬(z = y)) ∧ P (z)))and I be as follows:

∆I is given by the set of all human beings;

RI = quarrel;

P I = rejoice.

What is ϕI? What is the meaning of ϕI?

Let ψ = ∀x∃yf(x, y) = c and J be as follows:

∆I = Z;

fI = +Z, i.e. addition for integers;

cI = 0Z, i.e. zero (in the set of integers).

What is ψI? What is the meaning of ψI?

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 74 / 120

Interpretation of free variables and open formulas

What happens to free variables?

each free variable is mapped to an element of the domain

similar to variable assignment in propositional logic

each propositional variable mapped to an element of Bextended to complex terms in the natural way

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 75 / 120

Interpretation: formal definition

Definition (FOL interpretation)

For a formula ϕ with free variables V , an interpretation I is a triple(∆I , ·I , µ)

∆I is a set,

·I assigns

an n-ary function fI over ∆I to each n-ary function symbol f(including constants),an n-ary relation RI over ∆I to each n-ary predicate R.

µ : V → ∆I assigns an element of ∆I to each free variable.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 76 / 120

Interpretation: formal definition

Definition (FOL interpretation)

For a formula ϕ with free variables V , an interpretation I is a triple(∆I , ·I , µ)

∆I is a set,

·I assigns

an n-ary function fI over ∆I to each n-ary function symbol f(including constants),

an n-ary relation RI over ∆I to each n-ary predicate R.

µ : V → ∆I assigns an element of ∆I to each free variable.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 76 / 120

Interpretation: formal definition

Definition (FOL interpretation)

For a formula ϕ with free variables V , an interpretation I is a triple(∆I , ·I , µ)

∆I is a set,

·I assigns

an n-ary function fI over ∆I to each n-ary function symbol f(including constants),an n-ary relation RI over ∆I to each n-ary predicate R.

µ : V → ∆I assigns an element of ∆I to each free variable.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 76 / 120

First-order semantics: model

Definition (model)

An interpretation I = (∆I , ·I , µ) satisfies a formula ϕ (is a model for ϕ,I |= ϕ) if the following holds:

ϕ = P (t1, . . . , tn) is an atom and ((µ(t1))I , . . . , (µ(tn))I) ∈ P I ,

ϕ is a formula involving logical operators (e.g., ϕ = ¬ϕ1,ϕ = ϕ1 ∧ ϕ2) and evaluates to > according to the truth table,

ϕ = ∀xψ(x), and for every x ∈ ∆I , ψ(x) evaluates to >ϕ = ∃xψ(x), and there is an x ∈ ∆I for which ψ(x) evaluates to >

Definition (logical implication)

A formula ϕ is the logical implication of a set of formulas Φ, Φ |= ϕ, ifevery model of Φ is also a model of ϕ.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 77 / 120

First-order semantics: model

Definition (model)

An interpretation I = (∆I , ·I , µ) satisfies a formula ϕ (is a model for ϕ,I |= ϕ) if the following holds:

ϕ = P (t1, . . . , tn) is an atom and ((µ(t1))I , . . . , (µ(tn))I) ∈ P I ,

ϕ is a formula involving logical operators (e.g., ϕ = ¬ϕ1,ϕ = ϕ1 ∧ ϕ2) and evaluates to > according to the truth table,

ϕ = ∀xψ(x), and for every x ∈ ∆I , ψ(x) evaluates to >ϕ = ∃xψ(x), and there is an x ∈ ∆I for which ψ(x) evaluates to >

Definition (logical implication)

A formula ϕ is the logical implication of a set of formulas Φ, Φ |= ϕ, ifevery model of Φ is also a model of ϕ.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 77 / 120

First-order semantics: model

Definition (model)

An interpretation I = (∆I , ·I , µ) satisfies a formula ϕ (is a model for ϕ,I |= ϕ) if the following holds:

ϕ = P (t1, . . . , tn) is an atom and ((µ(t1))I , . . . , (µ(tn))I) ∈ P I ,

ϕ is a formula involving logical operators (e.g., ϕ = ¬ϕ1,ϕ = ϕ1 ∧ ϕ2) and evaluates to > according to the truth table,

ϕ = ∀xψ(x), and for every x ∈ ∆I , ψ(x) evaluates to >ϕ = ∃xψ(x), and there is an x ∈ ∆I for which ψ(x) evaluates to >

Definition (logical implication)

A formula ϕ is the logical implication of a set of formulas Φ, Φ |= ϕ, ifevery model of Φ is also a model of ϕ.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 77 / 120

First-order semantics: model

Definition (model)

An interpretation I = (∆I , ·I , µ) satisfies a formula ϕ (is a model for ϕ,I |= ϕ) if the following holds:

ϕ = P (t1, . . . , tn) is an atom and ((µ(t1))I , . . . , (µ(tn))I) ∈ P I ,

ϕ is a formula involving logical operators (e.g., ϕ = ¬ϕ1,ϕ = ϕ1 ∧ ϕ2) and evaluates to > according to the truth table,

ϕ = ∀xψ(x), and for every x ∈ ∆I , ψ(x) evaluates to >

ϕ = ∃xψ(x), and there is an x ∈ ∆I for which ψ(x) evaluates to >

Definition (logical implication)

A formula ϕ is the logical implication of a set of formulas Φ, Φ |= ϕ, ifevery model of Φ is also a model of ϕ.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 77 / 120

First-order semantics: model

Definition (model)

An interpretation I = (∆I , ·I , µ) satisfies a formula ϕ (is a model for ϕ,I |= ϕ) if the following holds:

ϕ = P (t1, . . . , tn) is an atom and ((µ(t1))I , . . . , (µ(tn))I) ∈ P I ,

ϕ is a formula involving logical operators (e.g., ϕ = ¬ϕ1,ϕ = ϕ1 ∧ ϕ2) and evaluates to > according to the truth table,

ϕ = ∀xψ(x), and for every x ∈ ∆I , ψ(x) evaluates to >ϕ = ∃xψ(x), and there is an x ∈ ∆I for which ψ(x) evaluates to >

Definition (logical implication)

A formula ϕ is the logical implication of a set of formulas Φ, Φ |= ϕ, ifevery model of Φ is also a model of ϕ.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 77 / 120

First-order semantics: model

Definition (model)

An interpretation I = (∆I , ·I , µ) satisfies a formula ϕ (is a model for ϕ,I |= ϕ) if the following holds:

ϕ = P (t1, . . . , tn) is an atom and ((µ(t1))I , . . . , (µ(tn))I) ∈ P I ,

ϕ is a formula involving logical operators (e.g., ϕ = ¬ϕ1,ϕ = ϕ1 ∧ ϕ2) and evaluates to > according to the truth table,

ϕ = ∀xψ(x), and for every x ∈ ∆I , ψ(x) evaluates to >ϕ = ∃xψ(x), and there is an x ∈ ∆I for which ψ(x) evaluates to >

Definition (logical implication)

A formula ϕ is the logical implication of a set of formulas Φ, Φ |= ϕ, ifevery model of Φ is also a model of ϕ.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 77 / 120

Exercise: interpretations

For each of the following sentences, find one interpretation that makesthem true and one that makes them false.

a) ∀x∀y(R(x, y)→ ∃z(R(x, z) ∧R(z, y)))

b) ¬∃x(f(x) = c)

c) ∀x∀y(f(x) = f(y)→ x = y)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 78 / 120

FOL in algebra

Example (field axioms)

Closure under addition ∀x∀y∃z(x+ y = z)

Associativity of addition ∀x∀y∀z((x+ (y + z)) = ((x+ y) + z))

Commutativity of addition ∀x∀y(x+ y = y + x)

Neutral element for addition ∀x(x+ 0 = x)

Inverse element for addition ∀x∃y(x+ y = 0)

(same for multiplication)

Distributivity of multiplication over addition∀x∀y∀z(x · (y + z) = (x · y) + (x · z))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 79 / 120

FOL in algebra

Example (field axioms)

Closure under addition ∀x∀y∃z(x+ y = z)

Associativity of addition ∀x∀y∀z((x+ (y + z)) = ((x+ y) + z))

Commutativity of addition ∀x∀y(x+ y = y + x)

Neutral element for addition ∀x(x+ 0 = x)

Inverse element for addition ∀x∃y(x+ y = 0)

(same for multiplication)

Distributivity of multiplication over addition∀x∀y∀z(x · (y + z) = (x · y) + (x · z))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 79 / 120

FOL in algebra

Example (field axioms)

Closure under addition ∀x∀y∃z(x+ y = z)

Associativity of addition ∀x∀y∀z((x+ (y + z)) = ((x+ y) + z))

Commutativity of addition ∀x∀y(x+ y = y + x)

Neutral element for addition ∀x(x+ 0 = x)

Inverse element for addition ∀x∃y(x+ y = 0)

(same for multiplication)

Distributivity of multiplication over addition∀x∀y∀z(x · (y + z) = (x · y) + (x · z))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 79 / 120

FOL in algebra

Example (field axioms)

Closure under addition ∀x∀y∃z(x+ y = z)

Associativity of addition ∀x∀y∀z((x+ (y + z)) = ((x+ y) + z))

Commutativity of addition ∀x∀y(x+ y = y + x)

Neutral element for addition ∀x(x+ 0 = x)

Inverse element for addition ∀x∃y(x+ y = 0)

(same for multiplication)

Distributivity of multiplication over addition∀x∀y∀z(x · (y + z) = (x · y) + (x · z))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 79 / 120

FOL in algebra

Example (field axioms)

Closure under addition ∀x∀y∃z(x+ y = z)

Associativity of addition ∀x∀y∀z((x+ (y + z)) = ((x+ y) + z))

Commutativity of addition ∀x∀y(x+ y = y + x)

Neutral element for addition ∀x(x+ 0 = x)

Inverse element for addition ∀x∃y(x+ y = 0)

(same for multiplication)

Distributivity of multiplication over addition∀x∀y∀z(x · (y + z) = (x · y) + (x · z))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 79 / 120

FOL in algebra

Example (field axioms)

Closure under addition ∀x∀y∃z(x+ y = z)

Associativity of addition ∀x∀y∀z((x+ (y + z)) = ((x+ y) + z))

Commutativity of addition ∀x∀y(x+ y = y + x)

Neutral element for addition ∀x(x+ 0 = x)

Inverse element for addition ∀x∃y(x+ y = 0)

(same for multiplication)

Distributivity of multiplication over addition∀x∀y∀z(x · (y + z) = (x · y) + (x · z))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 79 / 120

FOL in algebra

Example (field axioms)

Closure under addition ∀x∀y∃z(x+ y = z)

Associativity of addition ∀x∀y∀z((x+ (y + z)) = ((x+ y) + z))

Commutativity of addition ∀x∀y(x+ y = y + x)

Neutral element for addition ∀x(x+ 0 = x)

Inverse element for addition ∀x∃y(x+ y = 0)

(same for multiplication)

Distributivity of multiplication over addition∀x∀y∀z(x · (y + z) = (x · y) + (x · z))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 79 / 120

Why “first-order”?

first-order quantification of elements (∃xP (x))

second-order quantification of predicates (∃P∀xP (x))

third-order quantification of predicates over predicates (∃R∀P (R(P )))

. . .

first-order logic suffices for rational numbers (; algebra)

second-order is needed for real numbers (; analysis)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 80 / 120

Why “first-order”?

first-order quantification of elements (∃xP (x))

second-order quantification of predicates (∃P∀xP (x))

third-order quantification of predicates over predicates (∃R∀P (R(P )))

. . .

first-order logic suffices for rational numbers (; algebra)

second-order is needed for real numbers (; analysis)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 80 / 120

Why “first-order”?

first-order quantification of elements (∃xP (x))

second-order quantification of predicates (∃P∀xP (x))

third-order quantification of predicates over predicates (∃R∀P (R(P )))

. . .

first-order logic suffices for rational numbers (; algebra)

second-order is needed for real numbers (; analysis)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 80 / 120

Why “first-order”?

first-order quantification of elements (∃xP (x))

second-order quantification of predicates (∃P∀xP (x))

third-order quantification of predicates over predicates (∃R∀P (R(P )))

. . .

first-order logic suffices for rational numbers (; algebra)

second-order is needed for real numbers (; analysis)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 80 / 120

Why “first-order”?

first-order quantification of elements (∃xP (x))

second-order quantification of predicates (∃P∀xP (x))

third-order quantification of predicates over predicates (∃R∀P (R(P )))

. . .

first-order logic suffices for rational numbers (; algebra)

second-order is needed for real numbers (; analysis)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 80 / 120

Why “first-order”?

first-order quantification of elements (∃xP (x))

second-order quantification of predicates (∃P∀xP (x))

third-order quantification of predicates over predicates (∃R∀P (R(P )))

. . .

first-order logic suffices for rational numbers (; algebra)

second-order is needed for real numbers (; analysis)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 80 / 120

Formalisation in second-order logic

Definition (Dedekind completeness)

A set M is Dedekind complete if every non-empty subset S ⊆M with anupper bound has a least upper bound.

S = {x | x · x ≤ 2}. Least upper bound of S:√

2

Example (Dedekind completenes in SOL)

∀S 〈[∃xS(x) ∧ ∃x∀y(S(y)→ y < x)]→∃x[∀y(S(y)→ y ≤ x) ∧ ∀z(z < x→ ∃t(z < t ∧ S(t)))]〉

“For every set S the following holds: if S has at least one member andthere exists an x that is greater than every member y of S, then there alsoexists an x that is greater (or equal) than every member y of S and forevery z that is smaller than x, there a t that is greater than z and in S.”

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 81 / 120

Formalisation in second-order logic

Definition (Dedekind completeness)

A set M is Dedekind complete if every non-empty subset S ⊆M with anupper bound has a least upper bound.

S = {x | x · x ≤ 2}. Least upper bound of S:√

2

Example (Dedekind completenes in SOL)

∀S 〈[∃xS(x) ∧ ∃x∀y(S(y)→ y < x)]→∃x[∀y(S(y)→ y ≤ x) ∧ ∀z(z < x→ ∃t(z < t ∧ S(t)))]〉

“For every set S the following holds: if S has at least one member andthere exists an x that is greater than every member y of S, then there alsoexists an x that is greater (or equal) than every member y of S and forevery z that is smaller than x, there a t that is greater than z and in S.”

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 81 / 120

Formalisation in second-order logic

Definition (Dedekind completeness)

A set M is Dedekind complete if every non-empty subset S ⊆M with anupper bound has a least upper bound.

S = {x | x · x ≤ 2}. Least upper bound of S:√

2

Example (Dedekind completenes in SOL)

∀S 〈[∃xS(x) ∧ ∃x∀y(S(y)→ y < x)]→∃x[∀y(S(y)→ y ≤ x) ∧ ∀z(z < x→ ∃t(z < t ∧ S(t)))]〉

“For every set S the following holds: if S has at least one member andthere exists an x that is greater than every member y of S, then there alsoexists an x that is greater (or equal) than every member y of S and forevery z that is smaller than x, there a t that is greater than z and in S.”

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 81 / 120

Formalisation in second-order logic

Definition (Dedekind completeness)

A set M is Dedekind complete if every non-empty subset S ⊆M with anupper bound has a least upper bound.

S = {x | x · x ≤ 2}. Least upper bound of S:√

2

Example (Dedekind completenes in SOL)

∀S 〈[∃xS(x) ∧ ∃x∀y(S(y)→ y < x)]→∃x[∀y(S(y)→ y ≤ x) ∧ ∀z(z < x→ ∃t(z < t ∧ S(t)))]〉

“For every set S the following holds: if S has at least one member andthere exists an x that is greater than every member y of S, then there alsoexists an x that is greater (or equal) than every member y of S and forevery z that is smaller than x, there a t that is greater than z and in S.”

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 81 / 120

Translating natural language into FOL

FOL is more powerful in expressingnatural language than PL . . .

Chickens revisited

Some chickens cannot fly.∃x(C(x) ∧ ¬F (x))

All chickens are birds.∀x(C(x)→ B(x))

Some birds cannot fly.∃x(B(x) ∧ ¬F (x))

. . . but reasoning requires moreattention than for PL.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 82 / 120

Translating natural language into FOL

FOL is more powerful in expressingnatural language than PL . . .

Chickens revisited

Some chickens cannot fly.∃x(C(x) ∧ ¬F (x))

All chickens are birds.∀x(C(x)→ B(x))

Some birds cannot fly.∃x(B(x) ∧ ¬F (x))

. . . but reasoning requires moreattention than for PL.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 82 / 120

Translating natural language into FOL

FOL is more powerful in expressingnatural language than PL . . .

Chickens revisited

Some chickens cannot fly.∃x(C(x) ∧ ¬F (x))

All chickens are birds.∀x(C(x)→ B(x))

Some birds cannot fly.∃x(B(x) ∧ ¬F (x))

. . . but reasoning requires moreattention than for PL.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 82 / 120

Translating natural language into FOL

FOL is more powerful in expressingnatural language than PL . . .

Chickens revisited

Some chickens cannot fly.∃x(C(x) ∧ ¬F (x))

All chickens are birds.∀x(C(x)→ B(x))

Some birds cannot fly.∃x(B(x) ∧ ¬F (x))

. . . but reasoning requires moreattention than for PL.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 82 / 120

Exercise: translation of natural language into FOL

Using

the unary predicates Student, Professor, and Course, and

the binary predicates likes, supervises, teaches,

translate the following sentences into FOL:

a) Every student likes some professor.

b) Every professor likes every student.

c) Students are only supervised by professors.

d) Every professor teaches at least two courses.

e) Each professor only supervises students that like him.

f) There is a course that is only taught by one professor.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 83 / 120

Outline

1 propositional and first-order logic

1 syntax and semantics of propositional logic2 reasoning

1 resolution2 tableaus

3 syntax and semantics of first-order logic4 reasoning

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 84 / 120

Resolution in first-order logic

How can the resolution principle be transferred from PL to FOL?

Example (naive resolution in FOL)

∀x(H(x)→ ∃yM(x, y)) H(c)

?

Difficulties:

contradictions between quantifiers:∀xϕ(x),∀x¬ϕ(x) vs. ∃xϕ(x),∃x¬ϕ(x)

interaction of variables and constants

generation of CNF in the presence of quantifiers

Approach:

elimination of existential quantification

replacement of variables with terms to make atoms equal

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 85 / 120

Resolution in first-order logic

How can the resolution principle be transferred from PL to FOL?

Example (naive resolution in FOL)

∀x(H(x)→ ∃yM(x, y)) H(c)

?

Difficulties:

contradictions between quantifiers:∀xϕ(x),∀x¬ϕ(x) vs. ∃xϕ(x),∃x¬ϕ(x)

interaction of variables and constants

generation of CNF in the presence of quantifiers

Approach:

elimination of existential quantification

replacement of variables with terms to make atoms equal

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 85 / 120

Resolution in first-order logic

How can the resolution principle be transferred from PL to FOL?

Example (naive resolution in FOL)

∀x(H(x)→ ∃yM(x, y)) H(c)

?

Difficulties:

contradictions between quantifiers:∀xϕ(x),∀x¬ϕ(x) vs. ∃xϕ(x),∃x¬ϕ(x)

interaction of variables and constants

generation of CNF in the presence of quantifiers

Approach:

elimination of existential quantification

replacement of variables with terms to make atoms equal

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 85 / 120

Resolution in first-order logic

How can the resolution principle be transferred from PL to FOL?

Example (naive resolution in FOL)

∀x(H(x)→ ∃yM(x, y)) H(c)

?

Difficulties:

contradictions between quantifiers:∀xϕ(x),∀x¬ϕ(x) vs. ∃xϕ(x),∃x¬ϕ(x)

interaction of variables and constants

generation of CNF in the presence of quantifiers

Approach:

elimination of existential quantification

replacement of variables with terms to make atoms equal

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 85 / 120

Resolution in first-order logic

How can the resolution principle be transferred from PL to FOL?

Example (naive resolution in FOL)

∀x(H(x)→ ∃yM(x, y)) H(c)

?

Difficulties:

contradictions between quantifiers:∀xϕ(x),∀x¬ϕ(x) vs. ∃xϕ(x),∃x¬ϕ(x)

interaction of variables and constants

generation of CNF in the presence of quantifiers

Approach:

elimination of existential quantification

replacement of variables with terms to make atoms equal

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 85 / 120

Resolution in first-order logic

How can the resolution principle be transferred from PL to FOL?

Example (naive resolution in FOL)

∀x(H(x)→ ∃yM(x, y)) H(c)

?

Difficulties:

contradictions between quantifiers:∀xϕ(x),∀x¬ϕ(x) vs. ∃xϕ(x),∃x¬ϕ(x)

interaction of variables and constants

generation of CNF in the presence of quantifiers

Approach:

elimination of existential quantification

replacement of variables with terms to make atoms equal

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 85 / 120

Negation normal form

Similar to propositonal logic: allow negation only for atoms

1 eliminate → and ↔

ϕ→ ψ ; ¬ϕ ∨ ψϕ↔ ψ ; (ϕ ∧ ψ) ∨ (¬ϕ ∧ ¬ψ)

2 apply de Morgan rules and their equivalents for quantifiers

¬(ϕ ∧ ψ) ; ¬ϕ ∨ ¬ψ¬(ϕ ∨ ψ) ; ¬ϕ ∧ ¬ψ¬∀xϕ ; ∃x¬ϕ¬∃xϕ ; ∀x¬ϕ

3 remove double negation

¬¬ϕ ; ϕ

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 86 / 120

Negation normal form

Similar to propositonal logic: allow negation only for atoms

1 eliminate → and ↔ϕ→ ψ ; ¬ϕ ∨ ψ

ϕ↔ ψ ; (ϕ ∧ ψ) ∨ (¬ϕ ∧ ¬ψ)

2 apply de Morgan rules and their equivalents for quantifiers

¬(ϕ ∧ ψ) ; ¬ϕ ∨ ¬ψ¬(ϕ ∨ ψ) ; ¬ϕ ∧ ¬ψ¬∀xϕ ; ∃x¬ϕ¬∃xϕ ; ∀x¬ϕ

3 remove double negation

¬¬ϕ ; ϕ

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 86 / 120

Negation normal form

Similar to propositonal logic: allow negation only for atoms

1 eliminate → and ↔ϕ→ ψ ; ¬ϕ ∨ ψϕ↔ ψ ; (ϕ ∧ ψ) ∨ (¬ϕ ∧ ¬ψ)

2 apply de Morgan rules and their equivalents for quantifiers

¬(ϕ ∧ ψ) ; ¬ϕ ∨ ¬ψ¬(ϕ ∨ ψ) ; ¬ϕ ∧ ¬ψ¬∀xϕ ; ∃x¬ϕ¬∃xϕ ; ∀x¬ϕ

3 remove double negation

¬¬ϕ ; ϕ

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 86 / 120

Negation normal form

Similar to propositonal logic: allow negation only for atoms

1 eliminate → and ↔ϕ→ ψ ; ¬ϕ ∨ ψϕ↔ ψ ; (ϕ ∧ ψ) ∨ (¬ϕ ∧ ¬ψ)

2 apply de Morgan rules and their equivalents for quantifiers

¬(ϕ ∧ ψ) ; ¬ϕ ∨ ¬ψ¬(ϕ ∨ ψ) ; ¬ϕ ∧ ¬ψ¬∀xϕ ; ∃x¬ϕ¬∃xϕ ; ∀x¬ϕ

3 remove double negation

¬¬ϕ ; ϕ

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 86 / 120

Negation normal form

Similar to propositonal logic: allow negation only for atoms

1 eliminate → and ↔ϕ→ ψ ; ¬ϕ ∨ ψϕ↔ ψ ; (ϕ ∧ ψ) ∨ (¬ϕ ∧ ¬ψ)

2 apply de Morgan rules and their equivalents for quantifiers

¬(ϕ ∧ ψ) ; ¬ϕ ∨ ¬ψ

¬(ϕ ∨ ψ) ; ¬ϕ ∧ ¬ψ¬∀xϕ ; ∃x¬ϕ¬∃xϕ ; ∀x¬ϕ

3 remove double negation

¬¬ϕ ; ϕ

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 86 / 120

Negation normal form

Similar to propositonal logic: allow negation only for atoms

1 eliminate → and ↔ϕ→ ψ ; ¬ϕ ∨ ψϕ↔ ψ ; (ϕ ∧ ψ) ∨ (¬ϕ ∧ ¬ψ)

2 apply de Morgan rules and their equivalents for quantifiers

¬(ϕ ∧ ψ) ; ¬ϕ ∨ ¬ψ¬(ϕ ∨ ψ) ; ¬ϕ ∧ ¬ψ

¬∀xϕ ; ∃x¬ϕ¬∃xϕ ; ∀x¬ϕ

3 remove double negation

¬¬ϕ ; ϕ

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 86 / 120

Negation normal form

Similar to propositonal logic: allow negation only for atoms

1 eliminate → and ↔ϕ→ ψ ; ¬ϕ ∨ ψϕ↔ ψ ; (ϕ ∧ ψ) ∨ (¬ϕ ∧ ¬ψ)

2 apply de Morgan rules and their equivalents for quantifiers

¬(ϕ ∧ ψ) ; ¬ϕ ∨ ¬ψ¬(ϕ ∨ ψ) ; ¬ϕ ∧ ¬ψ¬∀xϕ ; ∃x¬ϕ

¬∃xϕ ; ∀x¬ϕ3 remove double negation

¬¬ϕ ; ϕ

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 86 / 120

Negation normal form

Similar to propositonal logic: allow negation only for atoms

1 eliminate → and ↔ϕ→ ψ ; ¬ϕ ∨ ψϕ↔ ψ ; (ϕ ∧ ψ) ∨ (¬ϕ ∧ ¬ψ)

2 apply de Morgan rules and their equivalents for quantifiers

¬(ϕ ∧ ψ) ; ¬ϕ ∨ ¬ψ¬(ϕ ∨ ψ) ; ¬ϕ ∧ ¬ψ¬∀xϕ ; ∃x¬ϕ¬∃xϕ ; ∀x¬ϕ

3 remove double negation

¬¬ϕ ; ϕ

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 86 / 120

Negation normal form

Similar to propositonal logic: allow negation only for atoms

1 eliminate → and ↔ϕ→ ψ ; ¬ϕ ∨ ψϕ↔ ψ ; (ϕ ∧ ψ) ∨ (¬ϕ ∧ ¬ψ)

2 apply de Morgan rules and their equivalents for quantifiers

¬(ϕ ∧ ψ) ; ¬ϕ ∨ ¬ψ¬(ϕ ∨ ψ) ; ¬ϕ ∧ ¬ψ¬∀xϕ ; ∃x¬ϕ¬∃xϕ ; ∀x¬ϕ

3 remove double negation

¬¬ϕ ; ϕ

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 86 / 120

Negation normal form

Similar to propositonal logic: allow negation only for atoms

1 eliminate → and ↔ϕ→ ψ ; ¬ϕ ∨ ψϕ↔ ψ ; (ϕ ∧ ψ) ∨ (¬ϕ ∧ ¬ψ)

2 apply de Morgan rules and their equivalents for quantifiers

¬(ϕ ∧ ψ) ; ¬ϕ ∨ ¬ψ¬(ϕ ∨ ψ) ; ¬ϕ ∧ ¬ψ¬∀xϕ ; ∃x¬ϕ¬∃xϕ ; ∀x¬ϕ

3 remove double negation

¬¬ϕ ; ϕ

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 86 / 120

Prenex normal form: separation of quantifiers

Definition (prenex normal form)

A formula is in PNF if it has the shape Q1x1 . . . Qnxnϕ(x1, . . . , xn) with

prefix Q1x1 . . . Qnxn mit Qi ∈ {∀, ∃}matrix quantifier-free formula ϕ with variables x1 . . . xn.

Algorithm for transformation into PNF:

1 rename variables so they are distinct

2 move quantifiers to the front, maintaining original order

Example (PNF)

people have mother and father ∀x(H(x)→ ∃yM(x, y) ∧ ∃yF (x, y))transform into NNF ∀x(¬H(x) ∨ ∃yM(x, y) ∧ ∃yF (x, y))replace second y with z ∀x(¬H(x) ∨ ∃yM(x, y) ∧ ∃zF (x, z))move quantifiers to the front ∀x∃y∃z(¬H(x) ∨M(x, y) ∧ F (x, z))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 87 / 120

Prenex normal form: separation of quantifiers

Definition (prenex normal form)

A formula is in PNF if it has the shape Q1x1 . . . Qnxnϕ(x1, . . . , xn) with

prefix Q1x1 . . . Qnxn mit Qi ∈ {∀, ∃}matrix quantifier-free formula ϕ with variables x1 . . . xn.

Algorithm for transformation into PNF:

1 rename variables so they are distinct

2 move quantifiers to the front, maintaining original order

Example (PNF)

people have mother and father ∀x(H(x)→ ∃yM(x, y) ∧ ∃yF (x, y))transform into NNF ∀x(¬H(x) ∨ ∃yM(x, y) ∧ ∃yF (x, y))replace second y with z ∀x(¬H(x) ∨ ∃yM(x, y) ∧ ∃zF (x, z))move quantifiers to the front ∀x∃y∃z(¬H(x) ∨M(x, y) ∧ F (x, z))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 87 / 120

Prenex normal form: separation of quantifiers

Definition (prenex normal form)

A formula is in PNF if it has the shape Q1x1 . . . Qnxnϕ(x1, . . . , xn) with

prefix Q1x1 . . . Qnxn mit Qi ∈ {∀, ∃}matrix quantifier-free formula ϕ with variables x1 . . . xn.

Algorithm for transformation into PNF:

1 rename variables so they are distinct

2 move quantifiers to the front, maintaining original order

Example (PNF)

people have mother and father ∀x(H(x)→ ∃yM(x, y) ∧ ∃yF (x, y))transform into NNF ∀x(¬H(x) ∨ ∃yM(x, y) ∧ ∃yF (x, y))replace second y with z ∀x(¬H(x) ∨ ∃yM(x, y) ∧ ∃zF (x, z))move quantifiers to the front ∀x∃y∃z(¬H(x) ∨M(x, y) ∧ F (x, z))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 87 / 120

Prenex normal form: separation of quantifiers

Definition (prenex normal form)

A formula is in PNF if it has the shape Q1x1 . . . Qnxnϕ(x1, . . . , xn) with

prefix Q1x1 . . . Qnxn mit Qi ∈ {∀, ∃}matrix quantifier-free formula ϕ with variables x1 . . . xn.

Algorithm for transformation into PNF:

1 rename variables so they are distinct

2 move quantifiers to the front, maintaining original order

Example (PNF)

people have mother and father ∀x(H(x)→ ∃yM(x, y) ∧ ∃yF (x, y))

transform into NNF ∀x(¬H(x) ∨ ∃yM(x, y) ∧ ∃yF (x, y))replace second y with z ∀x(¬H(x) ∨ ∃yM(x, y) ∧ ∃zF (x, z))move quantifiers to the front ∀x∃y∃z(¬H(x) ∨M(x, y) ∧ F (x, z))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 87 / 120

Prenex normal form: separation of quantifiers

Definition (prenex normal form)

A formula is in PNF if it has the shape Q1x1 . . . Qnxnϕ(x1, . . . , xn) with

prefix Q1x1 . . . Qnxn mit Qi ∈ {∀, ∃}matrix quantifier-free formula ϕ with variables x1 . . . xn.

Algorithm for transformation into PNF:

1 rename variables so they are distinct

2 move quantifiers to the front, maintaining original order

Example (PNF)

people have mother and father ∀x(H(x)→ ∃yM(x, y) ∧ ∃yF (x, y))transform into NNF ∀x(¬H(x) ∨ ∃yM(x, y) ∧ ∃yF (x, y))

replace second y with z ∀x(¬H(x) ∨ ∃yM(x, y) ∧ ∃zF (x, z))move quantifiers to the front ∀x∃y∃z(¬H(x) ∨M(x, y) ∧ F (x, z))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 87 / 120

Prenex normal form: separation of quantifiers

Definition (prenex normal form)

A formula is in PNF if it has the shape Q1x1 . . . Qnxnϕ(x1, . . . , xn) with

prefix Q1x1 . . . Qnxn mit Qi ∈ {∀, ∃}matrix quantifier-free formula ϕ with variables x1 . . . xn.

Algorithm for transformation into PNF:

1 rename variables so they are distinct

2 move quantifiers to the front, maintaining original order

Example (PNF)

people have mother and father ∀x(H(x)→ ∃yM(x, y) ∧ ∃yF (x, y))transform into NNF ∀x(¬H(x) ∨ ∃yM(x, y) ∧ ∃yF (x, y))replace second y with z ∀x(¬H(x) ∨ ∃yM(x, y) ∧ ∃zF (x, z))

move quantifiers to the front ∀x∃y∃z(¬H(x) ∨M(x, y) ∧ F (x, z))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 87 / 120

Prenex normal form: separation of quantifiers

Definition (prenex normal form)

A formula is in PNF if it has the shape Q1x1 . . . Qnxnϕ(x1, . . . , xn) with

prefix Q1x1 . . . Qnxn mit Qi ∈ {∀, ∃}matrix quantifier-free formula ϕ with variables x1 . . . xn.

Algorithm for transformation into PNF:

1 rename variables so they are distinct

2 move quantifiers to the front, maintaining original order

Example (PNF)

people have mother and father ∀x(H(x)→ ∃yM(x, y) ∧ ∃yF (x, y))transform into NNF ∀x(¬H(x) ∨ ∃yM(x, y) ∧ ∃yF (x, y))replace second y with z ∀x(¬H(x) ∨ ∃yM(x, y) ∧ ∃zF (x, z))move quantifiers to the front ∀x∃y∃z(¬H(x) ∨M(x, y) ∧ F (x, z))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 87 / 120

Skolem normal form: elimination of existential quantifier

Idea: replacement of existentially quantified variables with terms

Example (Skolemisation)

”There is a president.“∃xP (x) ; P (c) c is new!

”Every human being has a mother.“∀x∃y(H(x)→M(x, y)) ; ∀x(H(x)→M(x, c))

f is new!

Definition (Skolemisation)

For a formula ϕ = ∀x1 . . . ∀xn∃yϕ(x1, . . . , xn, y) in PNF, the Skolemnormal form is obtained by replacing each existentially quantified variable,which is in the scope of n universal quantifiers, by a new n-ary functionsymbol f : ∀x1 . . . ∀xnϕ(x1, . . . , xn, f(x1, . . . , xn))

A formula ϕ and its SNF are not equivalent, but equisatisfiable.All variables are universally quantified ; ∀x not needed anymore.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 88 / 120

Skolem normal form: elimination of existential quantifier

Idea: replacement of existentially quantified variables with terms

Example (Skolemisation)

”There is a president.“∃xP (x)

; P (c) c is new!

”Every human being has a mother.“∀x∃y(H(x)→M(x, y)) ; ∀x(H(x)→M(x, c))

f is new!

Definition (Skolemisation)

For a formula ϕ = ∀x1 . . . ∀xn∃yϕ(x1, . . . , xn, y) in PNF, the Skolemnormal form is obtained by replacing each existentially quantified variable,which is in the scope of n universal quantifiers, by a new n-ary functionsymbol f : ∀x1 . . . ∀xnϕ(x1, . . . , xn, f(x1, . . . , xn))

A formula ϕ and its SNF are not equivalent, but equisatisfiable.All variables are universally quantified ; ∀x not needed anymore.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 88 / 120

Skolem normal form: elimination of existential quantifier

Idea: replacement of existentially quantified variables with terms

Example (Skolemisation)

”There is a president.“∃xP (x) ; P (c) c is new!

”Every human being has a mother.“∀x∃y(H(x)→M(x, y)) ; ∀x(H(x)→M(x, c))

f is new!

Definition (Skolemisation)

For a formula ϕ = ∀x1 . . . ∀xn∃yϕ(x1, . . . , xn, y) in PNF, the Skolemnormal form is obtained by replacing each existentially quantified variable,which is in the scope of n universal quantifiers, by a new n-ary functionsymbol f : ∀x1 . . . ∀xnϕ(x1, . . . , xn, f(x1, . . . , xn))

A formula ϕ and its SNF are not equivalent, but equisatisfiable.All variables are universally quantified ; ∀x not needed anymore.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 88 / 120

Skolem normal form: elimination of existential quantifier

Idea: replacement of existentially quantified variables with terms

Example (Skolemisation)

”There is a president.“∃xP (x) ; P (c) c is new!

”Every human being has a mother.“∀x∃y(H(x)→M(x, y))

; ∀x(H(x)→M(x, c))

f is new!

Definition (Skolemisation)

For a formula ϕ = ∀x1 . . . ∀xn∃yϕ(x1, . . . , xn, y) in PNF, the Skolemnormal form is obtained by replacing each existentially quantified variable,which is in the scope of n universal quantifiers, by a new n-ary functionsymbol f : ∀x1 . . . ∀xnϕ(x1, . . . , xn, f(x1, . . . , xn))

A formula ϕ and its SNF are not equivalent, but equisatisfiable.All variables are universally quantified ; ∀x not needed anymore.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 88 / 120

Skolem normal form: elimination of existential quantifier

Idea: replacement of existentially quantified variables with terms

Example (Skolemisation)

”There is a president.“∃xP (x) ; P (c) c is new!

”Every human being has a mother.“∀x∃y(H(x)→M(x, y)) ; ∀x(H(x)→M(x, c))

f is new!

Definition (Skolemisation)

For a formula ϕ = ∀x1 . . . ∀xn∃yϕ(x1, . . . , xn, y) in PNF, the Skolemnormal form is obtained by replacing each existentially quantified variable,which is in the scope of n universal quantifiers, by a new n-ary functionsymbol f : ∀x1 . . . ∀xnϕ(x1, . . . , xn, f(x1, . . . , xn))

A formula ϕ and its SNF are not equivalent, but equisatisfiable.All variables are universally quantified ; ∀x not needed anymore.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 88 / 120

Skolem normal form: elimination of existential quantifier

Idea: replacement of existentially quantified variables with terms

Example (Skolemisation)

”There is a president.“∃xP (x) ; P (c) c is new!

”Every human being has a mother.“∀x∃y(H(x)→M(x, y)) ; ∀x(H(x)→M(x, f(x)))

f is new!

Definition (Skolemisation)

For a formula ϕ = ∀x1 . . . ∀xn∃yϕ(x1, . . . , xn, y) in PNF, the Skolemnormal form is obtained by replacing each existentially quantified variable,which is in the scope of n universal quantifiers, by a new n-ary functionsymbol f : ∀x1 . . . ∀xnϕ(x1, . . . , xn, f(x1, . . . , xn))

A formula ϕ and its SNF are not equivalent, but equisatisfiable.All variables are universally quantified ; ∀x not needed anymore.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 88 / 120

Skolem normal form: elimination of existential quantifier

Idea: replacement of existentially quantified variables with terms

Example (Skolemisation)

”There is a president.“∃xP (x) ; P (c) c is new!

”Every human being has a mother.“∀x∃y(H(x)→M(x, y)) ; ∀x(H(x)→M(x, f(x))) f is new!

Definition (Skolemisation)

For a formula ϕ = ∀x1 . . . ∀xn∃yϕ(x1, . . . , xn, y) in PNF, the Skolemnormal form is obtained by replacing each existentially quantified variable,which is in the scope of n universal quantifiers, by a new n-ary functionsymbol f : ∀x1 . . . ∀xnϕ(x1, . . . , xn, f(x1, . . . , xn))

A formula ϕ and its SNF are not equivalent, but equisatisfiable.All variables are universally quantified ; ∀x not needed anymore.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 88 / 120

Skolem normal form: elimination of existential quantifier

Idea: replacement of existentially quantified variables with terms

Example (Skolemisation)

”There is a president.“∃xP (x) ; P (c) c is new!

”Every human being has a mother.“∀x∃y(H(x)→M(x, y)) ; ∀x(H(x)→M(x, f(x))) f is new!

Definition (Skolemisation)

For a formula ϕ = ∀x1 . . . ∀xn∃yϕ(x1, . . . , xn, y) in PNF, the Skolemnormal form is obtained by replacing each existentially quantified variable,which is in the scope of n universal quantifiers, by a new n-ary functionsymbol f : ∀x1 . . . ∀xnϕ(x1, . . . , xn, f(x1, . . . , xn))

A formula ϕ and its SNF are not equivalent, but equisatisfiable.All variables are universally quantified ; ∀x not needed anymore.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 88 / 120

Skolem normal form: elimination of existential quantifier

Idea: replacement of existentially quantified variables with terms

Example (Skolemisation)

”There is a president.“∃xP (x) ; P (c) c is new!

”Every human being has a mother.“∀x∃y(H(x)→M(x, y)) ; ∀x(H(x)→M(x, f(x))) f is new!

Definition (Skolemisation)

For a formula ϕ = ∀x1 . . . ∀xn∃yϕ(x1, . . . , xn, y) in PNF, the Skolemnormal form is obtained by replacing each existentially quantified variable,which is in the scope of n universal quantifiers, by a new n-ary functionsymbol f : ∀x1 . . . ∀xnϕ(x1, . . . , xn, f(x1, . . . , xn))

A formula ϕ and its SNF are not equivalent, but equisatisfiable.

All variables are universally quantified ; ∀x not needed anymore.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 88 / 120

Skolem normal form: elimination of existential quantifier

Idea: replacement of existentially quantified variables with terms

Example (Skolemisation)

”There is a president.“∃xP (x) ; P (c) c is new!

”Every human being has a mother.“∀x∃y(H(x)→M(x, y)) ; ∀x(H(x)→M(x, f(x))) f is new!

Definition (Skolemisation)

For a formula ϕ = ∀x1 . . . ∀xn∃yϕ(x1, . . . , xn, y) in PNF, the Skolemnormal form is obtained by replacing each existentially quantified variable,which is in the scope of n universal quantifiers, by a new n-ary functionsymbol f : ∀x1 . . . ∀xnϕ(x1, . . . , xn, f(x1, . . . , xn))

A formula ϕ and its SNF are not equivalent, but equisatisfiable.All variables are universally quantified ; ∀x not needed anymore.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 88 / 120

Exercise: Skolem normal form

Transform the following formulas into SNF:

a) ∀x(∃yR(x, y) ∧ ∃y¬R(x, y)) ∧ ∀xR(x, x) ∧ ∃y∃z¬R(y, z)

b) ∃x∀y(R(x, y)∨R(y, x))∧¬∀y¬(R(y, y)∧¬R(y, f(y)))∨¬(∀xR(x, x)→∃xR(x, x))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 89 / 120

SNF: Optimisation

Computing PNF first and Skolemizing afterwards has drawbacks

Example (unnecessarily complex Skolem function)

∀xP (x)∧∃yQ(y) ; ∀x∃y(P (x)∧Q(y)) ; ∀x(P (x)∧Q(f(x)))

Since y does not appear in the scope of ∀x, y could be replaced by aconstant rather than a unary function.

Standard procedure:

1 negation normal form

eliminate → and ↔apply de Morgan ruleseliminate double negation

2 rename variables

3 prenex normal form

4 Skolem normal form

More complex procedure leading tosimpler Skolem functions:

1 NNF

2 miniscoping

3 rename variables

4 Skolemise

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 90 / 120

SNF: Optimisation

Computing PNF first and Skolemizing afterwards has drawbacks

Example (unnecessarily complex Skolem function)

∀xP (x)∧∃yQ(y) ; ∀x∃y(P (x)∧Q(y)) ; ∀x(P (x)∧Q(f(x)))Since y does not appear in the scope of ∀x, y could be replaced by aconstant rather than a unary function.

Standard procedure:

1 negation normal form

eliminate → and ↔apply de Morgan ruleseliminate double negation

2 rename variables

3 prenex normal form

4 Skolem normal form

More complex procedure leading tosimpler Skolem functions:

1 NNF

2 miniscoping

3 rename variables

4 Skolemise

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 90 / 120

SNF: Optimisation

Computing PNF first and Skolemizing afterwards has drawbacks

Example (unnecessarily complex Skolem function)

∀xP (x)∧∃yQ(y) ; ∀x∃y(P (x)∧Q(y)) ; ∀x(P (x)∧Q(f(x)))Since y does not appear in the scope of ∀x, y could be replaced by aconstant rather than a unary function.

Standard procedure:

1 negation normal form

eliminate → and ↔apply de Morgan ruleseliminate double negation

2 rename variables

3 prenex normal form

4 Skolem normal form

More complex procedure leading tosimpler Skolem functions:

1 NNF

2 miniscoping

3 rename variables

4 Skolemise

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 90 / 120

SNF: Optimisation

Computing PNF first and Skolemizing afterwards has drawbacks

Example (unnecessarily complex Skolem function)

∀xP (x)∧∃yQ(y) ; ∀x∃y(P (x)∧Q(y)) ; ∀x(P (x)∧Q(f(x)))Since y does not appear in the scope of ∀x, y could be replaced by aconstant rather than a unary function.

Standard procedure:

1 negation normal form

eliminate → and ↔apply de Morgan ruleseliminate double negation

2 rename variables

3 prenex normal form

4 Skolem normal form

More complex procedure leading tosimpler Skolem functions:

1 NNF

2 miniscoping

3 rename variables

4 Skolemise

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 90 / 120

SNF: Optimisation

Computing PNF first and Skolemizing afterwards has drawbacks

Example (unnecessarily complex Skolem function)

∀xP (x)∧∃yQ(y) ; ∀x∃y(P (x)∧Q(y)) ; ∀x(P (x)∧Q(f(x)))Since y does not appear in the scope of ∀x, y could be replaced by aconstant rather than a unary function.

Standard procedure:

1 negation normal form

eliminate → and ↔apply de Morgan ruleseliminate double negation

2 rename variables

3 prenex normal form

4 Skolem normal form

More complex procedure leading tosimpler Skolem functions:

1 NNF

2 miniscoping

3 rename variables

4 Skolemise

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 90 / 120

SNF: Optimisation

Computing PNF first and Skolemizing afterwards has drawbacks

Example (unnecessarily complex Skolem function)

∀xP (x)∧∃yQ(y) ; ∀x∃y(P (x)∧Q(y)) ; ∀x(P (x)∧Q(f(x)))Since y does not appear in the scope of ∀x, y could be replaced by aconstant rather than a unary function.

Standard procedure:

1 negation normal form

eliminate → and ↔apply de Morgan ruleseliminate double negation

2 rename variables

3 prenex normal form

4 Skolem normal form

More complex procedure leading tosimpler Skolem functions:

1 NNF

2 miniscoping

3 rename variables

4 Skolemise

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 90 / 120

SNF: Optimisation

Computing PNF first and Skolemizing afterwards has drawbacks

Example (unnecessarily complex Skolem function)

∀xP (x)∧∃yQ(y) ; ∀x∃y(P (x)∧Q(y)) ; ∀x(P (x)∧Q(f(x)))Since y does not appear in the scope of ∀x, y could be replaced by aconstant rather than a unary function.

Standard procedure:

1 negation normal form

eliminate → and ↔apply de Morgan ruleseliminate double negation

2 rename variables

3 prenex normal form

4 Skolem normal form

More complex procedure leading tosimpler Skolem functions:

1 NNF

2 miniscoping

3 rename variables

4 Skolemise

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 90 / 120

Miniscoping

Goal: minimise the scope of quantifiers while maintaining equivalence

Definition (miniscoping)

Assumption: x occurs freely in ϕ and ψ, but not in χ

Qx(ϕ ∧ χ) ; Qxϕ ∧ χ for Q ∈ {∀,∃}Qx(ϕ ∨ χ) ; Qxϕ ∨ χ for Q ∈ {∀,∃}∀x(ϕ ∧ ψ) ; ∀xϕ ∧ ∀xψ∃x(ϕ ∨ ψ) ; ∃xϕ ∨ ∃xψ

Example (miniscoping)

Miniscoping:∀x∃y(P (x) ∧Q(y)) ; ∀x(P (x) ∧ ∃yQ(y)) ; ∀xP (x) ∧ ∃yQ(y)Skolemisation:∀xP (x) ∧ ∃yQ(y) ; ∀xP (x) ∧Q(c)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 91 / 120

Miniscoping

Goal: minimise the scope of quantifiers while maintaining equivalence

Definition (miniscoping)

Assumption: x occurs freely in ϕ and ψ, but not in χ

Qx(ϕ ∧ χ) ; Qxϕ ∧ χ for Q ∈ {∀,∃}

Qx(ϕ ∨ χ) ; Qxϕ ∨ χ for Q ∈ {∀,∃}∀x(ϕ ∧ ψ) ; ∀xϕ ∧ ∀xψ∃x(ϕ ∨ ψ) ; ∃xϕ ∨ ∃xψ

Example (miniscoping)

Miniscoping:∀x∃y(P (x) ∧Q(y)) ; ∀x(P (x) ∧ ∃yQ(y)) ; ∀xP (x) ∧ ∃yQ(y)Skolemisation:∀xP (x) ∧ ∃yQ(y) ; ∀xP (x) ∧Q(c)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 91 / 120

Miniscoping

Goal: minimise the scope of quantifiers while maintaining equivalence

Definition (miniscoping)

Assumption: x occurs freely in ϕ and ψ, but not in χ

Qx(ϕ ∧ χ) ; Qxϕ ∧ χ for Q ∈ {∀,∃}Qx(ϕ ∨ χ) ; Qxϕ ∨ χ for Q ∈ {∀,∃}

∀x(ϕ ∧ ψ) ; ∀xϕ ∧ ∀xψ∃x(ϕ ∨ ψ) ; ∃xϕ ∨ ∃xψ

Example (miniscoping)

Miniscoping:∀x∃y(P (x) ∧Q(y)) ; ∀x(P (x) ∧ ∃yQ(y)) ; ∀xP (x) ∧ ∃yQ(y)Skolemisation:∀xP (x) ∧ ∃yQ(y) ; ∀xP (x) ∧Q(c)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 91 / 120

Miniscoping

Goal: minimise the scope of quantifiers while maintaining equivalence

Definition (miniscoping)

Assumption: x occurs freely in ϕ and ψ, but not in χ

Qx(ϕ ∧ χ) ; Qxϕ ∧ χ for Q ∈ {∀,∃}Qx(ϕ ∨ χ) ; Qxϕ ∨ χ for Q ∈ {∀,∃}∀x(ϕ ∧ ψ) ; ∀xϕ ∧ ∀xψ

∃x(ϕ ∨ ψ) ; ∃xϕ ∨ ∃xψ

Example (miniscoping)

Miniscoping:∀x∃y(P (x) ∧Q(y)) ; ∀x(P (x) ∧ ∃yQ(y)) ; ∀xP (x) ∧ ∃yQ(y)Skolemisation:∀xP (x) ∧ ∃yQ(y) ; ∀xP (x) ∧Q(c)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 91 / 120

Miniscoping

Goal: minimise the scope of quantifiers while maintaining equivalence

Definition (miniscoping)

Assumption: x occurs freely in ϕ and ψ, but not in χ

Qx(ϕ ∧ χ) ; Qxϕ ∧ χ for Q ∈ {∀,∃}Qx(ϕ ∨ χ) ; Qxϕ ∨ χ for Q ∈ {∀,∃}∀x(ϕ ∧ ψ) ; ∀xϕ ∧ ∀xψ∃x(ϕ ∨ ψ) ; ∃xϕ ∨ ∃xψ

Example (miniscoping)

Miniscoping:∀x∃y(P (x) ∧Q(y)) ; ∀x(P (x) ∧ ∃yQ(y)) ; ∀xP (x) ∧ ∃yQ(y)Skolemisation:∀xP (x) ∧ ∃yQ(y) ; ∀xP (x) ∧Q(c)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 91 / 120

Miniscoping

Goal: minimise the scope of quantifiers while maintaining equivalence

Definition (miniscoping)

Assumption: x occurs freely in ϕ and ψ, but not in χ

Qx(ϕ ∧ χ) ; Qxϕ ∧ χ for Q ∈ {∀,∃}Qx(ϕ ∨ χ) ; Qxϕ ∨ χ for Q ∈ {∀,∃}∀x(ϕ ∧ ψ) ; ∀xϕ ∧ ∀xψ∃x(ϕ ∨ ψ) ; ∃xϕ ∨ ∃xψ

Example (miniscoping)

Miniscoping:∀x∃y(P (x) ∧Q(y)) ; ∀x(P (x) ∧ ∃yQ(y)) ; ∀xP (x) ∧ ∃yQ(y)Skolemisation:∀xP (x) ∧ ∃yQ(y) ; ∀xP (x) ∧Q(c)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 91 / 120

Miniscoping

Goal: minimise the scope of quantifiers while maintaining equivalence

Definition (miniscoping)

Assumption: x occurs freely in ϕ and ψ, but not in χ

Qx(ϕ ∧ χ) ; Qxϕ ∧ χ for Q ∈ {∀,∃}Qx(ϕ ∨ χ) ; Qxϕ ∨ χ for Q ∈ {∀,∃}∀x(ϕ ∧ ψ) ; ∀xϕ ∧ ∀xψ∃x(ϕ ∨ ψ) ; ∃xϕ ∨ ∃xψ

Example (miniscoping)

Miniscoping:∀x∃y(P (x) ∧Q(y)) ; ∀x(P (x) ∧ ∃yQ(y)) ; ∀xP (x) ∧ ∃yQ(y)

Skolemisation:∀xP (x) ∧ ∃yQ(y) ; ∀xP (x) ∧Q(c)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 91 / 120

Miniscoping

Goal: minimise the scope of quantifiers while maintaining equivalence

Definition (miniscoping)

Assumption: x occurs freely in ϕ and ψ, but not in χ

Qx(ϕ ∧ χ) ; Qxϕ ∧ χ for Q ∈ {∀,∃}Qx(ϕ ∨ χ) ; Qxϕ ∨ χ for Q ∈ {∀,∃}∀x(ϕ ∧ ψ) ; ∀xϕ ∧ ∀xψ∃x(ϕ ∨ ψ) ; ∃xϕ ∨ ∃xψ

Example (miniscoping)

Miniscoping:∀x∃y(P (x) ∧Q(y)) ; ∀x(P (x) ∧ ∃yQ(y)) ; ∀xP (x) ∧ ∃yQ(y)Skolemisation:∀xP (x) ∧ ∃yQ(y) ; ∀xP (x) ∧Q(c)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 91 / 120

Preprocessing for FOL resolution: overview

Standard:

1 negation normal form

2 rename variables

3 prenex normal form

4 Skolem normal form

5 drop ∀6 conjunctive normal form

as for propositional logic

Alternative:

1 negation normal form

2 miniscoping

3 rename variables

4 Skolemize

5 drop ∀6 conjunctive normal form

as for propositional logic

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 92 / 120

Preprocessing for FOL resolution: overview

Standard:

1 negation normal form

2 rename variables

3 prenex normal form

4 Skolem normal form

5 drop ∀6 conjunctive normal form

as for propositional logic

Alternative:

1 negation normal form

2 miniscoping

3 rename variables

4 Skolemize

5 drop ∀6 conjunctive normal form

as for propositional logic

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 92 / 120

Preprocessing for FOL resolution: overview

Standard:

1 negation normal form

2 rename variables

3 prenex normal form

4 Skolem normal form

5 drop ∀6 conjunctive normal form

as for propositional logic

Alternative:

1 negation normal form

2 miniscoping

3 rename variables

4 Skolemize

5 drop ∀6 conjunctive normal form

as for propositional logic

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 92 / 120

Preprocessing for FOL resolution: overview

Standard:

1 negation normal form

2 rename variables

3 prenex normal form

4 Skolem normal form

5 drop ∀6 conjunctive normal form

as for propositional logic

Alternative:

1 negation normal form

2 miniscoping

3 rename variables

4 Skolemize

5 drop ∀6 conjunctive normal form

as for propositional logic

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 92 / 120

Preprocessing for FOL resolution: overview

Standard:

1 negation normal form

2 rename variables

3 prenex normal form

4 Skolem normal form

5 drop ∀

6 conjunctive normal form

as for propositional logic

Alternative:

1 negation normal form

2 miniscoping

3 rename variables

4 Skolemize

5 drop ∀6 conjunctive normal form

as for propositional logic

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 92 / 120

Preprocessing for FOL resolution: overview

Standard:

1 negation normal form

2 rename variables

3 prenex normal form

4 Skolem normal form

5 drop ∀6 conjunctive normal form

as for propositional logic

Alternative:

1 negation normal form

2 miniscoping

3 rename variables

4 Skolemize

5 drop ∀6 conjunctive normal form

as for propositional logic

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 92 / 120

Preprocessing for FOL resolution: overview

Standard:

1 negation normal form

2 rename variables

3 prenex normal form

4 Skolem normal form

5 drop ∀6 conjunctive normal form

as for propositional logic

Alternative:

1 negation normal form

2 miniscoping

3 rename variables

4 Skolemize

5 drop ∀6 conjunctive normal form

as for propositional logic

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 92 / 120

Preprocessing for FOL resolution: overview

Standard:

1 negation normal form

2 rename variables

3 prenex normal form

4 Skolem normal form

5 drop ∀6 conjunctive normal form

as for propositional logic

Alternative:

1 negation normal form

2 miniscoping

3 rename variables

4 Skolemize

5 drop ∀6 conjunctive normal form

as for propositional logic

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 92 / 120

Preprocessing for FOL resolution: overview

Standard:

1 negation normal form

2 rename variables

3 prenex normal form

4 Skolem normal form

5 drop ∀6 conjunctive normal form

as for propositional logic

Alternative:

1 negation normal form

2 miniscoping

3 rename variables

4 Skolemize

5 drop ∀6 conjunctive normal form

as for propositional logic

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 92 / 120

Preprocessing for FOL resolution: overview

Standard:

1 negation normal form

2 rename variables

3 prenex normal form

4 Skolem normal form

5 drop ∀6 conjunctive normal form

as for propositional logic

Alternative:

1 negation normal form

2 miniscoping

3 rename variables

4 Skolemize

5 drop ∀6 conjunctive normal form

as for propositional logic

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 92 / 120

Preprocessing for FOL resolution: overview

Standard:

1 negation normal form

2 rename variables

3 prenex normal form

4 Skolem normal form

5 drop ∀6 conjunctive normal form

as for propositional logic

Alternative:

1 negation normal form

2 miniscoping

3 rename variables

4 Skolemize

5 drop ∀6 conjunctive normal form

as for propositional logic

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 92 / 120

Preprocessing for FOL resolution: overview

Standard:

1 negation normal form

2 rename variables

3 prenex normal form

4 Skolem normal form

5 drop ∀6 conjunctive normal form

as for propositional logic

Alternative:

1 negation normal form

2 miniscoping

3 rename variables

4 Skolemize

5 drop ∀6 conjunctive normal form

as for propositional logic

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 92 / 120

Preprocessing for FOL resolution: overview

Standard:

1 negation normal form

2 rename variables

3 prenex normal form

4 Skolem normal form

5 drop ∀6 conjunctive normal form

as for propositional logic

Alternative:

1 negation normal form

2 miniscoping

3 rename variables

4 Skolemize

5 drop ∀

6 conjunctive normal form

as for propositional logic

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 92 / 120

Preprocessing for FOL resolution: overview

Standard:

1 negation normal form

2 rename variables

3 prenex normal form

4 Skolem normal form

5 drop ∀6 conjunctive normal form

as for propositional logic

Alternative:

1 negation normal form

2 miniscoping

3 rename variables

4 Skolemize

5 drop ∀6 conjunctive normal form

as for propositional logic

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 92 / 120

Preprocessing for FOL resolution: overview

Standard:

1 negation normal form

2 rename variables

3 prenex normal form

4 Skolem normal form

5 drop ∀6 conjunctive normal form

as for propositional logic

Alternative:

1 negation normal form

2 miniscoping

3 rename variables

4 Skolemize

5 drop ∀6 conjunctive normal form

as for propositional logic

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 92 / 120

Resolution and variables

Example (FOL resolution)

formula ∃xH(x) ∧ ∀x(H(x)→ ∃yM(x, y))

NNF ∃xH(x) ∧ ∀x(¬H(x) ∨ ∃yM(x, y)) → eliminated

SNF ∀x(H(c) ∧ (¬H(x) ∨M(x, f(x)))) ∃ eliminated

CNF H(c) ∧ (¬H(x) ∨M(x, f(x))) FOL atoms instead of PL variables

H(c) ¬H(x),M(x, f(x))

?

find variable assignment that makes atoms syntactically equal

replace variables in entire clause

create resolvent

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 93 / 120

Resolution and variables

Example (FOL resolution)

formula ∃xH(x) ∧ ∀x(H(x)→ ∃yM(x, y))

NNF ∃xH(x) ∧ ∀x(¬H(x) ∨ ∃yM(x, y)) → eliminated

SNF ∀x(H(c) ∧ (¬H(x) ∨M(x, f(x)))) ∃ eliminated

CNF H(c) ∧ (¬H(x) ∨M(x, f(x))) FOL atoms instead of PL variables

H(c) ¬H(x),M(x, f(x))

?

find variable assignment that makes atoms syntactically equal

replace variables in entire clause

create resolvent

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 93 / 120

Resolution and variables

Example (FOL resolution)

formula ∃xH(x) ∧ ∀x(H(x)→ ∃yM(x, y))

NNF ∃xH(x) ∧ ∀x(¬H(x) ∨ ∃yM(x, y)) → eliminated

SNF ∀x(H(c) ∧ (¬H(x) ∨M(x, f(x)))) ∃ eliminated

CNF H(c) ∧ (¬H(x) ∨M(x, f(x))) FOL atoms instead of PL variables

H(c) ¬H(x),M(x, f(x))

?

find variable assignment that makes atoms syntactically equal

replace variables in entire clause

create resolvent

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 93 / 120

Resolution and variables

Example (FOL resolution)

formula ∃xH(x) ∧ ∀x(H(x)→ ∃yM(x, y))

NNF ∃xH(x) ∧ ∀x(¬H(x) ∨ ∃yM(x, y)) → eliminated

SNF ∀x(H(c) ∧ (¬H(x) ∨M(x, f(x)))) ∃ eliminated

CNF H(c) ∧ (¬H(x) ∨M(x, f(x))) FOL atoms instead of PL variables

H(c) ¬H(x),M(x, f(x))

?

find variable assignment that makes atoms syntactically equal

replace variables in entire clause

create resolvent

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 93 / 120

Resolution and variables

Example (FOL resolution)

formula ∃xH(x) ∧ ∀x(H(x)→ ∃yM(x, y))

NNF ∃xH(x) ∧ ∀x(¬H(x) ∨ ∃yM(x, y)) → eliminated

SNF ∀x(H(c) ∧ (¬H(x) ∨M(x, f(x)))) ∃ eliminated

CNF H(c) ∧ (¬H(x) ∨M(x, f(x))) FOL atoms instead of PL variables

H(c) ¬H(x),M(x, f(x))

?

find variable assignment that makes atoms syntactically equal

replace variables in entire clause

create resolvent

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 93 / 120

Resolution and variables

Example (FOL resolution)

formula ∃xH(x) ∧ ∀x(H(x)→ ∃yM(x, y))

NNF ∃xH(x) ∧ ∀x(¬H(x) ∨ ∃yM(x, y)) → eliminated

SNF ∀x(H(c) ∧ (¬H(x) ∨M(x, f(x)))) ∃ eliminated

CNF H(c) ∧ (¬H(x) ∨M(x, f(x))) FOL atoms instead of PL variables

H(c) ¬H(x),M(x, f(x))

?

find variable assignment that makes atoms syntactically equal

replace variables in entire clause

create resolvent

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 93 / 120

Resolution and variables

Example (FOL resolution)

formula ∃xH(x) ∧ ∀x(H(x)→ ∃yM(x, y))

NNF ∃xH(x) ∧ ∀x(¬H(x) ∨ ∃yM(x, y)) → eliminated

SNF ∀x(H(c) ∧ (¬H(x) ∨M(x, f(x)))) ∃ eliminated

CNF H(c) ∧ (¬H(x) ∨M(x, f(x))) FOL atoms instead of PL variables

H(c) ¬H(x),M(x, f(x))

M(c, f(c)) [x/c]

find variable assignment that makes atoms syntactically equal

replace variables in entire clause

create resolvent

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 93 / 120

Resolution and variables

Example (FOL resolution)

formula ∃xH(x) ∧ ∀x(H(x)→ ∃yM(x, y))

NNF ∃xH(x) ∧ ∀x(¬H(x) ∨ ∃yM(x, y)) → eliminated

SNF ∀x(H(c) ∧ (¬H(x) ∨M(x, f(x)))) ∃ eliminated

CNF H(c) ∧ (¬H(x) ∨M(x, f(x))) FOL atoms instead of PL variables

H(c) ¬H(x),M(x, f(x))

M(c, f(c)) [x/c]

find variable assignment that makes atoms syntactically equal

replace variables in entire clause

create resolvent

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 93 / 120

Resolution and variables

Example (FOL resolution)

formula ∃xH(x) ∧ ∀x(H(x)→ ∃yM(x, y))

NNF ∃xH(x) ∧ ∀x(¬H(x) ∨ ∃yM(x, y)) → eliminated

SNF ∀x(H(c) ∧ (¬H(x) ∨M(x, f(x)))) ∃ eliminated

CNF H(c) ∧ (¬H(x) ∨M(x, f(x))) FOL atoms instead of PL variables

H(c) ¬H(x),M(x, f(x))

M(c, f(c)) [x/c]

find variable assignment that makes atoms syntactically equal

replace variables in entire clause

create resolventJan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 93 / 120

Substitutions

Definition (substitution)

A substition is a mapping from variables to terms.

Example (substitution)

The substitutionσ = ([x/f(y)], [y/m(c, d)])

maps x to f(y) and y to m(c, d).Sequence is important:

([x/y], [y/z]) is different from ([y/z], [x/y])

σ(g(x)) = g(f(m(c, d)))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 94 / 120

Substitutions

Definition (substitution)

A substition is a mapping from variables to terms.

Example (substitution)

The substitutionσ = ([x/f(y)], [y/m(c, d)])

maps x to f(y) and y to m(c, d).Sequence is important:

([x/y], [y/z]) is different from ([y/z], [x/y])

σ(g(x)) = g(f(m(c, d)))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 94 / 120

Unifiers

Definition (unifier)

A unifier is a substitution mapping two formulas to the same formula.

Example (unifier of R(a, y) and R(x, f(a)))

ϕ = R(a, y) ψ = R(x, f(a)) σ = ([x/a], [y/f(a)])σ(ϕ) = R(a, f(a)) = σ(ψ)

Resolution of C1 und C2 is possible if two atoms ϕ,ψ and a substitution σexist such that

ϕ ∈ C1 and ¬ψ ∈ C2

σ is unifier of ϕ and ψ.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 95 / 120

Unifiers

Definition (unifier)

A unifier is a substitution mapping two formulas to the same formula.

Example (unifier of R(a, y) and R(x, f(a)))

ϕ = R(a, y) ψ = R(x, f(a)) σ = ([x/a], [y/f(a)])

σ(ϕ) = R(a, f(a)) = σ(ψ)

Resolution of C1 und C2 is possible if two atoms ϕ,ψ and a substitution σexist such that

ϕ ∈ C1 and ¬ψ ∈ C2

σ is unifier of ϕ and ψ.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 95 / 120

Unifiers

Definition (unifier)

A unifier is a substitution mapping two formulas to the same formula.

Example (unifier of R(a, y) and R(x, f(a)))

ϕ = R(a, y) ψ = R(x, f(a)) σ = ([x/a], [y/f(a)])σ(ϕ) = R(a, f(a)) = σ(ψ)

Resolution of C1 und C2 is possible if two atoms ϕ,ψ and a substitution σexist such that

ϕ ∈ C1 and ¬ψ ∈ C2

σ is unifier of ϕ and ψ.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 95 / 120

Unifiers

Definition (unifier)

A unifier is a substitution mapping two formulas to the same formula.

Example (unifier of R(a, y) and R(x, f(a)))

ϕ = R(a, y) ψ = R(x, f(a)) σ = ([x/a], [y/f(a)])σ(ϕ) = R(a, f(a)) = σ(ψ)

Resolution of C1 und C2 is possible if two atoms ϕ,ψ and a substitution σexist such that

ϕ ∈ C1 and ¬ψ ∈ C2

σ is unifier of ϕ and ψ.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 95 / 120

Unification: variable renaming and occur check

Example (one variable appears in several clauses)

problem no unifier for P (x, c) and P (d, x)

solution rename variables so they are disjointP (x, c), P (d, y), σ = ([x/d], [y/c])

Example (mapping from x to f(x))

problem unification of P (x) and P (f(x)) results in σ = [x/f(x)]

solution occur check: x cannot be mapped to a term containing x

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 96 / 120

Unification: variable renaming and occur check

Example (one variable appears in several clauses)

problem no unifier for P (x, c) and P (d, x)

solution rename variables so they are disjointP (x, c), P (d, y), σ = ([x/d], [y/c])

Example (mapping from x to f(x))

problem unification of P (x) and P (f(x)) results in σ = [x/f(x)]

solution occur check: x cannot be mapped to a term containing x

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 96 / 120

Unification: variable renaming and occur check

Example (one variable appears in several clauses)

problem no unifier for P (x, c) and P (d, x)

solution rename variables so they are disjointP (x, c), P (d, y), σ = ([x/d], [y/c])

Example (mapping from x to f(x))

problem unification of P (x) and P (f(x)) results in σ = [x/f(x)]

solution occur check: x cannot be mapped to a term containing x

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 96 / 120

Unification: variable renaming and occur check

Example (one variable appears in several clauses)

problem no unifier for P (x, c) and P (d, x)

solution rename variables so they are disjointP (x, c), P (d, y), σ = ([x/d], [y/c])

Example (mapping from x to f(x))

problem unification of P (x) and P (f(x)) results in σ = [x/f(x)]

solution occur check: x cannot be mapped to a term containing x

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 96 / 120

Exercise: unification

Let

w, x, y, z be variables,

c, d be constant symbols,

f be a unary and g be a binary function symbol,

N and P be unary, R be a binary, and S be a ternary relation symbol.

Try to find unifiers for the following pairs of atoms.

a) P (x) and P (f(g(y, z)))

b) P (x) and N(f(x))

c) R(x, f(x)) and R(f(y), z)

d) R(x, f(x)) and R(f(y), y)

e) R(x, f(x)) and R(f(c), d)

f) S(x, f(g(x, y)), g(x, f(d)) and S(g(c, d), f(z), g(g(c, y), w))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 97 / 120

Most general unifiers

Example: several possible unifiers

P (x), R(x) ¬P (y) ¬R(c)

R(x) R(d)

2

[y/x]

[x/c]

[x/d][y/d]

problem some unifiers prevent resolution

solution most general unifier (MGU): only substitute as much asneeded

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 98 / 120

Most general unifiers

Example: several possible unifiers

P (x), R(x) ¬P (y) ¬R(c)

R(x)

R(d)

2

[y/x]

[x/c]

[x/d][y/d]

problem some unifiers prevent resolution

solution most general unifier (MGU): only substitute as much asneeded

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 98 / 120

Most general unifiers

Example: several possible unifiers

P (x), R(x) ¬P (y) ¬R(c)

R(x)

R(d)

2

[y/x]

[x/c]

[x/d][y/d]

problem some unifiers prevent resolution

solution most general unifier (MGU): only substitute as much asneeded

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 98 / 120

Most general unifiers

Example: several possible unifiers

P (x), R(x) ¬P (y) ¬R(c)

R(x)

R(d)

2

[y/x]

[x/c]

[x/d][y/d]

problem some unifiers prevent resolution

solution most general unifier (MGU): only substitute as much asneeded

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 98 / 120

Most general unifiers

Example: several possible unifiers

P (x), R(x) ¬P (y) ¬R(c)

R(x)

R(d)

2

[y/x]

[x/c]

[x/d][y/d]

problem some unifiers prevent resolution

solution most general unifier (MGU): only substitute as much asneeded

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 98 / 120

Most general unifiers

Example: several possible unifiers

P (x), R(x) ¬P (y) ¬R(c)

R(x)

R(d)

2

[y/x]

[x/c]

[x/d][y/d]

problem some unifiers prevent resolution

solution most general unifier (MGU): only substitute as much asneeded

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 98 / 120

Unification algorithm

input: terms s, toutput: mgu(s, t), if s and t are unifiable

”not unifiable“, otherwise

1: σ := ()2: while σ(s) 6= σ(t) do3: let i be the first position where σ(s) and σ(t) differ4: if σ(s)|i oder σ(t)|i is a predicate symbol then5: output

”not unifiable“

6: else if neither σ(s)|i nor σ(t)|i is a variable then7: output

”not unifiable“

8: else9: let x be the variable, y the other term

10: if x is proper subterm of y then11: output

”not unifiable“

12: else13: σ := σ · ([x/y])14: output σ

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 99 / 120

Unification algorithm

input: terms s, toutput: mgu(s, t), if s and t are unifiable

”not unifiable“, otherwise

1: σ := ()

2: while σ(s) 6= σ(t) do3: let i be the first position where σ(s) and σ(t) differ4: if σ(s)|i oder σ(t)|i is a predicate symbol then5: output

”not unifiable“

6: else if neither σ(s)|i nor σ(t)|i is a variable then7: output

”not unifiable“

8: else9: let x be the variable, y the other term

10: if x is proper subterm of y then11: output

”not unifiable“

12: else13: σ := σ · ([x/y])14: output σ

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 99 / 120

Unification algorithm

input: terms s, toutput: mgu(s, t), if s and t are unifiable

”not unifiable“, otherwise

1: σ := ()2: while σ(s) 6= σ(t) do3: let i be the first position where σ(s) and σ(t) differ

4: if σ(s)|i oder σ(t)|i is a predicate symbol then5: output

”not unifiable“

6: else if neither σ(s)|i nor σ(t)|i is a variable then7: output

”not unifiable“

8: else9: let x be the variable, y the other term

10: if x is proper subterm of y then11: output

”not unifiable“

12: else13: σ := σ · ([x/y])14: output σ

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 99 / 120

Unification algorithm

input: terms s, toutput: mgu(s, t), if s and t are unifiable

”not unifiable“, otherwise

1: σ := ()2: while σ(s) 6= σ(t) do3: let i be the first position where σ(s) and σ(t) differ4: if σ(s)|i oder σ(t)|i is a predicate symbol then5: output

”not unifiable“

6: else if neither σ(s)|i nor σ(t)|i is a variable then7: output

”not unifiable“

8: else9: let x be the variable, y the other term

10: if x is proper subterm of y then11: output

”not unifiable“

12: else13: σ := σ · ([x/y])14: output σ

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 99 / 120

Unification algorithm

input: terms s, toutput: mgu(s, t), if s and t are unifiable

”not unifiable“, otherwise

1: σ := ()2: while σ(s) 6= σ(t) do3: let i be the first position where σ(s) and σ(t) differ4: if σ(s)|i oder σ(t)|i is a predicate symbol then5: output

”not unifiable“

6: else if neither σ(s)|i nor σ(t)|i is a variable then7: output

”not unifiable“

8: else9: let x be the variable, y the other term

10: if x is proper subterm of y then11: output

”not unifiable“

12: else13: σ := σ · ([x/y])14: output σ

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 99 / 120

Unification algorithm

input: terms s, toutput: mgu(s, t), if s and t are unifiable

”not unifiable“, otherwise

1: σ := ()2: while σ(s) 6= σ(t) do3: let i be the first position where σ(s) and σ(t) differ4: if σ(s)|i oder σ(t)|i is a predicate symbol then5: output

”not unifiable“

6: else if neither σ(s)|i nor σ(t)|i is a variable then7: output

”not unifiable“

8: else9: let x be the variable, y the other term

10: if x is proper subterm of y then11: output

”not unifiable“

12: else13: σ := σ · ([x/y])14: output σ

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 99 / 120

Unification algorithm

input: terms s, toutput: mgu(s, t), if s and t are unifiable

”not unifiable“, otherwise

1: σ := ()2: while σ(s) 6= σ(t) do3: let i be the first position where σ(s) and σ(t) differ4: if σ(s)|i oder σ(t)|i is a predicate symbol then5: output

”not unifiable“

6: else if neither σ(s)|i nor σ(t)|i is a variable then7: output

”not unifiable“

8: else9: let x be the variable, y the other term

10: if x is proper subterm of y then11: output

”not unifiable“

12: else13: σ := σ · ([x/y])14: output σ

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 99 / 120

Unification algorithm

input: terms s, toutput: mgu(s, t), if s and t are unifiable

”not unifiable“, otherwise

1: σ := ()2: while σ(s) 6= σ(t) do3: let i be the first position where σ(s) and σ(t) differ4: if σ(s)|i oder σ(t)|i is a predicate symbol then5: output

”not unifiable“

6: else if neither σ(s)|i nor σ(t)|i is a variable then7: output

”not unifiable“

8: else9: let x be the variable, y the other term

10: if x is proper subterm of y then11: output

”not unifiable“

12: else13: σ := σ · ([x/y])

14: output σ

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 99 / 120

Unification algorithm

input: terms s, toutput: mgu(s, t), if s and t are unifiable

”not unifiable“, otherwise

1: σ := ()2: while σ(s) 6= σ(t) do3: let i be the first position where σ(s) and σ(t) differ4: if σ(s)|i oder σ(t)|i is a predicate symbol then5: output

”not unifiable“

6: else if neither σ(s)|i nor σ(t)|i is a variable then7: output

”not unifiable“

8: else9: let x be the variable, y the other term

10: if x is proper subterm of y then11: output

”not unifiable“

12: else13: σ := σ · ([x/y])14: output σ

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 99 / 120

Unification: example

ϕ = R(x, z, g(x, f(y)))ψ = R(f(c), x, g(y, f(g(x, y))))

x / f(c) occur checku / z MGUw / f(c)y / g(z, f(c))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 100 / 120

Unification: example

ϕ = R(x, z, g(x, f(y)))ψ = R(f(c), x, g(y, f(g(x, y))))

x / f(c) occur checku / z MGUw / f(c)y / g(z, f(c))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 100 / 120

Unification: example

ϕ = R(x, z, g(x, f(y)))ψ = R(f(c), u, g(y, f(g(u, y))))

x / f(c) occur checku / z MGUw / f(c)y / g(z, f(c))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 100 / 120

Unification: example

ϕ = R(x, z, g(x, f(y)))ψ = R(f(c), u, g(w, f(g(u,w))))

x / f(c) occur checku / z MGUw / f(c)y / g(z, f(c))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 100 / 120

Unification: example

ϕ = R(x, z, g(x, f(y)))ψ = R(f(c), u, g(w, f(g(u,w))))

x / f(c) occur checku / z MGUw / f(c)y / g(z, f(c))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 100 / 120

Unification: example

ϕ = R(x, z, g(x, f(y)))ψ = R(f(c), u, g(w, f(g(u,w))))

x / f(c) occur check

u / z MGUw / f(c)y / g(z, f(c))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 100 / 120

Unification: example

ϕ = R(x, z, g(x, f(y)))ψ = R(f(c), u, g(w, f(g(u,w))))

x / f(c) occur check

u / z MGUw / f(c)y / g(z, f(c))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 100 / 120

Unification: example

ϕ = R(f(c), z, g(f(c), f(y)))ψ = R(f(c), u, g(w, f(g(u,w))))

x / f(c) occur check

u / z MGUw / f(c)y / g(z, f(c))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 100 / 120

Unification: example

ϕ = R(f(c), z, g(f(c), f(y)))ψ = R(f(c), u, g(w, f(g(u,w))))

x / f(c) occur checku / z MGU

w / f(c)y / g(z, f(c))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 100 / 120

Unification: example

ϕ = R(f(c), z, g(f(c), f(y)))ψ = R(f(c), z, g(w, f(g(z, w))))

x / f(c) occur checku / z MGU

w / f(c)y / g(z, f(c))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 100 / 120

Unification: example

ϕ = R(f(c), z, g(f(c), f(y)))ψ = R(f(c), z, g(w, f(g(z, w))))

x / f(c) occur checku / z MGU

w / f(c)y / g(z, f(c))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 100 / 120

Unification: example

ϕ = R(f(c), z, g(f(c), f(y)))ψ = R(f(c), z, g(w, f(g(z, w))))

x / f(c) occur checku / z MGUw / f(c)

y / g(z, f(c))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 100 / 120

Unification: example

ϕ = R(f(c), z, g(f(c), f(y)))ψ = R(f(c), z, g(f(c), f(g(z, f(c)))))

x / f(c) occur checku / z MGUw / f(c)

y / g(z, f(c))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 100 / 120

Unification: example

ϕ = R(f(c), z, g(f(c), f(y)))ψ = R(f(c), z, g(f(c), f(g(z, f(c)))))

x / f(c) occur checku / z MGUw / f(c)

y / g(z, f(c))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 100 / 120

Unification: example

ϕ = R(f(c), z, g(f(c), f(y)))ψ = R(f(c), z, g(f(c), f(g(z, f(c)))))

x / f(c) occur checku / z MGUw / f(c)y / g(z, f(c))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 100 / 120

Unification: example

ϕ = R(f(c), z, g(f(c), f(g(z, f(c)))))ψ = R(f(c), z, g(f(c), f(g(z, f(c)))))

x / f(c) occur checku / z MGUw / f(c)y / g(z, f(c))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 100 / 120

Exercise: unification algorithm

Let

v, w, x, y, z be variables,

c, d be constants,

f be a unary, g be a binary, and h be a ternary function symbol,

S and T be ternary relation symbols.

Use the unification algorithm to find most general unifiers for the followingpairs of terms:

a) S(x, f(y), g(z, d)) and S(c, f(x), g(f(z), z))

b) T (x, f(x), h(f(y), z, d)) and T (c, f(y), h(z, f(v), w))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 101 / 120

Example: Halloween

1 Tim buys a pumpkin.

∃x(Buys(tim, x) ∧ Pumpkin(x))

2 Whoever buys a pumpkin eats it or carves a Jack-O-Lantern.

∀x∀y((Buys(x, y) ∧ Pumpkin(y))→ (Eats(x, y) ∨ Carves(x, y)))

3 Children don’t eat pumpkins.

∀x(Child(x)→ (∀y(Pumpkin(y)→ ¬Eats(x, y))))

4 Conjecture: if Tim is a child, then he carves a Jack-O-Lantern.

Child(tim)→ ∃xCarves(tim, x)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 102 / 120

Example: Halloween

1 Tim buys a pumpkin.

∃x(Buys(tim, x) ∧ Pumpkin(x))

2 Whoever buys a pumpkin eats it or carves a Jack-O-Lantern.

∀x∀y((Buys(x, y) ∧ Pumpkin(y))→ (Eats(x, y) ∨ Carves(x, y)))

3 Children don’t eat pumpkins.

∀x(Child(x)→ (∀y(Pumpkin(y)→ ¬Eats(x, y))))

4 Conjecture: if Tim is a child, then he carves a Jack-O-Lantern.

Child(tim)→ ∃xCarves(tim, x)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 102 / 120

Example: Halloween

1 Tim buys a pumpkin.

∃x(Buys(tim, x) ∧ Pumpkin(x))

2 Whoever buys a pumpkin eats it or carves a Jack-O-Lantern.

∀x∀y((Buys(x, y) ∧ Pumpkin(y))→ (Eats(x, y) ∨ Carves(x, y)))

3 Children don’t eat pumpkins.

∀x(Child(x)→ (∀y(Pumpkin(y)→ ¬Eats(x, y))))

4 Conjecture: if Tim is a child, then he carves a Jack-O-Lantern.

Child(tim)→ ∃xCarves(tim, x)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 102 / 120

Example: Halloween

1 Tim buys a pumpkin.

∃x(Buys(tim, x) ∧ Pumpkin(x))

2 Whoever buys a pumpkin eats it or carves a Jack-O-Lantern.

∀x∀y((Buys(x, y) ∧ Pumpkin(y))→ (Eats(x, y) ∨ Carves(x, y)))

3 Children don’t eat pumpkins.

∀x(Child(x)→ (∀y(Pumpkin(y)→ ¬Eats(x, y))))

4 Conjecture: if Tim is a child, then he carves a Jack-O-Lantern.

Child(tim)→ ∃xCarves(tim, x)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 102 / 120

Example: Halloween

1 Tim buys a pumpkin.

∃x(Buys(tim, x) ∧ Pumpkin(x))

2 Whoever buys a pumpkin eats it or carves a Jack-O-Lantern.

∀x∀y((Buys(x, y) ∧ Pumpkin(y))→ (Eats(x, y) ∨ Carves(x, y)))

3 Children don’t eat pumpkins.

∀x(Child(x)→ (∀y(Pumpkin(y)→ ¬Eats(x, y))))

4 Conjecture: if Tim is a child, then he carves a Jack-O-Lantern.

Child(tim)→ ∃xCarves(tim, x)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 102 / 120

Example: Halloween

1 Tim buys a pumpkin.

∃x(Buys(tim, x) ∧ Pumpkin(x))

2 Whoever buys a pumpkin eats it or carves a Jack-O-Lantern.

∀x∀y((Buys(x, y) ∧ Pumpkin(y))→ (Eats(x, y) ∨ Carves(x, y)))

3 Children don’t eat pumpkins.

∀x(Child(x)→ (∀y(Pumpkin(y)→ ¬Eats(x, y))))

4 Conjecture: if Tim is a child, then he carves a Jack-O-Lantern.

Child(tim)→ ∃xCarves(tim, x)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 102 / 120

Example: Halloween

1 Tim buys a pumpkin.

∃x(Buys(tim, x) ∧ Pumpkin(x))

2 Whoever buys a pumpkin eats it or carves a Jack-O-Lantern.

∀x∀y((Buys(x, y) ∧ Pumpkin(y))→ (Eats(x, y) ∨ Carves(x, y)))

3 Children don’t eat pumpkins.

∀x(Child(x)→ (∀y(Pumpkin(y)→ ¬Eats(x, y))))

4 Conjecture: if Tim is a child, then he carves a Jack-O-Lantern.

Child(tim)→ ∃xCarves(tim, x)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 102 / 120

Example: Halloween

1 Tim buys a pumpkin.

∃x(Buys(tim, x) ∧ Pumpkin(x))

2 Whoever buys a pumpkin eats it or carves a Jack-O-Lantern.

∀x∀y((Buys(x, y) ∧ Pumpkin(y))→ (Eats(x, y) ∨ Carves(x, y)))

3 Children don’t eat pumpkins.

∀x(Child(x)→ (∀y(Pumpkin(y)→ ¬Eats(x, y))))

4 Conjecture: if Tim is a child, then he carves a Jack-O-Lantern.

Child(tim)→ ∃xCarves(tim, x)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 102 / 120

Step 1: preprocessing

1 negation

2 renaming of variables

3 replacement of ϕ→ ψ by ¬ϕ ∨ ψ4 De Morgan rules

5 double negation

6 prenex normal form . . .

¬¬

((∃x(Buys(tim, x) ∧ Pumpkin(x))) ∧(∀x∀y((Buys(x, y) ∧ Pumpkin(y))→ (Eats(x, y) ∨ Carves(x, y)))) ∧(∀x(Child(x)→ (∀y(Pumpkin(y)→ ¬Eats(x, y)))))

)

→(Child(tim)→ ∃xCarves(tim, x)))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 103 / 120

Step 1: preprocessing

1 negation

2 renaming of variables

3 replacement of ϕ→ ψ by ¬ϕ ∨ ψ4 De Morgan rules

5 double negation

6 prenex normal form . . .

¬¬

((∃x(Buys(tim, x) ∧ Pumpkin(x))) ∧(∀x∀y((Buys(x, y) ∧ Pumpkin(y))→ (Eats(x, y) ∨ Carves(x, y)))) ∧(∀x(Child(x)→ (∀y(Pumpkin(y)→ ¬Eats(x, y)))))

)

→(Child(tim)→ ∃xCarves(tim, x)))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 103 / 120

Step 1: preprocessing

1 negation

2 renaming of variables

3 replacement of ϕ→ ψ by ¬ϕ ∨ ψ4 De Morgan rules

5 double negation

6 prenex normal form . . .

¬

¬

((∃x(Buys(tim, x) ∧ Pumpkin(x))) ∧(∀x∀y((Buys(x, y) ∧ Pumpkin(y))→ (Eats(x, y) ∨ Carves(x, y)))) ∧(∀x(Child(x)→ (∀y(Pumpkin(y)→ ¬Eats(x, y)))))

)

→(Child(tim)→ ∃xCarves(tim, x)))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 103 / 120

Step 1: preprocessing

1 negation

2 renaming of variables

3 replacement of ϕ→ ψ by ¬ϕ ∨ ψ4 De Morgan rules

5 double negation

6 prenex normal form . . .

¬

¬

((∃x(Buys(tim, x) ∧ Pumpkin(x))) ∧(∀x∀y((Buys(x, y) ∧ Pumpkin(y))→ (Eats(x, y) ∨ Carves(x, y)))) ∧(∀x(Child(x)→ (∀y(Pumpkin(y)→ ¬Eats(x, y)))))

)

→(Child(tim)→ ∃xCarves(tim, x)))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 103 / 120

Step 1: preprocessing

1 negation

2 renaming of variables

3 replacement of ϕ→ ψ by ¬ϕ ∨ ψ4 De Morgan rules

5 double negation

6 prenex normal form . . .

¬

¬

((∃x(Buys(tim, x) ∧ Pumpkin(x))) ∧(∀y∀z((Buys(y, z) ∧ Pumpkin(z))→ (Eats(y, z) ∨ Carves(y, z)))) ∧(∀x(Child(x)→ (∀y(Pumpkin(y)→ ¬Eats(x, y)))))

)

→(Child(tim)→ ∃xCarves(tim, x)))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 103 / 120

Step 1: preprocessing

1 negation

2 renaming of variables

3 replacement of ϕ→ ψ by ¬ϕ ∨ ψ4 De Morgan rules

5 double negation

6 prenex normal form . . .

¬

¬

((∃x(Buys(tim, x) ∧ Pumpkin(x))) ∧(∀y∀z((Buys(y, z) ∧ Pumpkin(z))→ (Eats(y, z) ∨ Carves(y, z)))) ∧(∀u(Child(u)→ (∀w(Pumpkin(w)→ ¬Eats(u,w)))))

)

→(Child(tim)→ ∃xCarves(tim, x)))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 103 / 120

Step 1: preprocessing

1 negation

2 renaming of variables

3 replacement of ϕ→ ψ by ¬ϕ ∨ ψ4 De Morgan rules

5 double negation

6 prenex normal form . . .

¬

¬

((∃x(Buys(tim, x) ∧ Pumpkin(x))) ∧(∀y∀z((Buys(y, z) ∧ Pumpkin(z))→ (Eats(y, z) ∨ Carves(y, z)))) ∧(∀u(Child(u)→ (∀w(Pumpkin(w)→ ¬Eats(u,w)))))

)

→(Child(tim)→ ∃tCarves(tim, t)))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 103 / 120

Step 1: preprocessing

1 negation

2 renaming of variables

3 replacement of ϕ→ ψ by ¬ϕ ∨ ψ

4 De Morgan rules

5 double negation

6 prenex normal form . . .

¬

¬

((∃x(Buys(tim, x) ∧ Pumpkin(x))) ∧(∀y∀z((Buys(y, z) ∧ Pumpkin(z))→ (Eats(y, z) ∨ Carves(y, z)))) ∧(∀u(Child(u)→ (∀w(Pumpkin(w)→ ¬Eats(u,w)))))

)

→(Child(tim)→ ∃tCarves(tim, t)))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 103 / 120

Step 1: preprocessing

1 negation

2 renaming of variables

3 replacement of ϕ→ ψ by ¬ϕ ∨ ψ

4 De Morgan rules

5 double negation

6 prenex normal form . . .

¬(¬((∃x(Buys(tim, x) ∧ Pumpkin(x))) ∧(∀y∀z((Buys(y, z) ∧ Pumpkin(z))→ (Eats(y, z) ∨ Carves(y, z)))) ∧(∀u(Child(u)→ (∀w(Pumpkin(w)→ ¬Eats(u,w)))))) ∨(Child(tim)→ ∃tCarves(tim, t)))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 103 / 120

Step 1: preprocessing

1 negation

2 renaming of variables

3 replacement of ϕ→ ψ by ¬ϕ ∨ ψ

4 De Morgan rules

5 double negation

6 prenex normal form . . .

¬(¬((∃x(Buys(tim, x) ∧ Pumpkin(x))) ∧(∀y∀z(¬(Buys(y, z) ∧ Pumpkin(z)) ∨ (Eats(y, z) ∨ Carves(y, z)))) ∧(∀u(Child(u)→ (∀w(Pumpkin(w)→ ¬Eats(u,w)))))) ∨(Child(tim)→ ∃tCarves(tim, t)))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 103 / 120

Step 1: preprocessing

1 negation

2 renaming of variables

3 replacement of ϕ→ ψ by ¬ϕ ∨ ψ

4 De Morgan rules

5 double negation

6 prenex normal form . . .

¬(¬((∃x(Buys(tim, x) ∧ Pumpkin(x))) ∧(∀y∀z(¬(Buys(y, z) ∧ Pumpkin(z)) ∨ (Eats(y, z) ∨ Carves(y, z)))) ∧(∀u(¬Child(u) ∨ (∀w(Pumpkin(w)→ ¬Eats(u,w)))))) ∨(Child(tim)→ ∃tCarves(tim, t)))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 103 / 120

Step 1: preprocessing

1 negation

2 renaming of variables

3 replacement of ϕ→ ψ by ¬ϕ ∨ ψ

4 De Morgan rules

5 double negation

6 prenex normal form . . .

¬(¬((∃x(Buys(tim, x) ∧ Pumpkin(x))) ∧(∀y∀z(¬(Buys(y, z) ∧ Pumpkin(z)) ∨ (Eats(y, z) ∨ Carves(y, z)))) ∧(∀u(¬Child(u) ∨ (∀w(¬Pumpkin(w) ∨ ¬Eats(u,w)))))) ∨(Child(tim)→ ∃tCarves(tim, t)))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 103 / 120

Step 1: preprocessing

1 negation

2 renaming of variables

3 replacement of ϕ→ ψ by ¬ϕ ∨ ψ

4 De Morgan rules

5 double negation

6 prenex normal form . . .

¬(¬((∃x(Buys(tim, x) ∧ Pumpkin(x))) ∧(∀y∀z(¬(Buys(y, z) ∧ Pumpkin(z)) ∨ (Eats(y, z) ∨ Carves(y, z)))) ∧(∀u(¬Child(u) ∨ (∀w(¬Pumpkin(w) ∨ ¬Eats(u,w)))))) ∨(¬Child(tim) ∨ ∃tCarves(tim, t)))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 103 / 120

Step 1: preprocessing

1 negation

2 renaming of variables

3 replacement of ϕ→ ψ by ¬ϕ ∨ ψ4 De Morgan rules

5 double negation

6 prenex normal form . . .

¬(¬((∃x(Buys(tim, x) ∧ Pumpkin(x))) ∧(∀y∀z(¬(Buys(y, z) ∧ Pumpkin(z)) ∨ (Eats(y, z) ∨ Carves(y, z)))) ∧(∀u(¬Child(u) ∨ (∀w(¬Pumpkin(w) ∨ ¬Eats(u,w)))))) ∨(¬Child(tim) ∨ ∃tCarves(tim, t)))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 103 / 120

Step 1: preprocessing

1 negation

2 renaming of variables

3 replacement of ϕ→ ψ by ¬ϕ ∨ ψ4 De Morgan rules

5 double negation

6 prenex normal form . . .

¬¬((∃x(Buys(tim, x) ∧ Pumpkin(x))) ∧(∀y∀z(¬(Buys(y, z) ∧ Pumpkin(z)) ∨ (Eats(y, z) ∨ Carves(y, z)))) ∧(∀u(¬Child(u) ∨ (∀w(¬Pumpkin(w) ∨ ¬Eats(u,w)))))

)

∧¬(¬Child(tim) ∨ ∃tCarves(tim, t)))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 103 / 120

Step 1: preprocessing

1 negation

2 renaming of variables

3 replacement of ϕ→ ψ by ¬ϕ ∨ ψ4 De Morgan rules

5 double negation

6 prenex normal form . . .

¬¬((∃x(Buys(tim, x) ∧ Pumpkin(x))) ∧(∀y∀z((¬Buys(y, z) ∨ ¬Pumpkin(z)) ∨ (Eats(y, z) ∨ Carves(y, z)))) ∧(∀u(¬Child(u) ∨ (∀w(¬Pumpkin(w) ∨ ¬Eats(u,w)))))

)

∧¬(¬Child(tim) ∨ ∃tCarves(tim, t)))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 103 / 120

Step 1: preprocessing

1 negation

2 renaming of variables

3 replacement of ϕ→ ψ by ¬ϕ ∨ ψ4 De Morgan rules

5 double negation

6 prenex normal form . . .

¬¬((∃x(Buys(tim, x) ∧ Pumpkin(x))) ∧(∀y∀z((¬Buys(y, z) ∨ ¬Pumpkin(z)) ∨ (Eats(y, z) ∨ Carves(y, z)))) ∧(∀u(¬Child(u) ∨ (∀w(¬Pumpkin(w) ∨ ¬Eats(u,w)))))

)

∧(¬¬Child(tim) ∧ ¬∃tCarves(tim, t)))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 103 / 120

Step 1: preprocessing

1 negation

2 renaming of variables

3 replacement of ϕ→ ψ by ¬ϕ ∨ ψ4 De Morgan rules

5 double negation

6 prenex normal form . . .

¬¬((∃x(Buys(tim, x) ∧ Pumpkin(x))) ∧(∀y∀z((¬Buys(y, z) ∨ ¬Pumpkin(z)) ∨ (Eats(y, z) ∨ Carves(y, z)))) ∧(∀u(¬Child(u) ∨ (∀w(¬Pumpkin(w) ∨ ¬Eats(u,w)))))

)

∧(¬¬Child(tim) ∧ ∀t¬Carves(tim, t)))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 103 / 120

Step 1: preprocessing

1 negation

2 renaming of variables

3 replacement of ϕ→ ψ by ¬ϕ ∨ ψ4 De Morgan rules

5 double negation

6 prenex normal form . . .

¬¬((∃x(Buys(tim, x) ∧ Pumpkin(x))) ∧(∀y∀z((¬Buys(y, z) ∨ ¬Pumpkin(z)) ∨ (Eats(y, z) ∨ Carves(y, z)))) ∧(∀u(¬Child(u) ∨ (∀w(¬Pumpkin(w) ∨ ¬Eats(u,w)))))

)

∧(¬¬Child(tim) ∧ ∀t¬Carves(tim, t)))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 103 / 120

Step 1: preprocessing

1 negation

2 renaming of variables

3 replacement of ϕ→ ψ by ¬ϕ ∨ ψ4 De Morgan rules

5 double negation

6 prenex normal form . . .

¬¬

((∃x(Buys(tim, x) ∧ Pumpkin(x))) ∧(∀y∀z((¬Buys(y, z) ∨ ¬Pumpkin(z)) ∨ (Eats(y, z) ∨ Carves(y, z)))) ∧(∀u(¬Child(u) ∨ (∀w(¬Pumpkin(w) ∨ ¬Eats(u,w)))))

)

∧(¬¬Child(tim) ∧ ∀t¬Carves(tim, t)))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 103 / 120

Step 1: preprocessing

1 negation

2 renaming of variables

3 replacement of ϕ→ ψ by ¬ϕ ∨ ψ4 De Morgan rules

5 double negation

6 prenex normal form . . .

¬¬

((∃x(Buys(tim, x) ∧ Pumpkin(x))) ∧(∀y∀z((¬Buys(y, z) ∨ ¬Pumpkin(z)) ∨ (Eats(y, z) ∨ Carves(y, z)))) ∧(∀u(¬Child(u) ∨ (∀w(¬Pumpkin(w) ∨ ¬Eats(u,w)))))

)

∧(Child(tim) ∧ ∀t¬Carves(tim, t)))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 103 / 120

Step 1: preprocessing

1 negation

2 renaming of variables

3 replacement of ϕ→ ψ by ¬ϕ ∨ ψ4 De Morgan rules

5 double negation

6 prenex normal form . . .

¬¬

((∃x(Buys(tim, x) ∧ Pumpkin(x))) ∧(∀y∀z((¬Buys(y, z) ∨ ¬Pumpkin(z)) ∨ (Eats(y, z) ∨ Carves(y, z)))) ∧(∀u(¬Child(u) ∨ (∀w(¬Pumpkin(w) ∨ ¬Eats(u,w)))))

)

∧(Child(tim) ∧ ∀t¬Carves(tim, t)))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 103 / 120

Step 2: Skolem normal form and clauses

1 prenex normal form

2 Skolemisation

3 drop universal quantifiers

4 CNF

∃x∀y∀z∀u∀w∀t(Buys(tim, x)∧Pumpkin(x) ∧(¬Buys(y, z) ∨ ¬Pumpkin(z) ∨ Eats(y, z) ∨ Carves(y, z)) ∧(¬Child(u) ∨ ¬Pumpkin(w) ∨ ¬Eats(u,w)) ∧Child(tim)∧¬Carves(tim, t))¬Carves(tim, t)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 104 / 120

Step 2: Skolem normal form and clauses

1 prenex normal form

2 Skolemisation

3 drop universal quantifiers

4 CNF

∃x∀y∀z∀u∀w∀t(Buys(tim, x)∧Pumpkin(x) ∧(¬Buys(y, z) ∨ ¬Pumpkin(z) ∨ Eats(y, z) ∨ Carves(y, z)) ∧(¬Child(u) ∨ ¬Pumpkin(w) ∨ ¬Eats(u,w)) ∧Child(tim)∧¬Carves(tim, t))¬Carves(tim, t)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 104 / 120

Step 2: Skolem normal form and clauses

1 prenex normal form

2 Skolemisation

3 drop universal quantifiers

4 CNF

∀y∀z∀u∀w∀t(Buys(tim, p)∧Pumpkin(p) ∧(¬Buys(y, z) ∨ ¬Pumpkin(z) ∨ Eats(y, z) ∨ Carves(y, z)) ∧(¬Child(u) ∨ ¬Pumpkin(w) ∨ ¬Eats(u,w)) ∧Child(tim)∧¬Carves(tim, t))¬Carves(tim, t)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 104 / 120

Step 2: Skolem normal form and clauses

1 prenex normal form

2 Skolemisation

3 drop universal quantifiers

4 CNF

∀y∀z∀u∀w∀t(Buys(tim, p)∧Pumpkin(p) ∧(¬Buys(y, z) ∨ ¬Pumpkin(z) ∨ Eats(y, z) ∨ Carves(y, z)) ∧(¬Child(u) ∨ ¬Pumpkin(w) ∨ ¬Eats(u,w)) ∧Child(tim)∧¬Carves(tim, t))¬Carves(tim, t)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 104 / 120

Step 2: Skolem normal form and clauses

1 prenex normal form

2 Skolemisation

3 drop universal quantifiers

4 CNF

∀y∀z∀u∀w∀t

Buys(tim, p)∧Pumpkin(p) ∧(¬Buys(y, z) ∨ ¬Pumpkin(z) ∨ Eats(y, z) ∨ Carves(y, z)) ∧(¬Child(u) ∨ ¬Pumpkin(w) ∨ ¬Eats(u,w)) ∧Child(tim)∧¬Carves(tim, t)

)

¬Carves(tim, t)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 104 / 120

Step 2: Skolem normal form and clauses

1 prenex normal form

2 Skolemisation

3 drop universal quantifiers

4 CNF

∀y∀z∀u∀w∀t

Buys(tim, p)∧Pumpkin(p) ∧(¬Buys(y, z) ∨ ¬Pumpkin(z) ∨ Eats(y, z) ∨ Carves(y, z)) ∧(¬Child(u) ∨ ¬Pumpkin(w) ∨ ¬Eats(u,w)) ∧Child(tim)∧¬Carves(tim, t)

)

¬Carves(tim, t)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 104 / 120

Step 2: Skolem normal form and clauses

1 prenex normal form

2 Skolemisation

3 drop universal quantifiers

4 CNF

∀y∀z∀u∀w∀t

Buys(tim, p) ∧Pumpkin(p) ∧(¬Buys(y, z) ∨ ¬Pumpkin(z) ∨ Eats(y, z) ∨ Carves(y, z)) ∧(¬Child(u) ∨ ¬Pumpkin(w) ∨ ¬Eats(u,w)) ∧Child(tim)∧¬Carves(tim, t)

)

¬Carves(tim, t)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 104 / 120

Step 2: Skolem normal form and clauses

1 prenex normal form

2 Skolemisation

3 drop universal quantifiers

4 CNF

∀y∀z∀u∀w∀t

Buys(tim, p) ∧Pumpkin(p) ∧(¬Buys(y, z) ∨ ¬Pumpkin(z) ∨ Eats(y, z) ∨ Carves(y, z)) ∧(¬Child(u) ∨ ¬Pumpkin(w) ∨ ¬Eats(u,w)) ∧Child(tim) ∧¬Carves(tim, t)

)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 104 / 120

Step 3: resolution

¬Child(u),¬Pumpkin(w),¬Eats(u,w) Child(tim)

Pumpkin(p)

¬Buys(y, z),¬Pumpkin(z),Eats(y, z),Carves(y, z)

Buys(tim, p)

¬Carves(tim, t)

¬Pumpkin(w),¬Eats(tim, w)

¬Eats(tim, p)

¬Buys(tim, p),¬Pumpkin(p),Carves(tim, p)

¬Buys(tim, p),Carves(tim, p)

Carves(tim, p)

2

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 105 / 120

Step 3: resolution

¬Child(u),¬Pumpkin(w),¬Eats(u,w) Child(tim)

Pumpkin(p)

¬Buys(y, z),¬Pumpkin(z),Eats(y, z),Carves(y, z)

Buys(tim, p)

¬Carves(tim, t)

¬Pumpkin(w),¬Eats(tim, w)

¬Eats(tim, p)

¬Buys(tim, p),¬Pumpkin(p),Carves(tim, p)

¬Buys(tim, p),Carves(tim, p)

Carves(tim, p)

2

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 105 / 120

Step 3: resolution

¬Child(u),¬Pumpkin(w),¬Eats(u,w) Child(tim)

Pumpkin(p)

¬Buys(y, z),¬Pumpkin(z),Eats(y, z),Carves(y, z)

Buys(tim, p)

¬Carves(tim, t)

¬Pumpkin(w),¬Eats(tim, w)

¬Eats(tim, p)

¬Buys(tim, p),¬Pumpkin(p),Carves(tim, p)

¬Buys(tim, p),Carves(tim, p)

Carves(tim, p)

2

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 105 / 120

Step 3: resolution

¬Child(u),¬Pumpkin(w),¬Eats(u,w) Child(tim)

Pumpkin(p)

¬Buys(y, z),¬Pumpkin(z),Eats(y, z),Carves(y, z)

Buys(tim, p)

¬Carves(tim, t)

¬Pumpkin(w),¬Eats(tim, w)

¬Eats(tim, p)

¬Buys(tim, p),¬Pumpkin(p),Carves(tim, p)

¬Buys(tim, p),Carves(tim, p)

Carves(tim, p)

2

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 105 / 120

Step 3: resolution

¬Child(u),¬Pumpkin(w),¬Eats(u,w) Child(tim)

Pumpkin(p)

¬Buys(y, z),¬Pumpkin(z),Eats(y, z),Carves(y, z)

Buys(tim, p)

¬Carves(tim, t)

¬Pumpkin(w),¬Eats(tim, w)

¬Eats(tim, p)

¬Buys(tim, p),¬Pumpkin(p),Carves(tim, p)

¬Buys(tim, p),Carves(tim, p)

Carves(tim, p)

2

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 105 / 120

Step 3: resolution

¬Child(u),¬Pumpkin(w),¬Eats(u,w) Child(tim)

Pumpkin(p)

¬Buys(y, z),¬Pumpkin(z),Eats(y, z),Carves(y, z)

Buys(tim, p)

¬Carves(tim, t)

¬Pumpkin(w),¬Eats(tim, w)

¬Eats(tim, p)

¬Buys(tim, p),¬Pumpkin(p),Carves(tim, p)

¬Buys(tim, p),Carves(tim, p)

Carves(tim, p)

2

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 105 / 120

Step 3: resolution

¬Child(u),¬Pumpkin(w),¬Eats(u,w) Child(tim)

Pumpkin(p)

¬Buys(y, z),¬Pumpkin(z),Eats(y, z),Carves(y, z)

Buys(tim, p)

¬Carves(tim, t)

¬Pumpkin(w),¬Eats(tim, w)

¬Eats(tim, p)

¬Buys(tim, p),¬Pumpkin(p),Carves(tim, p)

¬Buys(tim, p),Carves(tim, p)

Carves(tim, p)

2

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 105 / 120

First-order resolution: exercise

Prove the following conjecture using resolution:

1 All dogs howl at night.

2 Anyone who has any cats will not have any mice.

3 Light sleepers do not have anything which howls at night.

4 John has a cat or a dog.

5 Conjecture: If John is a light sleeper, then John does not have anymice.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 106 / 120

Incompleteness of algorithm described so far

Example (Resolution of {P (w), P (x)} and {(¬P (y),¬P (z)})P (w), P (x) ¬P (y),¬P (z)

P (x),¬P (z)

[w/y]

¬P (u),¬P (z)

[t/y]

...

reason:

redundant literals

∀x∀y(P (x) ∨ P (y))is equivalent to ∀xP (x)

solution:

eliminate redundancy

perform unification within aclause

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 107 / 120

Incompleteness of algorithm described so far

Example (Resolution of {P (w), P (x)} and {(¬P (y),¬P (z)})P (w), P (x) ¬P (y),¬P (z)

P (x),¬P (z)

[w/y]

¬P (u),¬P (z)

[t/y]

...

reason:

redundant literals

∀x∀y(P (x) ∨ P (y))is equivalent to ∀xP (x)

solution:

eliminate redundancy

perform unification within aclause

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 107 / 120

Incompleteness of algorithm described so far

Example (Resolution of {P (w), P (x)} and {(¬P (y),¬P (z)})P (w), P (x) ¬P (y),¬P (z)

P (t),¬P (u)

[w/y]

¬P (u),¬P (z)

[t/y]

...

reason:

redundant literals

∀x∀y(P (x) ∨ P (y))is equivalent to ∀xP (x)

solution:

eliminate redundancy

perform unification within aclause

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 107 / 120

Incompleteness of algorithm described so far

Example (Resolution of {P (w), P (x)} and {(¬P (y),¬P (z)})P (w), P (x) ¬P (y),¬P (z)

P (t),¬P (u)

[w/y]

¬P (u),¬P (z)

[t/y]

...

reason:

redundant literals

∀x∀y(P (x) ∨ P (y))is equivalent to ∀xP (x)

solution:

eliminate redundancy

perform unification within aclause

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 107 / 120

Incompleteness of algorithm described so far

Example (Resolution of {P (w), P (x)} and {(¬P (y),¬P (z)})P (w), P (x) ¬P (y),¬P (z)

P (t),¬P (u)

[w/y]

¬P (r),¬P (s)

[t/y]

...

reason:

redundant literals

∀x∀y(P (x) ∨ P (y))is equivalent to ∀xP (x)

solution:

eliminate redundancy

perform unification within aclause

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 107 / 120

Incompleteness of algorithm described so far

Example (Resolution of {P (w), P (x)} and {(¬P (y),¬P (z)})P (w), P (x) ¬P (y),¬P (z)

P (t),¬P (u)

[w/y]

¬P (r),¬P (s)

[t/y]

...

reason:

redundant literals

∀x∀y(P (x) ∨ P (y))is equivalent to ∀xP (x)

solution:

eliminate redundancy

perform unification within aclause

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 107 / 120

Incompleteness of algorithm described so far

Example (Resolution of {P (w), P (x)} and {(¬P (y),¬P (z)})P (w), P (x) ¬P (y),¬P (z)

P (t),¬P (u)

[w/y]

¬P (r),¬P (s)

[t/y]

...

reason:

redundant literals

∀x∀y(P (x) ∨ P (y))is equivalent to ∀xP (x)

solution:

eliminate redundancy

perform unification within aclause

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 107 / 120

Incompleteness of algorithm described so far

Example (Resolution of {P (w), P (x)} and {(¬P (y),¬P (z)})P (w), P (x) ¬P (y),¬P (z)

P (t),¬P (u)

[w/y]

¬P (r),¬P (s)

[t/y]

...

reason:

redundant literals

∀x∀y(P (x) ∨ P (y))is equivalent to ∀xP (x)

solution:

eliminate redundancy

perform unification within aclause

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 107 / 120

Factors

Definition (Factor)

Let C = {L1, L2, L3, . . .}; σ be MGU of L1 and L2.Then σ(C) is a factor of C.

Example (factors)

{P (y)} is a factor of {P (x), P (y)}.{P (c)} is a factor of {P (x), P (c)}.{P (c), R(c, y)} is a factor of {P (x), P (c), R(x, y)}.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 108 / 120

Factors

Definition (Factor)

Let C = {L1, L2, L3, . . .}; σ be MGU of L1 and L2.Then σ(C) is a factor of C.

Example (factors)

{P (y)} is a factor of {P (x), P (y)}.

{P (c)} is a factor of {P (x), P (c)}.{P (c), R(c, y)} is a factor of {P (x), P (c), R(x, y)}.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 108 / 120

Factors

Definition (Factor)

Let C = {L1, L2, L3, . . .}; σ be MGU of L1 and L2.Then σ(C) is a factor of C.

Example (factors)

{P (y)} is a factor of {P (x), P (y)}.{P (c)} is a factor of {P (x), P (c)}.

{P (c), R(c, y)} is a factor of {P (x), P (c), R(x, y)}.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 108 / 120

Factors

Definition (Factor)

Let C = {L1, L2, L3, . . .}; σ be MGU of L1 and L2.Then σ(C) is a factor of C.

Example (factors)

{P (y)} is a factor of {P (x), P (y)}.{P (c)} is a factor of {P (x), P (c)}.{P (c), R(c, y)} is a factor of {P (x), P (c), R(x, y)}.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 108 / 120

Factorisation

New rule:

Derive C2 from C1 if C2 is factor of C1.

Example (factorisation)

P (w), P (x) ¬P (y),¬P (z)

P (x)

[w/x]

¬P (y)

[z/y]

2 [x/y]

Factorisation can be performed by introducing a new rule or by integratingit with resolution, i.e. checking the resolvent for factors.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 109 / 120

Factorisation

New rule:

Derive C2 from C1 if C2 is factor of C1.

Example (factorisation)

P (w), P (x) ¬P (y),¬P (z)

P (x)

[w/x]

¬P (y)

[z/y]

2 [x/y]

Factorisation can be performed by introducing a new rule or by integratingit with resolution, i.e. checking the resolvent for factors.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 109 / 120

Factorisation

New rule:

Derive C2 from C1 if C2 is factor of C1.

Example (factorisation)

P (w), P (x) ¬P (y),¬P (z)

P (x)

[w/x]

¬P (y)

[z/y]

2 [x/y]

Factorisation can be performed by introducing a new rule or by integratingit with resolution, i.e. checking the resolvent for factors.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 109 / 120

Factorisation

New rule:

Derive C2 from C1 if C2 is factor of C1.

Example (factorisation)

P (w), P (x) ¬P (y),¬P (z)

P (x)

[w/x]

¬P (y)

[z/y]

2 [x/y]

Factorisation can be performed by introducing a new rule or by integratingit with resolution, i.e. checking the resolvent for factors.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 109 / 120

Factorisation

New rule:

Derive C2 from C1 if C2 is factor of C1.

Example (factorisation)

P (w), P (x) ¬P (y),¬P (z)

P (x)

[w/x]

¬P (y)

[z/y]

2 [x/y]

Factorisation can be performed by introducing a new rule or by integratingit with resolution, i.e. checking the resolvent for factors.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 109 / 120

Factorisation

New rule:

Derive C2 from C1 if C2 is factor of C1.

Example (factorisation)

P (w), P (x) ¬P (y),¬P (z)

P (x)

[w/x]

¬P (y)

[z/y]

2 [x/y]

Factorisation can be performed by introducing a new rule or by integratingit with resolution, i.e. checking the resolvent for factors.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 109 / 120

Properties of the FOL resolution algorithm

Theorem (soundness of FOL resolution)

K(ϕ) `∗ 2 implies unsatisfiability of ϕ.

Theorem (refutation completeness of FOL resolution)

If ϕ is unsatisfiable, then K(ϕ) `∗ 2 holds.

Termination?

Does the algorithm terminate for every input?

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 110 / 120

Properties of the FOL resolution algorithm

Theorem (soundness of FOL resolution)

K(ϕ) `∗ 2 implies unsatisfiability of ϕ.

Theorem (refutation completeness of FOL resolution)

If ϕ is unsatisfiable, then K(ϕ) `∗ 2 holds.

Termination?

Does the algorithm terminate for every input?

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 110 / 120

Properties of the FOL resolution algorithm

Theorem (soundness of FOL resolution)

K(ϕ) `∗ 2 implies unsatisfiability of ϕ.

Theorem (refutation completeness of FOL resolution)

If ϕ is unsatisfiable, then K(ϕ) `∗ 2 holds.

Termination?

Does the algorithm terminate for every input?

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 110 / 120

Termination of FOL Resolution

Example (non-terminating set of clauses)

P (x),¬Q(f(x)) ¬P (f(y)), Q(f(y))

¬Q(f(f(y))), Q(f(y))

[x/f(y)]

P (x),¬Q(f(f(x)))

[y/x]

¬Q(f(f(f(y)))), Q(f(y))

[x/f(y)]

P (x),¬Q(f(f(f(x))))

[y/x]

...

Since the satisfiability problem for FOL formulas is undecidable,termination cannot be achieved.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 111 / 120

Termination of FOL Resolution

Example (non-terminating set of clauses)

P (x),¬Q(f(x)) ¬P (f(y)), Q(f(y))

¬Q(f(f(y))), Q(f(y))

[x/f(y)]

P (x),¬Q(f(f(x)))

[y/x]

¬Q(f(f(f(y)))), Q(f(y))

[x/f(y)]

P (x),¬Q(f(f(f(x))))

[y/x]

...

Since the satisfiability problem for FOL formulas is undecidable,termination cannot be achieved.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 111 / 120

Termination of FOL Resolution

Example (non-terminating set of clauses)

P (x),¬Q(f(x)) ¬P (f(y)), Q(f(y))

¬Q(f(f(y))), Q(f(y))

[x/f(y)]

P (x),¬Q(f(f(x)))

[y/x]

¬Q(f(f(f(y)))), Q(f(y))

[x/f(y)]

P (x),¬Q(f(f(f(x))))

[y/x]

...

Since the satisfiability problem for FOL formulas is undecidable,termination cannot be achieved.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 111 / 120

Termination of FOL Resolution

Example (non-terminating set of clauses)

P (x),¬Q(f(x)) ¬P (f(y)), Q(f(y))

¬Q(f(f(y))), Q(f(y))

[x/f(y)]

P (x),¬Q(f(f(x)))

[y/x]

¬Q(f(f(f(y)))), Q(f(y))

[x/f(y)]

P (x),¬Q(f(f(f(x))))

[y/x]

...

Since the satisfiability problem for FOL formulas is undecidable,termination cannot be achieved.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 111 / 120

Termination of FOL Resolution

Example (non-terminating set of clauses)

P (x),¬Q(f(x)) ¬P (f(y)), Q(f(y))

¬Q(f(f(y))), Q(f(y))

[x/f(y)]

P (x),¬Q(f(f(x)))

[y/x]

¬Q(f(f(f(y)))), Q(f(y))

[x/f(y)]

P (x),¬Q(f(f(f(x))))

[y/x]

...

Since the satisfiability problem for FOL formulas is undecidable,termination cannot be achieved.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 111 / 120

Termination of FOL Resolution

Example (non-terminating set of clauses)

P (x),¬Q(f(x)) ¬P (f(y)), Q(f(y))

¬Q(f(f(y))), Q(f(y))

[x/f(y)]

P (x),¬Q(f(f(x)))

[y/x]

¬Q(f(f(f(y)))), Q(f(y))

[x/f(y)]

P (x),¬Q(f(f(f(x))))

[y/x]

...

Since the satisfiability problem for FOL formulas is undecidable,termination cannot be achieved.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 111 / 120

Termination of FOL Resolution

Example (non-terminating set of clauses)

P (x),¬Q(f(x)) ¬P (f(y)), Q(f(y))

¬Q(f(f(y))), Q(f(y))

[x/f(y)]

P (x),¬Q(f(f(x)))

[y/x]

¬Q(f(f(f(y)))), Q(f(y))

[x/f(y)]

P (x),¬Q(f(f(f(x))))

[y/x]

...

Since the satisfiability problem for FOL formulas is undecidable,termination cannot be achieved.

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 111 / 120

Tableau algorithm for FOL

basic algorithm remains unchanged

rulesclash triggers

no preprocessing necessary

. . . but NNF makes things easier

additional rules to deal with quantifiers

∀-rule∃-rule

definition of clash extended to first-order formulas

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 112 / 120

Tableau algorithm for FOL

basic algorithm remains unchanged

rules

clash triggers

no preprocessing necessary

. . . but NNF makes things easier

additional rules to deal with quantifiers

∀-rule∃-rule

definition of clash extended to first-order formulas

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 112 / 120

Tableau algorithm for FOL

basic algorithm remains unchanged

rulesclash triggers

no preprocessing necessary

. . . but NNF makes things easier

additional rules to deal with quantifiers

∀-rule∃-rule

definition of clash extended to first-order formulas

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 112 / 120

Tableau algorithm for FOL

basic algorithm remains unchanged

rulesclash triggers

no preprocessing necessary

. . . but NNF makes things easier

additional rules to deal with quantifiers

∀-rule∃-rule

definition of clash extended to first-order formulas

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 112 / 120

Tableau algorithm for FOL

basic algorithm remains unchanged

rulesclash triggers

no preprocessing necessary

. . . but NNF makes things easier

additional rules to deal with quantifiers

∀-rule∃-rule

definition of clash extended to first-order formulas

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 112 / 120

Tableau algorithm for FOL

basic algorithm remains unchanged

rulesclash triggers

no preprocessing necessary

. . . but NNF makes things easier

additional rules to deal with quantifiers

∀-rule∃-rule

definition of clash extended to first-order formulas

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 112 / 120

Tableau algorithm for FOL

basic algorithm remains unchanged

rulesclash triggers

no preprocessing necessary

. . . but NNF makes things easier

additional rules to deal with quantifiers

∀-rule

∃-rule

definition of clash extended to first-order formulas

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 112 / 120

Tableau algorithm for FOL

basic algorithm remains unchanged

rulesclash triggers

no preprocessing necessary

. . . but NNF makes things easier

additional rules to deal with quantifiers

∀-rule∃-rule

definition of clash extended to first-order formulas

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 112 / 120

Tableau algorithm for FOL

basic algorithm remains unchanged

rulesclash triggers

no preprocessing necessary

. . . but NNF makes things easier

additional rules to deal with quantifiers

∀-rule∃-rule

definition of clash extended to first-order formulas

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 112 / 120

Additional tableau rules for FOL

∃ If ∃xϕ(x) ∈ Sand there is no ground term t with ϕ(t) ∈ Sthen S := S ∪ ϕ(c) for a new constant symbol c

use Skolemisation to eliminate ∃analogous for ¬∀xϕ(x): add ¬ϕ(c)only constants are needed (no function symbols of higher arity)

∀ quantifiers are processed previously by ∀-rule

∀ If ∀xϕ(x) ∈ Sand t is an arbitrary ground termthen S := S ∪ ϕ(t)

analogous for ¬∃xϕ(x): add ¬ϕ(t)applicable to infinite number of ground terms

always applicable!termination cannot be ensured

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 113 / 120

Additional tableau rules for FOL

∃ If ∃xϕ(x) ∈ Sand there is no ground term t with ϕ(t) ∈ Sthen S := S ∪ ϕ(c) for a new constant symbol c

use Skolemisation to eliminate ∃

analogous for ¬∀xϕ(x): add ¬ϕ(c)only constants are needed (no function symbols of higher arity)

∀ quantifiers are processed previously by ∀-rule

∀ If ∀xϕ(x) ∈ Sand t is an arbitrary ground termthen S := S ∪ ϕ(t)

analogous for ¬∃xϕ(x): add ¬ϕ(t)applicable to infinite number of ground terms

always applicable!termination cannot be ensured

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 113 / 120

Additional tableau rules for FOL

∃ If ∃xϕ(x) ∈ Sand there is no ground term t with ϕ(t) ∈ Sthen S := S ∪ ϕ(c) for a new constant symbol c

use Skolemisation to eliminate ∃analogous for ¬∀xϕ(x): add ¬ϕ(c)

only constants are needed (no function symbols of higher arity)

∀ quantifiers are processed previously by ∀-rule

∀ If ∀xϕ(x) ∈ Sand t is an arbitrary ground termthen S := S ∪ ϕ(t)

analogous for ¬∃xϕ(x): add ¬ϕ(t)applicable to infinite number of ground terms

always applicable!termination cannot be ensured

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 113 / 120

Additional tableau rules for FOL

∃ If ∃xϕ(x) ∈ Sand there is no ground term t with ϕ(t) ∈ Sthen S := S ∪ ϕ(c) for a new constant symbol c

use Skolemisation to eliminate ∃analogous for ¬∀xϕ(x): add ¬ϕ(c)only constants are needed (no function symbols of higher arity)

∀ quantifiers are processed previously by ∀-rule

∀ If ∀xϕ(x) ∈ Sand t is an arbitrary ground termthen S := S ∪ ϕ(t)

analogous for ¬∃xϕ(x): add ¬ϕ(t)applicable to infinite number of ground terms

always applicable!termination cannot be ensured

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 113 / 120

Additional tableau rules for FOL

∃ If ∃xϕ(x) ∈ Sand there is no ground term t with ϕ(t) ∈ Sthen S := S ∪ ϕ(c) for a new constant symbol c

use Skolemisation to eliminate ∃analogous for ¬∀xϕ(x): add ¬ϕ(c)only constants are needed (no function symbols of higher arity)

∀ quantifiers are processed previously by ∀-rule

∀ If ∀xϕ(x) ∈ Sand t is an arbitrary ground termthen S := S ∪ ϕ(t)

analogous for ¬∃xϕ(x): add ¬ϕ(t)applicable to infinite number of ground terms

always applicable!termination cannot be ensured

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 113 / 120

Additional tableau rules for FOL

∃ If ∃xϕ(x) ∈ Sand there is no ground term t with ϕ(t) ∈ Sthen S := S ∪ ϕ(c) for a new constant symbol c

use Skolemisation to eliminate ∃analogous for ¬∀xϕ(x): add ¬ϕ(c)only constants are needed (no function symbols of higher arity)

∀ quantifiers are processed previously by ∀-rule

∀ If ∀xϕ(x) ∈ Sand t is an arbitrary ground termthen S := S ∪ ϕ(t)

analogous for ¬∃xϕ(x): add ¬ϕ(t)applicable to infinite number of ground terms

always applicable!termination cannot be ensured

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 113 / 120

Additional tableau rules for FOL

∃ If ∃xϕ(x) ∈ Sand there is no ground term t with ϕ(t) ∈ Sthen S := S ∪ ϕ(c) for a new constant symbol c

use Skolemisation to eliminate ∃analogous for ¬∀xϕ(x): add ¬ϕ(c)only constants are needed (no function symbols of higher arity)

∀ quantifiers are processed previously by ∀-rule

∀ If ∀xϕ(x) ∈ Sand t is an arbitrary ground termthen S := S ∪ ϕ(t)

analogous for ¬∃xϕ(x): add ¬ϕ(t)

applicable to infinite number of ground terms

always applicable!termination cannot be ensured

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 113 / 120

Additional tableau rules for FOL

∃ If ∃xϕ(x) ∈ Sand there is no ground term t with ϕ(t) ∈ Sthen S := S ∪ ϕ(c) for a new constant symbol c

use Skolemisation to eliminate ∃analogous for ¬∀xϕ(x): add ¬ϕ(c)only constants are needed (no function symbols of higher arity)

∀ quantifiers are processed previously by ∀-rule

∀ If ∀xϕ(x) ∈ Sand t is an arbitrary ground termthen S := S ∪ ϕ(t)

analogous for ¬∃xϕ(x): add ¬ϕ(t)applicable to infinite number of ground terms

always applicable!termination cannot be ensured

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 113 / 120

Additional tableau rules for FOL

∃ If ∃xϕ(x) ∈ Sand there is no ground term t with ϕ(t) ∈ Sthen S := S ∪ ϕ(c) for a new constant symbol c

use Skolemisation to eliminate ∃analogous for ¬∀xϕ(x): add ¬ϕ(c)only constants are needed (no function symbols of higher arity)

∀ quantifiers are processed previously by ∀-rule

∀ If ∀xϕ(x) ∈ Sand t is an arbitrary ground termthen S := S ∪ ϕ(t)

analogous for ¬∃xϕ(x): add ¬ϕ(t)applicable to infinite number of ground terms

always applicable!

termination cannot be ensured

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 113 / 120

Additional tableau rules for FOL

∃ If ∃xϕ(x) ∈ Sand there is no ground term t with ϕ(t) ∈ Sthen S := S ∪ ϕ(c) for a new constant symbol c

use Skolemisation to eliminate ∃analogous for ¬∀xϕ(x): add ¬ϕ(c)only constants are needed (no function symbols of higher arity)

∀ quantifiers are processed previously by ∀-rule

∀ If ∀xϕ(x) ∈ Sand t is an arbitrary ground termthen S := S ∪ ϕ(t)

analogous for ¬∃xϕ(x): add ¬ϕ(t)applicable to infinite number of ground terms

always applicable!termination cannot be ensured

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 113 / 120

Example: Halloween tableau

ϕ = ∃x(Buys(tim, x) ∧ Pumpkin(x)) ∧∀x∀y(Buys(x, y) ∧ Pumpkin(y) → Eats(x, y) ∨ Carves(x, y)) ∧∀x(Child(x) → (∀y(Pumpkin(y) → ¬Eats(x, y)))) ∧¬(Child(tim) → ∃xCarves(tim, x))

1 ϕ

2 ∃x(Buys(tim, x) ∧ Pumpkin(x)) 1: ∧3 ∀x∀y(Buys(x, y) ∧ Pumpkin(y) → Eats(x, y) ∨ Carves(x, y))4 ∀x(Child(x) → (∀y(Pumpkin(y) → ¬Eats(x, y))))5 ¬(Child(tim) → ∃xCarves(tim, x))

6 Child(tim) 5: ¬ →7 ¬∃xCarves(tim, x))

8 Buys(tim, p) ∧ Pumpkin(p) 2: ∃(x/p)

9 Buys(tim, p) 8: ∧10 Pumpkin(p)

11 Buys(tim, p) ∧ Pumpkin(p) → Eats(tim, p) ∨ Carves(tim, p) 3: ∀(x/tim, y/p)

12 Child(tim) → (Pumpkin(p) → ¬Eats(tim, p)) 4: ∀(x/tim, y/p)

13 ¬Carves(tim, p) 7: ¬∃(x/p)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 114 / 120

Example: Halloween tableau

ϕ = ∃x(Buys(tim, x) ∧ Pumpkin(x)) ∧∀x∀y(Buys(x, y) ∧ Pumpkin(y) → Eats(x, y) ∨ Carves(x, y)) ∧∀x(Child(x) → (∀y(Pumpkin(y) → ¬Eats(x, y)))) ∧¬(Child(tim) → ∃xCarves(tim, x))

1 ϕ

2 ∃x(Buys(tim, x) ∧ Pumpkin(x)) 1: ∧3 ∀x∀y(Buys(x, y) ∧ Pumpkin(y) → Eats(x, y) ∨ Carves(x, y))4 ∀x(Child(x) → (∀y(Pumpkin(y) → ¬Eats(x, y))))5 ¬(Child(tim) → ∃xCarves(tim, x))

6 Child(tim) 5: ¬ →7 ¬∃xCarves(tim, x))

8 Buys(tim, p) ∧ Pumpkin(p) 2: ∃(x/p)

9 Buys(tim, p) 8: ∧10 Pumpkin(p)

11 Buys(tim, p) ∧ Pumpkin(p) → Eats(tim, p) ∨ Carves(tim, p) 3: ∀(x/tim, y/p)

12 Child(tim) → (Pumpkin(p) → ¬Eats(tim, p)) 4: ∀(x/tim, y/p)

13 ¬Carves(tim, p) 7: ¬∃(x/p)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 114 / 120

Example: Halloween tableau

ϕ = ∃x(Buys(tim, x) ∧ Pumpkin(x)) ∧∀x∀y(Buys(x, y) ∧ Pumpkin(y) → Eats(x, y) ∨ Carves(x, y)) ∧∀x(Child(x) → (∀y(Pumpkin(y) → ¬Eats(x, y)))) ∧¬(Child(tim) → ∃xCarves(tim, x))

1 ϕ

2 ∃x(Buys(tim, x) ∧ Pumpkin(x)) 1: ∧3 ∀x∀y(Buys(x, y) ∧ Pumpkin(y) → Eats(x, y) ∨ Carves(x, y))4 ∀x(Child(x) → (∀y(Pumpkin(y) → ¬Eats(x, y))))5 ¬(Child(tim) → ∃xCarves(tim, x))

6 Child(tim) 5: ¬ →7 ¬∃xCarves(tim, x))

8 Buys(tim, p) ∧ Pumpkin(p) 2: ∃(x/p)

9 Buys(tim, p) 8: ∧10 Pumpkin(p)

11 Buys(tim, p) ∧ Pumpkin(p) → Eats(tim, p) ∨ Carves(tim, p) 3: ∀(x/tim, y/p)

12 Child(tim) → (Pumpkin(p) → ¬Eats(tim, p)) 4: ∀(x/tim, y/p)

13 ¬Carves(tim, p) 7: ¬∃(x/p)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 114 / 120

Example: Halloween tableau

ϕ = ∃x(Buys(tim, x) ∧ Pumpkin(x)) ∧∀x∀y(Buys(x, y) ∧ Pumpkin(y) → Eats(x, y) ∨ Carves(x, y)) ∧∀x(Child(x) → (∀y(Pumpkin(y) → ¬Eats(x, y)))) ∧¬(Child(tim) → ∃xCarves(tim, x))

1 ϕ

2 ∃x(Buys(tim, x) ∧ Pumpkin(x)) 1: ∧3 ∀x∀y(Buys(x, y) ∧ Pumpkin(y) → Eats(x, y) ∨ Carves(x, y))4 ∀x(Child(x) → (∀y(Pumpkin(y) → ¬Eats(x, y))))5 ¬(Child(tim) → ∃xCarves(tim, x))

6 Child(tim) 5: ¬ →7 ¬∃xCarves(tim, x))

8 Buys(tim, p) ∧ Pumpkin(p) 2: ∃(x/p)

9 Buys(tim, p) 8: ∧10 Pumpkin(p)

11 Buys(tim, p) ∧ Pumpkin(p) → Eats(tim, p) ∨ Carves(tim, p) 3: ∀(x/tim, y/p)

12 Child(tim) → (Pumpkin(p) → ¬Eats(tim, p)) 4: ∀(x/tim, y/p)

13 ¬Carves(tim, p) 7: ¬∃(x/p)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 114 / 120

Example: Halloween tableau

ϕ = ∃x(Buys(tim, x) ∧ Pumpkin(x)) ∧∀x∀y(Buys(x, y) ∧ Pumpkin(y) → Eats(x, y) ∨ Carves(x, y)) ∧∀x(Child(x) → (∀y(Pumpkin(y) → ¬Eats(x, y)))) ∧¬(Child(tim) → ∃xCarves(tim, x))

1 ϕ

2 ∃x(Buys(tim, x) ∧ Pumpkin(x)) 1: ∧3 ∀x∀y(Buys(x, y) ∧ Pumpkin(y) → Eats(x, y) ∨ Carves(x, y))4 ∀x(Child(x) → (∀y(Pumpkin(y) → ¬Eats(x, y))))5 ¬(Child(tim) → ∃xCarves(tim, x))

6 Child(tim) 5: ¬ →7 ¬∃xCarves(tim, x))

8 Buys(tim, p) ∧ Pumpkin(p) 2: ∃(x/p)

9 Buys(tim, p) 8: ∧10 Pumpkin(p)

11 Buys(tim, p) ∧ Pumpkin(p) → Eats(tim, p) ∨ Carves(tim, p) 3: ∀(x/tim, y/p)

12 Child(tim) → (Pumpkin(p) → ¬Eats(tim, p)) 4: ∀(x/tim, y/p)

13 ¬Carves(tim, p) 7: ¬∃(x/p)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 114 / 120

Example: Halloween tableau

ϕ = ∃x(Buys(tim, x) ∧ Pumpkin(x)) ∧∀x∀y(Buys(x, y) ∧ Pumpkin(y) → Eats(x, y) ∨ Carves(x, y)) ∧∀x(Child(x) → (∀y(Pumpkin(y) → ¬Eats(x, y)))) ∧¬(Child(tim) → ∃xCarves(tim, x))

1 ϕ

2 ∃x(Buys(tim, x) ∧ Pumpkin(x)) 1: ∧3 ∀x∀y(Buys(x, y) ∧ Pumpkin(y) → Eats(x, y) ∨ Carves(x, y))4 ∀x(Child(x) → (∀y(Pumpkin(y) → ¬Eats(x, y))))5 ¬(Child(tim) → ∃xCarves(tim, x))

6 Child(tim) 5: ¬ →7 ¬∃xCarves(tim, x))

8 Buys(tim, p) ∧ Pumpkin(p) 2: ∃(x/p)

9 Buys(tim, p) 8: ∧10 Pumpkin(p)

11 Buys(tim, p) ∧ Pumpkin(p) → Eats(tim, p) ∨ Carves(tim, p) 3: ∀(x/tim, y/p)

12 Child(tim) → (Pumpkin(p) → ¬Eats(tim, p)) 4: ∀(x/tim, y/p)

13 ¬Carves(tim, p) 7: ¬∃(x/p)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 114 / 120

Example: Halloween tableau

ϕ = ∃x(Buys(tim, x) ∧ Pumpkin(x)) ∧∀x∀y(Buys(x, y) ∧ Pumpkin(y) → Eats(x, y) ∨ Carves(x, y)) ∧∀x(Child(x) → (∀y(Pumpkin(y) → ¬Eats(x, y)))) ∧¬(Child(tim) → ∃xCarves(tim, x))

1 ϕ

2 ∃x(Buys(tim, x) ∧ Pumpkin(x)) 1: ∧3 ∀x∀y(Buys(x, y) ∧ Pumpkin(y) → Eats(x, y) ∨ Carves(x, y))4 ∀x(Child(x) → (∀y(Pumpkin(y) → ¬Eats(x, y))))5 ¬(Child(tim) → ∃xCarves(tim, x))

6 Child(tim) 5: ¬ →7 ¬∃xCarves(tim, x))

8 Buys(tim, p) ∧ Pumpkin(p) 2: ∃(x/p)

9 Buys(tim, p) 8: ∧10 Pumpkin(p)

11 Buys(tim, p) ∧ Pumpkin(p) → Eats(tim, p) ∨ Carves(tim, p) 3: ∀(x/tim, y/p)

12 Child(tim) → (Pumpkin(p) → ¬Eats(tim, p)) 4: ∀(x/tim, y/p)

13 ¬Carves(tim, p) 7: ¬∃(x/p)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 114 / 120

Example: Halloween tableau

ϕ = ∃x(Buys(tim, x) ∧ Pumpkin(x)) ∧∀x∀y(Buys(x, y) ∧ Pumpkin(y) → Eats(x, y) ∨ Carves(x, y)) ∧∀x(Child(x) → (∀y(Pumpkin(y) → ¬Eats(x, y)))) ∧¬(Child(tim) → ∃xCarves(tim, x))

1 ϕ

2 ∃x(Buys(tim, x) ∧ Pumpkin(x)) 1: ∧3 ∀x∀y(Buys(x, y) ∧ Pumpkin(y) → Eats(x, y) ∨ Carves(x, y))4 ∀x(Child(x) → (∀y(Pumpkin(y) → ¬Eats(x, y))))5 ¬(Child(tim) → ∃xCarves(tim, x))

6 Child(tim) 5: ¬ →7 ¬∃xCarves(tim, x))

8 Buys(tim, p) ∧ Pumpkin(p) 2: ∃(x/p)

9 Buys(tim, p) 8: ∧10 Pumpkin(p)

11 Buys(tim, p) ∧ Pumpkin(p) → Eats(tim, p) ∨ Carves(tim, p) 3: ∀(x/tim, y/p)

12 Child(tim) → (Pumpkin(p) → ¬Eats(tim, p)) 4: ∀(x/tim, y/p)

13 ¬Carves(tim, p) 7: ¬∃(x/p)

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 114 / 120

Example: Halloween tableau

ϕ = ∃x(Buys(tim, x) ∧ Pumpkin(x)) ∧∀x∀y(Buys(x, y) ∧ Pumpkin(y) → Eats(x, y) ∨ Carves(x, y)) ∧∀x(Child(x) → (∀y(Pumpkin(y) → ¬Eats(x, y)))) ∧¬(Child(tim) → ∃xCarves(tim, x))

1 ϕ

2 ∃x(Buys(tim, x) ∧ Pumpkin(x)) 1: ∧3 ∀x∀y(Buys(x, y) ∧ Pumpkin(y) → Eats(x, y) ∨ Carves(x, y))4 ∀x(Child(x) → (∀y(Pumpkin(y) → ¬Eats(x, y))))5 ¬(Child(tim) → ∃xCarves(tim, x))

6 Child(tim) 5: ¬ →7 ¬∃xCarves(tim, x))

8 Buys(tim, p) ∧ Pumpkin(p) 2: ∃(x/p)

9 Buys(tim, p) 8: ∧10 Pumpkin(p)

11 Buys(tim, p) ∧ Pumpkin(p) → Eats(tim, p) ∨ Carves(tim, p) 3: ∀(x/tim, y/p)

12 Child(tim) → (Pumpkin(p) → ¬Eats(tim, p)) 4: ∀(x/tim, y/p)

13 ¬Carves(tim, p) 7: ¬∃(x/p)Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 114 / 120

Example: Halloween tableau (cont’)

6 Child(tim)9 Buys(tim, p)10 Pumpkin(p)11 (Buys(tim, p) ∧ Pumpkin(p)) → (Eats(tim, p) ∨ Carves(tim, p))12 Child(tim) → (Pumpkin(p) → ¬Eats(tim, p))13 ¬Carves(tim, p)

14 ¬Child(tim) Pumpkin(p) → ¬Eats(tim, p) 12: →15 ¬Pumpkin(p) ¬Eats(tim, p) 14: →16 ¬(Buys(tim, p) ∧ Pumpkin(p)) Eats(tim, p) ∨ Carves(tim, p) 11: →17 ¬Buys(tim, p) ¬Pumpkin(p) 16: ¬∧18 Eats(tim, p) Carves(tim, p) 16: ∨

6 10 9 10 15 13

all columns contain a clash

ϕ is unsatisfiable

premises imply conjecture

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 115 / 120

Example: Halloween tableau (cont’)

6 Child(tim)9 Buys(tim, p)10 Pumpkin(p)11 (Buys(tim, p) ∧ Pumpkin(p)) → (Eats(tim, p) ∨ Carves(tim, p))12 Child(tim) → (Pumpkin(p) → ¬Eats(tim, p))13 ¬Carves(tim, p)14 ¬Child(tim) Pumpkin(p) → ¬Eats(tim, p) 12: →

15 ¬Pumpkin(p) ¬Eats(tim, p) 14: →16 ¬(Buys(tim, p) ∧ Pumpkin(p)) Eats(tim, p) ∨ Carves(tim, p) 11: →17 ¬Buys(tim, p) ¬Pumpkin(p) 16: ¬∧18 Eats(tim, p) Carves(tim, p) 16: ∨

6 10 9 10 15 13

all columns contain a clash

ϕ is unsatisfiable

premises imply conjecture

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 115 / 120

Example: Halloween tableau (cont’)

6 Child(tim)9 Buys(tim, p)10 Pumpkin(p)11 (Buys(tim, p) ∧ Pumpkin(p)) → (Eats(tim, p) ∨ Carves(tim, p))12 Child(tim) → (Pumpkin(p) → ¬Eats(tim, p))13 ¬Carves(tim, p)14 ¬Child(tim) Pumpkin(p) → ¬Eats(tim, p) 12: →15 ¬Pumpkin(p) ¬Eats(tim, p) 14: →

16 ¬(Buys(tim, p) ∧ Pumpkin(p)) Eats(tim, p) ∨ Carves(tim, p) 11: →17 ¬Buys(tim, p) ¬Pumpkin(p) 16: ¬∧18 Eats(tim, p) Carves(tim, p) 16: ∨

6 10 9 10 15 13

all columns contain a clash

ϕ is unsatisfiable

premises imply conjecture

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 115 / 120

Example: Halloween tableau (cont’)

6 Child(tim)9 Buys(tim, p)10 Pumpkin(p)11 (Buys(tim, p) ∧ Pumpkin(p)) → (Eats(tim, p) ∨ Carves(tim, p))12 Child(tim) → (Pumpkin(p) → ¬Eats(tim, p))13 ¬Carves(tim, p)14 ¬Child(tim) Pumpkin(p) → ¬Eats(tim, p) 12: →15 ¬Pumpkin(p) ¬Eats(tim, p) 14: →16 ¬(Buys(tim, p) ∧ Pumpkin(p)) Eats(tim, p) ∨ Carves(tim, p) 11: →

17 ¬Buys(tim, p) ¬Pumpkin(p) 16: ¬∧18 Eats(tim, p) Carves(tim, p) 16: ∨

6 10 9 10 15 13

all columns contain a clash

ϕ is unsatisfiable

premises imply conjecture

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 115 / 120

Example: Halloween tableau (cont’)

6 Child(tim)9 Buys(tim, p)10 Pumpkin(p)11 (Buys(tim, p) ∧ Pumpkin(p)) → (Eats(tim, p) ∨ Carves(tim, p))12 Child(tim) → (Pumpkin(p) → ¬Eats(tim, p))13 ¬Carves(tim, p)14 ¬Child(tim) Pumpkin(p) → ¬Eats(tim, p) 12: →15 ¬Pumpkin(p) ¬Eats(tim, p) 14: →16 ¬(Buys(tim, p) ∧ Pumpkin(p)) Eats(tim, p) ∨ Carves(tim, p) 11: →17 ¬Buys(tim, p) ¬Pumpkin(p) 16: ¬∧

18 Eats(tim, p) Carves(tim, p) 16: ∨ 6 10 9 10 15 13

all columns contain a clash

ϕ is unsatisfiable

premises imply conjecture

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 115 / 120

Example: Halloween tableau (cont’)

6 Child(tim)9 Buys(tim, p)10 Pumpkin(p)11 (Buys(tim, p) ∧ Pumpkin(p)) → (Eats(tim, p) ∨ Carves(tim, p))12 Child(tim) → (Pumpkin(p) → ¬Eats(tim, p))13 ¬Carves(tim, p)14 ¬Child(tim) Pumpkin(p) → ¬Eats(tim, p) 12: →15 ¬Pumpkin(p) ¬Eats(tim, p) 14: →16 ¬(Buys(tim, p) ∧ Pumpkin(p)) Eats(tim, p) ∨ Carves(tim, p) 11: →17 ¬Buys(tim, p) ¬Pumpkin(p) 16: ¬∧18 Eats(tim, p) Carves(tim, p) 16: ∨

6 10 9 10 15 13

all columns contain a clash

ϕ is unsatisfiable

premises imply conjecture

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 115 / 120

Example: Halloween tableau (cont’)

6 Child(tim)9 Buys(tim, p)10 Pumpkin(p)11 (Buys(tim, p) ∧ Pumpkin(p)) → (Eats(tim, p) ∨ Carves(tim, p))12 Child(tim) → (Pumpkin(p) → ¬Eats(tim, p))13 ¬Carves(tim, p)14 ¬Child(tim) Pumpkin(p) → ¬Eats(tim, p) 12: →15 ¬Pumpkin(p) ¬Eats(tim, p) 14: →16 ¬(Buys(tim, p) ∧ Pumpkin(p)) Eats(tim, p) ∨ Carves(tim, p) 11: →17 ¬Buys(tim, p) ¬Pumpkin(p) 16: ¬∧18 Eats(tim, p) Carves(tim, p) 16: ∨

6

10 9 10 15 13

all columns contain a clash

ϕ is unsatisfiable

premises imply conjecture

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 115 / 120

Example: Halloween tableau (cont’)

6 Child(tim)9 Buys(tim, p)10 Pumpkin(p)11 (Buys(tim, p) ∧ Pumpkin(p)) → (Eats(tim, p) ∨ Carves(tim, p))12 Child(tim) → (Pumpkin(p) → ¬Eats(tim, p))13 ¬Carves(tim, p)14 ¬Child(tim) Pumpkin(p) → ¬Eats(tim, p) 12: →15 ¬Pumpkin(p) ¬Eats(tim, p) 14: →16 ¬(Buys(tim, p) ∧ Pumpkin(p)) Eats(tim, p) ∨ Carves(tim, p) 11: →17 ¬Buys(tim, p) ¬Pumpkin(p) 16: ¬∧18 Eats(tim, p) Carves(tim, p) 16: ∨

6 10

9 10 15 13

all columns contain a clash

ϕ is unsatisfiable

premises imply conjecture

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 115 / 120

Example: Halloween tableau (cont’)

6 Child(tim)9 Buys(tim, p)10 Pumpkin(p)11 (Buys(tim, p) ∧ Pumpkin(p)) → (Eats(tim, p) ∨ Carves(tim, p))12 Child(tim) → (Pumpkin(p) → ¬Eats(tim, p))13 ¬Carves(tim, p)14 ¬Child(tim) Pumpkin(p) → ¬Eats(tim, p) 12: →15 ¬Pumpkin(p) ¬Eats(tim, p) 14: →16 ¬(Buys(tim, p) ∧ Pumpkin(p)) Eats(tim, p) ∨ Carves(tim, p) 11: →17 ¬Buys(tim, p) ¬Pumpkin(p) 16: ¬∧18 Eats(tim, p) Carves(tim, p) 16: ∨

6 10 9

10 15 13

all columns contain a clash

ϕ is unsatisfiable

premises imply conjecture

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 115 / 120

Example: Halloween tableau (cont’)

6 Child(tim)9 Buys(tim, p)10 Pumpkin(p)11 (Buys(tim, p) ∧ Pumpkin(p)) → (Eats(tim, p) ∨ Carves(tim, p))12 Child(tim) → (Pumpkin(p) → ¬Eats(tim, p))13 ¬Carves(tim, p)14 ¬Child(tim) Pumpkin(p) → ¬Eats(tim, p) 12: →15 ¬Pumpkin(p) ¬Eats(tim, p) 14: →16 ¬(Buys(tim, p) ∧ Pumpkin(p)) Eats(tim, p) ∨ Carves(tim, p) 11: →17 ¬Buys(tim, p) ¬Pumpkin(p) 16: ¬∧18 Eats(tim, p) Carves(tim, p) 16: ∨

6 10 9 10

15 13

all columns contain a clash

ϕ is unsatisfiable

premises imply conjecture

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 115 / 120

Example: Halloween tableau (cont’)

6 Child(tim)9 Buys(tim, p)10 Pumpkin(p)11 (Buys(tim, p) ∧ Pumpkin(p)) → (Eats(tim, p) ∨ Carves(tim, p))12 Child(tim) → (Pumpkin(p) → ¬Eats(tim, p))13 ¬Carves(tim, p)14 ¬Child(tim) Pumpkin(p) → ¬Eats(tim, p) 12: →15 ¬Pumpkin(p) ¬Eats(tim, p) 14: →16 ¬(Buys(tim, p) ∧ Pumpkin(p)) Eats(tim, p) ∨ Carves(tim, p) 11: →17 ¬Buys(tim, p) ¬Pumpkin(p) 16: ¬∧18 Eats(tim, p) Carves(tim, p) 16: ∨

6 10 9 10 15

13

all columns contain a clash

ϕ is unsatisfiable

premises imply conjecture

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 115 / 120

Example: Halloween tableau (cont’)

6 Child(tim)9 Buys(tim, p)10 Pumpkin(p)11 (Buys(tim, p) ∧ Pumpkin(p)) → (Eats(tim, p) ∨ Carves(tim, p))12 Child(tim) → (Pumpkin(p) → ¬Eats(tim, p))13 ¬Carves(tim, p)14 ¬Child(tim) Pumpkin(p) → ¬Eats(tim, p) 12: →15 ¬Pumpkin(p) ¬Eats(tim, p) 14: →16 ¬(Buys(tim, p) ∧ Pumpkin(p)) Eats(tim, p) ∨ Carves(tim, p) 11: →17 ¬Buys(tim, p) ¬Pumpkin(p) 16: ¬∧18 Eats(tim, p) Carves(tim, p) 16: ∨

6 10 9 10 15 13

all columns contain a clash

ϕ is unsatisfiable

premises imply conjecture

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 115 / 120

Example: Halloween tableau (cont’)

6 Child(tim)9 Buys(tim, p)10 Pumpkin(p)11 (Buys(tim, p) ∧ Pumpkin(p)) → (Eats(tim, p) ∨ Carves(tim, p))12 Child(tim) → (Pumpkin(p) → ¬Eats(tim, p))13 ¬Carves(tim, p)14 ¬Child(tim) Pumpkin(p) → ¬Eats(tim, p) 12: →15 ¬Pumpkin(p) ¬Eats(tim, p) 14: →16 ¬(Buys(tim, p) ∧ Pumpkin(p)) Eats(tim, p) ∨ Carves(tim, p) 11: →17 ¬Buys(tim, p) ¬Pumpkin(p) 16: ¬∧18 Eats(tim, p) Carves(tim, p) 16: ∨

6 10 9 10 15 13

all columns contain a clash

ϕ is unsatisfiable

premises imply conjecture

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 115 / 120

Example: Halloween tableau (cont’)

6 Child(tim)9 Buys(tim, p)10 Pumpkin(p)11 (Buys(tim, p) ∧ Pumpkin(p)) → (Eats(tim, p) ∨ Carves(tim, p))12 Child(tim) → (Pumpkin(p) → ¬Eats(tim, p))13 ¬Carves(tim, p)14 ¬Child(tim) Pumpkin(p) → ¬Eats(tim, p) 12: →15 ¬Pumpkin(p) ¬Eats(tim, p) 14: →16 ¬(Buys(tim, p) ∧ Pumpkin(p)) Eats(tim, p) ∨ Carves(tim, p) 11: →17 ¬Buys(tim, p) ¬Pumpkin(p) 16: ¬∧18 Eats(tim, p) Carves(tim, p) 16: ∨

6 10 9 10 15 13

all columns contain a clash

ϕ is unsatisfiable

premises imply conjecture

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 115 / 120

Exercise: First-order tableau

Prove that John does not have any mice using a tableau.

ϕ = ∀x(D(x)→ HAN(x)) ∧∀x(∃y(H(x, y) ∧ C(y))→ ¬∃z(H(x, z) ∧M(z))) ∧∀x(L(x)→ ¬∃y(H(x, y) ∧HAN(y))) ∧∃x(H(j, x) ∧ (C(x) ∨D(x))) ∧¬(L(j)→ ¬∃x(H(j, x) ∧M(x)))

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 116 / 120

Problems with naive tableau algorithm

efficiency depends highly on choice of terms for ∀-rule

we intuitively used the right constants in our examplesalgorithm needs to try all possible combinationsassume a vocabulary with 4 constant symbols a formula with 5universally quantified variables: 45 = 1024 possible applicationsas soon as function symbols are available, the number is infinite

heuristics: start with ground terms that appear in other atoms

modify algorithm itself: tableau algorithm with unification

delay substitutionuse unification to find substition that leads to a clash

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 117 / 120

Problems with naive tableau algorithm

efficiency depends highly on choice of terms for ∀-rule

we intuitively used the right constants in our examples

algorithm needs to try all possible combinationsassume a vocabulary with 4 constant symbols a formula with 5universally quantified variables: 45 = 1024 possible applicationsas soon as function symbols are available, the number is infinite

heuristics: start with ground terms that appear in other atoms

modify algorithm itself: tableau algorithm with unification

delay substitutionuse unification to find substition that leads to a clash

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 117 / 120

Problems with naive tableau algorithm

efficiency depends highly on choice of terms for ∀-rule

we intuitively used the right constants in our examplesalgorithm needs to try all possible combinations

assume a vocabulary with 4 constant symbols a formula with 5universally quantified variables: 45 = 1024 possible applicationsas soon as function symbols are available, the number is infinite

heuristics: start with ground terms that appear in other atoms

modify algorithm itself: tableau algorithm with unification

delay substitutionuse unification to find substition that leads to a clash

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 117 / 120

Problems with naive tableau algorithm

efficiency depends highly on choice of terms for ∀-rule

we intuitively used the right constants in our examplesalgorithm needs to try all possible combinationsassume a vocabulary with 4 constant symbols a formula with 5universally quantified variables: 45 = 1024 possible applications

as soon as function symbols are available, the number is infinite

heuristics: start with ground terms that appear in other atoms

modify algorithm itself: tableau algorithm with unification

delay substitutionuse unification to find substition that leads to a clash

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 117 / 120

Problems with naive tableau algorithm

efficiency depends highly on choice of terms for ∀-rule

we intuitively used the right constants in our examplesalgorithm needs to try all possible combinationsassume a vocabulary with 4 constant symbols a formula with 5universally quantified variables: 45 = 1024 possible applicationsas soon as function symbols are available, the number is infinite

heuristics: start with ground terms that appear in other atoms

modify algorithm itself: tableau algorithm with unification

delay substitutionuse unification to find substition that leads to a clash

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 117 / 120

Problems with naive tableau algorithm

efficiency depends highly on choice of terms for ∀-rule

we intuitively used the right constants in our examplesalgorithm needs to try all possible combinationsassume a vocabulary with 4 constant symbols a formula with 5universally quantified variables: 45 = 1024 possible applicationsas soon as function symbols are available, the number is infinite

heuristics: start with ground terms that appear in other atoms

modify algorithm itself: tableau algorithm with unification

delay substitutionuse unification to find substition that leads to a clash

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 117 / 120

Problems with naive tableau algorithm

efficiency depends highly on choice of terms for ∀-rule

we intuitively used the right constants in our examplesalgorithm needs to try all possible combinationsassume a vocabulary with 4 constant symbols a formula with 5universally quantified variables: 45 = 1024 possible applicationsas soon as function symbols are available, the number is infinite

heuristics: start with ground terms that appear in other atoms

modify algorithm itself: tableau algorithm with unification

delay substitutionuse unification to find substition that leads to a clash

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 117 / 120

Problems with naive tableau algorithm

efficiency depends highly on choice of terms for ∀-rule

we intuitively used the right constants in our examplesalgorithm needs to try all possible combinationsassume a vocabulary with 4 constant symbols a formula with 5universally quantified variables: 45 = 1024 possible applicationsas soon as function symbols are available, the number is infinite

heuristics: start with ground terms that appear in other atoms

modify algorithm itself: tableau algorithm with unification

delay substitution

use unification to find substition that leads to a clash

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 117 / 120

Problems with naive tableau algorithm

efficiency depends highly on choice of terms for ∀-rule

we intuitively used the right constants in our examplesalgorithm needs to try all possible combinationsassume a vocabulary with 4 constant symbols a formula with 5universally quantified variables: 45 = 1024 possible applicationsas soon as function symbols are available, the number is infinite

heuristics: start with ground terms that appear in other atoms

modify algorithm itself: tableau algorithm with unification

delay substitutionuse unification to find substition that leads to a clash

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 117 / 120

Tableau algorithm with unification

∀u If ∀xϕ(x) ∈ Sthen S := S ∪ ϕ(y) for a new variable symbol y

y is a free variable!always applicable

∃u If ∃xϕ(x) ∈ Sand there is no term t with ϕ(t) ∈ Sand ϕ contains the free variables y1, . . . , ynthen S := S ∪ ϕ(f(y1, . . . , yn)) for a new n-ary function symbol f

complex Skolem functions are needed

S If there are formulas ϕ and ψ in one branch such thatthere exists a unifier σ for the free variables with σ(ϕ) = ¬σ(ψ)then apply σ to the entire tableau

not only the current branch!we have to act as if we had used σ from the startfree variables have to be replaced everywhere

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 118 / 120

Tableau algorithm with unification

∀u If ∀xϕ(x) ∈ Sthen S := S ∪ ϕ(y) for a new variable symbol y

y is a free variable!

always applicable

∃u If ∃xϕ(x) ∈ Sand there is no term t with ϕ(t) ∈ Sand ϕ contains the free variables y1, . . . , ynthen S := S ∪ ϕ(f(y1, . . . , yn)) for a new n-ary function symbol f

complex Skolem functions are needed

S If there are formulas ϕ and ψ in one branch such thatthere exists a unifier σ for the free variables with σ(ϕ) = ¬σ(ψ)then apply σ to the entire tableau

not only the current branch!we have to act as if we had used σ from the startfree variables have to be replaced everywhere

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 118 / 120

Tableau algorithm with unification

∀u If ∀xϕ(x) ∈ Sthen S := S ∪ ϕ(y) for a new variable symbol y

y is a free variable!always applicable

∃u If ∃xϕ(x) ∈ Sand there is no term t with ϕ(t) ∈ Sand ϕ contains the free variables y1, . . . , ynthen S := S ∪ ϕ(f(y1, . . . , yn)) for a new n-ary function symbol f

complex Skolem functions are needed

S If there are formulas ϕ and ψ in one branch such thatthere exists a unifier σ for the free variables with σ(ϕ) = ¬σ(ψ)then apply σ to the entire tableau

not only the current branch!we have to act as if we had used σ from the startfree variables have to be replaced everywhere

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 118 / 120

Tableau algorithm with unification

∀u If ∀xϕ(x) ∈ Sthen S := S ∪ ϕ(y) for a new variable symbol y

y is a free variable!always applicable

∃u If ∃xϕ(x) ∈ Sand there is no term t with ϕ(t) ∈ Sand ϕ contains the free variables y1, . . . , ynthen S := S ∪ ϕ(f(y1, . . . , yn)) for a new n-ary function symbol f

complex Skolem functions are needed

S If there are formulas ϕ and ψ in one branch such thatthere exists a unifier σ for the free variables with σ(ϕ) = ¬σ(ψ)then apply σ to the entire tableau

not only the current branch!we have to act as if we had used σ from the startfree variables have to be replaced everywhere

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 118 / 120

Tableau algorithm with unification

∀u If ∀xϕ(x) ∈ Sthen S := S ∪ ϕ(y) for a new variable symbol y

y is a free variable!always applicable

∃u If ∃xϕ(x) ∈ Sand there is no term t with ϕ(t) ∈ Sand ϕ contains the free variables y1, . . . , ynthen S := S ∪ ϕ(f(y1, . . . , yn)) for a new n-ary function symbol f

complex Skolem functions are needed

S If there are formulas ϕ and ψ in one branch such thatthere exists a unifier σ for the free variables with σ(ϕ) = ¬σ(ψ)then apply σ to the entire tableau

not only the current branch!we have to act as if we had used σ from the startfree variables have to be replaced everywhere

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 118 / 120

Tableau algorithm with unification

∀u If ∀xϕ(x) ∈ Sthen S := S ∪ ϕ(y) for a new variable symbol y

y is a free variable!always applicable

∃u If ∃xϕ(x) ∈ Sand there is no term t with ϕ(t) ∈ Sand ϕ contains the free variables y1, . . . , ynthen S := S ∪ ϕ(f(y1, . . . , yn)) for a new n-ary function symbol f

complex Skolem functions are needed

S If there are formulas ϕ and ψ in one branch such thatthere exists a unifier σ for the free variables with σ(ϕ) = ¬σ(ψ)then apply σ to the entire tableau

not only the current branch!we have to act as if we had used σ from the startfree variables have to be replaced everywhere

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 118 / 120

Tableau algorithm with unification

∀u If ∀xϕ(x) ∈ Sthen S := S ∪ ϕ(y) for a new variable symbol y

y is a free variable!always applicable

∃u If ∃xϕ(x) ∈ Sand there is no term t with ϕ(t) ∈ Sand ϕ contains the free variables y1, . . . , ynthen S := S ∪ ϕ(f(y1, . . . , yn)) for a new n-ary function symbol f

complex Skolem functions are needed

S If there are formulas ϕ and ψ in one branch such thatthere exists a unifier σ for the free variables with σ(ϕ) = ¬σ(ψ)then apply σ to the entire tableau

not only the current branch!

we have to act as if we had used σ from the startfree variables have to be replaced everywhere

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 118 / 120

Tableau algorithm with unification

∀u If ∀xϕ(x) ∈ Sthen S := S ∪ ϕ(y) for a new variable symbol y

y is a free variable!always applicable

∃u If ∃xϕ(x) ∈ Sand there is no term t with ϕ(t) ∈ Sand ϕ contains the free variables y1, . . . , ynthen S := S ∪ ϕ(f(y1, . . . , yn)) for a new n-ary function symbol f

complex Skolem functions are needed

S If there are formulas ϕ and ψ in one branch such thatthere exists a unifier σ for the free variables with σ(ϕ) = ¬σ(ψ)then apply σ to the entire tableau

not only the current branch!we have to act as if we had used σ from the start

free variables have to be replaced everywhere

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 118 / 120

Tableau algorithm with unification

∀u If ∀xϕ(x) ∈ Sthen S := S ∪ ϕ(y) for a new variable symbol y

y is a free variable!always applicable

∃u If ∃xϕ(x) ∈ Sand there is no term t with ϕ(t) ∈ Sand ϕ contains the free variables y1, . . . , ynthen S := S ∪ ϕ(f(y1, . . . , yn)) for a new n-ary function symbol f

complex Skolem functions are needed

S If there are formulas ϕ and ψ in one branch such thatthere exists a unifier σ for the free variables with σ(ϕ) = ¬σ(ψ)then apply σ to the entire tableau

not only the current branch!we have to act as if we had used σ from the startfree variables have to be replaced everywhere

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 118 / 120

Example: tableau with unification

ϕ = ∀x∃y(m(x, y) ∨ f(x, y)) ∧ ∀z(¬m(c, z) ∧ ¬f(c, z))

1 ϕ

2 MM ∀x∃y(m(x, y) ∨ f(x, y)) MM 1: ∧3 ∀z(¬m(c, z) ∧ ¬f(c, z))

4 ∃y(m(r, y) ∨ f(r, y)) 2: ∀u(x/r)

5 m(r, p(r)) ∨ f(r, p(r)) 4: ∃u(y/p(r))

6 ¬m(c, s) ∧ ¬f(c, s) 3: ∀u(z/s)

7 ¬m(c, s) 6: ∧8 ¬f(c, s)

9 m(r, p(r)) f(r, p(r)) 5: ∨S ([r/c], [s/p(c)])

7 8

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 119 / 120

Example: tableau with unification

ϕ = ∀x∃y(m(x, y) ∨ f(x, y)) ∧ ∀z(¬m(c, z) ∧ ¬f(c, z))

1 ϕ

2 MM ∀x∃y(m(x, y) ∨ f(x, y)) MM 1: ∧3 ∀z(¬m(c, z) ∧ ¬f(c, z))

4 ∃y(m(r, y) ∨ f(r, y)) 2: ∀u(x/r)

5 m(r, p(r)) ∨ f(r, p(r)) 4: ∃u(y/p(r))

6 ¬m(c, s) ∧ ¬f(c, s) 3: ∀u(z/s)

7 ¬m(c, s) 6: ∧8 ¬f(c, s)

9 m(r, p(r)) f(r, p(r)) 5: ∨S ([r/c], [s/p(c)])

7 8

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 119 / 120

Example: tableau with unification

ϕ = ∀x∃y(m(x, y) ∨ f(x, y)) ∧ ∀z(¬m(c, z) ∧ ¬f(c, z))

1 ϕ

2 MM ∀x∃y(m(x, y) ∨ f(x, y)) MM 1: ∧3 ∀z(¬m(c, z) ∧ ¬f(c, z))

4 ∃y(m(r, y) ∨ f(r, y)) 2: ∀u(x/r)

5 m(r, p(r)) ∨ f(r, p(r)) 4: ∃u(y/p(r))

6 ¬m(c, s) ∧ ¬f(c, s) 3: ∀u(z/s)

7 ¬m(c, s) 6: ∧8 ¬f(c, s)

9 m(r, p(r)) f(r, p(r)) 5: ∨S ([r/c], [s/p(c)])

7 8

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 119 / 120

Example: tableau with unification

ϕ = ∀x∃y(m(x, y) ∨ f(x, y)) ∧ ∀z(¬m(c, z) ∧ ¬f(c, z))

1 ϕ

2 MM ∀x∃y(m(x, y) ∨ f(x, y)) MM 1: ∧3 ∀z(¬m(c, z) ∧ ¬f(c, z))

4 ∃y(m(r, y) ∨ f(r, y)) 2: ∀u(x/r)

5 m(r, p(r)) ∨ f(r, p(r)) 4: ∃u(y/p(r))

6 ¬m(c, s) ∧ ¬f(c, s) 3: ∀u(z/s)

7 ¬m(c, s) 6: ∧8 ¬f(c, s)

9 m(r, p(r)) f(r, p(r)) 5: ∨S ([r/c], [s/p(c)])

7 8

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 119 / 120

Example: tableau with unification

ϕ = ∀x∃y(m(x, y) ∨ f(x, y)) ∧ ∀z(¬m(c, z) ∧ ¬f(c, z))

1 ϕ

2 MM ∀x∃y(m(x, y) ∨ f(x, y)) MM 1: ∧3 ∀z(¬m(c, z) ∧ ¬f(c, z))

4 ∃y(m(r, y) ∨ f(r, y)) 2: ∀u(x/r)

5 m(r, p(r)) ∨ f(r, p(r)) 4: ∃u(y/p(r))

6 ¬m(c, s) ∧ ¬f(c, s) 3: ∀u(z/s)

7 ¬m(c, s) 6: ∧8 ¬f(c, s)

9 m(r, p(r)) f(r, p(r)) 5: ∨S ([r/c], [s/p(c)])

7 8

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 119 / 120

Example: tableau with unification

ϕ = ∀x∃y(m(x, y) ∨ f(x, y)) ∧ ∀z(¬m(c, z) ∧ ¬f(c, z))

1 ϕ

2 MM ∀x∃y(m(x, y) ∨ f(x, y)) MM 1: ∧3 ∀z(¬m(c, z) ∧ ¬f(c, z))

4 ∃y(m(r, y) ∨ f(r, y)) 2: ∀u(x/r)

5 m(r, p(r)) ∨ f(r, p(r)) 4: ∃u(y/p(r))

6 ¬m(c, s) ∧ ¬f(c, s) 3: ∀u(z/s)

7 ¬m(c, s) 6: ∧8 ¬f(c, s)

9 m(r, p(r)) f(r, p(r)) 5: ∨S ([r/c], [s/p(c)])

7 8

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 119 / 120

Example: tableau with unification

ϕ = ∀x∃y(m(x, y) ∨ f(x, y)) ∧ ∀z(¬m(c, z) ∧ ¬f(c, z))

1 ϕ

2 MM ∀x∃y(m(x, y) ∨ f(x, y)) MM 1: ∧3 ∀z(¬m(c, z) ∧ ¬f(c, z))

4 ∃y(m(r, y) ∨ f(r, y)) 2: ∀u(x/r)

5 m(r, p(r)) ∨ f(r, p(r)) 4: ∃u(y/p(r))

6 ¬m(c, s) ∧ ¬f(c, s) 3: ∀u(z/s)

7 ¬m(c, s) 6: ∧8 ¬f(c, s)

9 m(r, p(r)) f(r, p(r)) 5: ∨S ([r/c], [s/p(c)])

7 8

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 119 / 120

Example: tableau with unification

ϕ = ∀x∃y(m(x, y) ∨ f(x, y)) ∧ ∀z(¬m(c, z) ∧ ¬f(c, z))

1 ϕ

2 MM ∀x∃y(m(x, y) ∨ f(x, y)) MM 1: ∧3 ∀z(¬m(c, z) ∧ ¬f(c, z))

4 ∃y(m(r, y) ∨ f(r, y)) 2: ∀u(x/r)

5 m(r, p(r)) ∨ f(r, p(r)) 4: ∃u(y/p(r))

6 ¬m(c, s) ∧ ¬f(c, s) 3: ∀u(z/s)

7 ¬m(c, s) 6: ∧8 ¬f(c, s)

9 m(r, p(r)) f(r, p(r)) 5: ∨

S ([r/c], [s/p(c)])

7 8

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 119 / 120

Example: tableau with unification

ϕ = ∀x∃y(m(x, y) ∨ f(x, y)) ∧ ∀z(¬m(c, z) ∧ ¬f(c, z))

1 ϕ

2 MM ∀x∃y(m(x, y) ∨ f(x, y)) MM 1: ∧3 ∀z(¬m(c, z) ∧ ¬f(c, z))

4 ∃y(m(r, y) ∨ f(r, y)) 2: ∀u(x/r)

5 m(r, p(r)) ∨ f(r, p(r)) 4: ∃u(y/p(r))

6 ¬m(c, s) ∧ ¬f(c, s) 3: ∀u(z/s)

7 ¬m(c, s) 6: ∧8 ¬f(c, s)

9 m(r, p(r)) f(r, p(r)) 5: ∨S ([r/c], [s/p(c)])

7 8

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 119 / 120

Example: tableau with unification

ϕ = ∀x∃y(m(x, y) ∨ f(x, y)) ∧ ∀z(¬m(c, z) ∧ ¬f(c, z))

1 ϕ

2 MM ∀x∃y(m(x, y) ∨ f(x, y)) MM 1: ∧3 ∀z(¬m(c, z) ∧ ¬f(c, z))

4 ∃y(m(c, y) ∨ f(c, y)) 2: ∀u(x/r)

5 m(c, p(c)) ∨ f(c, p(c)) 4: ∃u(y/p(r))

6 ¬m(c, s) ∧ ¬f(c, s) 3: ∀u(z/s)

7 ¬m(c, s) 6: ∧8 ¬f(c, s)

9 m(c, p(c)) f(c, p(c)) 5: ∨S ([r/c], [s/p(c)])

7 8

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 119 / 120

Example: tableau with unification

ϕ = ∀x∃y(m(x, y) ∨ f(x, y)) ∧ ∀z(¬m(c, z) ∧ ¬f(c, z))

1 ϕ

2 MM ∀x∃y(m(x, y) ∨ f(x, y)) MM 1: ∧3 ∀z(¬m(c, z) ∧ ¬f(c, z))

4 ∃y(m(c, y) ∨ f(c, y)) 2: ∀u(x/r)

5 m(c, p(c)) ∨ f(c, p(c)) 4: ∃u(y/p(r))

6 ¬m(c, p(c)) ∧ ¬f(c, p(c)) 3: ∀u(z/s)

7 ¬m(c, p(c)) 6: ∧8 ¬f(c, p(c))

9 m(c, p(c)) f(c, p(c)) 5: ∨S ([r/c], [s/p(c)])

7 8

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 119 / 120

Example: tableau with unification

ϕ = ∀x∃y(m(x, y) ∨ f(x, y)) ∧ ∀z(¬m(c, z) ∧ ¬f(c, z))

1 ϕ

2 MM ∀x∃y(m(x, y) ∨ f(x, y)) MM 1: ∧3 ∀z(¬m(c, z) ∧ ¬f(c, z))

4 ∃y(m(c, y) ∨ f(c, y)) 2: ∀u(x/r)

5 m(c, p(c)) ∨ f(c, p(c)) 4: ∃u(y/p(r))

6 ¬m(c, p(c)) ∧ ¬f(c, p(c)) 3: ∀u(z/s)

7 ¬m(c, p(c)) 6: ∧8 ¬f(c, p(c))

9 m(c, p(c)) f(c, p(c)) 5: ∨S ([r/c], [s/p(c)])

7

8

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 119 / 120

Example: tableau with unification

ϕ = ∀x∃y(m(x, y) ∨ f(x, y)) ∧ ∀z(¬m(c, z) ∧ ¬f(c, z))

1 ϕ

2 MM ∀x∃y(m(x, y) ∨ f(x, y)) MM 1: ∧3 ∀z(¬m(c, z) ∧ ¬f(c, z))

4 ∃y(m(c, y) ∨ f(c, y)) 2: ∀u(x/r)

5 m(c, p(c)) ∨ f(c, p(c)) 4: ∃u(y/p(r))

6 ¬m(c, p(c)) ∧ ¬f(c, p(c)) 3: ∀u(z/s)

7 ¬m(c, p(c)) 6: ∧8 ¬f(c, p(c))

9 m(c, p(c)) f(c, p(c)) 5: ∨S ([r/c], [s/p(c)])

7 8

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 119 / 120

Propositional and first-order logic: summary

PL: ∧,∨,¬,→,↔limited expressivity

resolution and TA terminate

best algorithm depends on context

FOL: also ∀, ∃, variables, functions, relations

higher expressivity

both resolution and TA can be adapted

reasoning more complex

Skolemisationfactorsunification

termination cannot be ensured

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 120 / 120

Propositional and first-order logic: summary

PL: ∧,∨,¬,→,↔limited expressivity

resolution and TA terminate

best algorithm depends on context

FOL: also ∀, ∃, variables, functions, relations

higher expressivity

both resolution and TA can be adapted

reasoning more complex

Skolemisationfactorsunification

termination cannot be ensured

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 120 / 120

Propositional and first-order logic: summary

PL: ∧,∨,¬,→,↔limited expressivity

resolution and TA terminate

best algorithm depends on context

FOL: also ∀, ∃, variables, functions, relations

higher expressivity

both resolution and TA can be adapted

reasoning more complex

Skolemisationfactorsunification

termination cannot be ensured

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 120 / 120

Propositional and first-order logic: summary

PL: ∧,∨,¬,→,↔limited expressivity

resolution and TA terminate

best algorithm depends on context

FOL: also ∀, ∃, variables, functions, relations

higher expressivity

both resolution and TA can be adapted

reasoning more complex

Skolemisationfactorsunification

termination cannot be ensured

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 120 / 120

Propositional and first-order logic: summary

PL: ∧,∨,¬,→,↔limited expressivity

resolution and TA terminate

best algorithm depends on context

FOL: also ∀, ∃, variables, functions, relations

higher expressivity

both resolution and TA can be adapted

reasoning more complex

Skolemisationfactorsunification

termination cannot be ensured

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 120 / 120

Propositional and first-order logic: summary

PL: ∧,∨,¬,→,↔limited expressivity

resolution and TA terminate

best algorithm depends on context

FOL: also ∀, ∃, variables, functions, relations

higher expressivity

both resolution and TA can be adapted

reasoning more complex

Skolemisationfactorsunification

termination cannot be ensured

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 120 / 120

Propositional and first-order logic: summary

PL: ∧,∨,¬,→,↔limited expressivity

resolution and TA terminate

best algorithm depends on context

FOL: also ∀, ∃, variables, functions, relations

higher expressivity

both resolution and TA can be adapted

reasoning more complex

Skolemisationfactorsunification

termination cannot be ensured

Jan Hladik (DHBW Stuttgart) Logic Wintersemester 2015/16 120 / 120