Download as pdf or txt
Download as pdf or txt
You are on page 1of 24

Formal Methods in Software Engineering

(FMSE)

Lecture # 6

(Lecture # 6) FMSE 1 / 24
Knowledge base example

FOL is used to express knowledge


The knowledge base is modelled to express the reasoning

The laws says that it is a crime for an American to sell


weapons to hostile nations. The country Nono, an
enemy of America, has some missiles, and all of its
missiles were sold to it by Colonel West, who is
American.

Prove that Col. West is a criminal.

(Lecture # 6) FMSE 2 / 24
Expressing Knowledge base

It is a crime for an American to sell weapons to hostile nations.

Nono ... has some missile

All of its missiles were sold to it by Colonel West

Missiles are weapons

An enemy of America counts as “hostile”

West, who is American

The country Nono, an enemy of America

(Lecture # 6) FMSE 3 / 24
Expressing Knowledge base

It is a crime for an American to sell weapons to hostile nations.


American(x) ∧ Weapon(y ) ∧ Sells(x, y , z) ∧ Hostile(z) ⇒ Criminal(x)

Nono ... has some missile


Owns(Nono, x)
Missiles(x)

All of its missiles were sold to it by Colonel West


Missile(x) ∧ Owns(Nono, x) ⇒ Sells(West, x, Nono)

Missiles are weapons


Missile(x) ⇒ Weapon(x)
(Lecture # 6) FMSE 4 / 24
Expressing Knowledge base

An enemy of America counts as “hostile


Enemy (x, America) ⇒ Hostile(x)

West, who is American


American(west)

The country Nono, an enemy of America


Enemy (Nono, America)

(Lecture # 6) FMSE 5 / 24
Inferencing

What is Forward Chaining?


Data ⇒ Decision

(Lecture # 6) FMSE 6 / 24
Forward Chaining
American(x) ∧ Weapon(y ) ∧ Sells(x, y , z) ∧ Hostile(z) ⇒ Criminal(x)

Owns(Nono, x)

Missiles(x)

Missile(x) ∧ Owns(Nono, x) ⇒ Sells(West, x, Nono)

Missile(x) ⇒ Weapon(x)

Enemy (x, America) ⇒ Hostile(x)

American(West)

Enemy (Nono, America)

(Lecture # 6) FMSE 7 / 24
Forward Chaining
American(x) ∧ Weapon(y ) ∧ Sells(x, y , z) ∧ Hostile(z) ⇒ Criminal(x)

Owns(Nono, x)

Missiles(x)

Missile(x) ∧ Owns(Nono, x) ⇒ Sells(West, x, Nono)

Missile(x) ⇒ Weapon(x)

Enemy (x, America) ⇒ Hostile(x)

American(West)

Enemy (Nono, America)

(Lecture # 6) FMSE 8 / 24
Forward Chaining
American(West) ∧ Weapon(y ) ∧ Sells(West, y , z) ∧ Hostile(z) ⇒
Criminal(x)

Owns(Nono, x)

Missiles(x)

Missile(x) ∧ Owns(Nono, x) ⇒ Sells(West, x, Nono)

Missile(x) ⇒ Weapon(x)

Enemy (x, America) ⇒ Hostile(x)

American(West)

Enemy (Nono, America)


(Lecture # 6) FMSE 9 / 24
Forward Chaining
American(West) ∧ Weapon(y ) ∧ Sells(West, y , z) ∧ Hostile(Nono) ⇒
Criminal(x)

Owns(Nono, x)

Missiles(x)

Missile(x) ∧ Owns(Nono, x) ⇒ Sells(West, x, Nono)

Missile(x) ⇒ Weapon(x)

Enemy (Nono, America) ⇒ Hostile(Nono)

American(West)

Enemy (Nono, America)


(Lecture # 6) FMSE 10 / 24
Forward Chaining
American(West) ∧ Weapon(y ) ∧ Sells(West, y , z) ∧ Hostile(Nono) ⇒
Criminal(x)

Owns(Nono, x)

Missiles(x)

Missile(x) ∧ Owns(Nono, x) ⇒ Sells(West, x, Nono)

Missile(x) ⇒ Weapon(x)

Enemy (Nono, America) ⇒ Hostile(Nono)

American(West)

Enemy (Nono, America)


(Lecture # 6) FMSE 11 / 24
Forward Chaining
American(West) ∧ Weapon(y ) ∧ Sells(West, y , z) ∧ Hostile(Nono) ⇒
Criminal(x)

Owns(Nono, x)

Missiles(x)

Missile(x) ∧ Owns(Nono, x) ⇒ Sells(West, x, Nono)

Missile(x) ⇒ Weapon(x)

Enemy (Nono, America) ⇒ Hostile(Nono)

American(West)

Enemy (Nono, America)


(Lecture # 6) FMSE 12 / 24
Backward Chaining

(Lecture # 6) FMSE 13 / 24
Backward Chaining
American(West) ∧ Weapon(y ) ∧ Sells(West, y , z) ∧ Hostile(Nono) ⇒
Criminal(x)

Owns(Nono, x)

Missiles(x)

Missile(x) ∧ Owns(Nono, x) ⇒ Sells(West, x, Nono)

Missile(x) ⇒ Weapon(x)

Enemy (Nono, America) ⇒ Hostile(Nono)

American(West)

Enemy (Nono, America)


(Lecture # 6) FMSE 14 / 24
Backward Chaining
American(West) ∧ Weapon(y ) ∧ Sells(West, y , z) ∧ Hostile(Nono) ⇒
Criminal(x)

Owns(Nono, x)

Missiles(x)

Missile(x) ∧ Owns(Nono, x) ⇒ Sells(West, x, Nono)

Missile(x) ⇒ Weapon(x)

Enemy (Nono, America) ⇒ Hostile(Nono)

American(West)

Enemy (Nono, America)


(Lecture # 6) FMSE 15 / 24
Backward Chaining
American(West) ∧ Weapon(y ) ∧ Sells(West, y , z) ∧ Hostile(Nono) ⇒
Criminal(x)

Owns(Nono, x)

Missiles(x)

Missile(x) ∧ Owns(Nono, x) ⇒ Sells(West, x, Nono)

Missile(x) ⇒ Weapon(x)

Enemy (Nono, America) ⇒ Hostile(Nono)

American(West)

Enemy (Nono, America)


(Lecture # 6) FMSE 16 / 24
Backward Chaining
American(West) ∧ Weapon(y ) ∧ Sells(West, y , z) ∧ Hostile(Nono) ⇒
Criminal(x)

Owns(Nono, x)

Missiles(x)

Missile(x) ∧ Owns(Nono, x) ⇒ Sells(West, x, Nono)

Missile(x) ⇒ Weapon(x)

Enemy (Nono, America) ⇒ Hostile(Nono)

American(West)

Enemy (Nono, America)


(Lecture # 6) FMSE 17 / 24
Backward Chaining
American(West) ∧ Weapon(y ) ∧ Sells(West, y , z) ∧ Hostile(Nono) ⇒
Criminal(x)

Owns(Nono, x)

Missiles(x)

Missile(x) ∧ Owns(Nono, x) ⇒ Sells(West, x, Nono)

Missile(x) ⇒ Weapon(x)

Enemy (Nono, America) ⇒ Hostile(Nono)

American(West)

Enemy (Nono, America)


(Lecture # 6) FMSE 18 / 24
Backward Chaining
American(West) ∧ Weapon(y ) ∧ Sells(West, y,Nono) ∧
Hostile(Nono) ⇒ Criminal(x)

Owns(Nono, x)

Missiles(x)

Missile(x) ∧ Owns(Nono, x) ⇒ Sells(West, x, Nono)

Missile(x) ⇒ Weapon(x)

Enemy (Nono, America) ⇒ Hostile(Nono)

American(West)

Enemy (Nono, America)


(Lecture # 6) FMSE 19 / 24
Backward Chaining
American(West) ∧ Weapon(y) ∧ Sells(West, y , Nono) ∧
Hostile(Nono) ⇒ Criminal(x)

Owns(Nono, x)

Missiles(x)

Missile(x) ∧ Owns(Nono, x) ⇒ Sells(West, x, Nono)

Missile(x) ⇒ Weapon(x)

Enemy (Nono, America) ⇒ Hostile(Nono)

American(West)

Enemy (Nono, America)


(Lecture # 6) FMSE 20 / 24
Backward Chaining
American(West) ∧ Weapon(y ) ∧ Sells(West, y , Nono) ∧
Hostile(Nono) ⇒ Criminal(West)

Owns(Nono, x)

Missiles(x)

Missile(x) ∧ Owns(Nono, x) ⇒ Sells(West, x, Nono)

Missile(x) ⇒ Weapon(x)

Enemy (Nono, America) ⇒ Hostile(Nono)

American(West)

Enemy (Nono, America)


(Lecture # 6) FMSE 21 / 24
Practice Questions: Translating English sentences into FOL

(Lecture # 6) FMSE 22 / 24
Limitations of FOL
First Order Logic is a richer language and very suitable to model the
realistic example scenarios. how ever, FOL has some limitations also:

There is no concept of time. How long it takes to solve the problem?

Hard to do arithmetic

FOL is semi-decidable. The problem is, its basic building blocks are
not atomic sentences rather than predicates and objects. However,
Description logic is a subset of FOL which is fully decideable.

There are infinite number of distinct interpretations and of course we


can not search an infinite number of cases. Truth table style
investigation will not work in First Order Logic.

The satisfiability problem of FOL on finite structure is undecidable.


There is no sound and complete proof system for the validity on finite
(Lecture # 6) FMSE 23 / 24
Thanks!

(Lecture # 6) FMSE 24 / 24

You might also like