You are on page 1of 5

I HC QUC GIA THNH PH H CH MINH

TRNG I HC BCH KHOA


KHOA KHOA HC - K THUT MY TNH

TON RI RC 2
Assignment 2

Software verification

GVHD:

Lp A01,
SV:

Nguyn An Khng
Hunh Tng Nguyn
Bi Hoi Thng
Chiu th 4
Nguyn Tun Kin - 51307060
ng Quc Tng - 51307132
L Anh Kit - 51001624
Nguyn Ngc Thanh Bnh - 51307005

TP. H CH MINH, THNG 5/2015

Trng i Hc Bch Khoa Tp.H Ch Minh


Khoa Khoa Hc v K Thut My Tnh

Mc lc
1 Problem 1: Return the
1.1 Model . . . . . . . .
1.2 Example . . . . . . .
1.3 Failure example . . .

maximum
. . . . . . .
. . . . . . .
. . . . . . .

2 Problem 2: Return the


2.1 Model . . . . . . . .
2.2 Example 1 . . . . . .
2.3 Example 2 . . . . . .
2.4 Failure example . . .

absolute
. . . . . .
. . . . . .
. . . . . .
. . . . . .

number between
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .

value of a number
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .

3 Problem 3: Find the number of real solution


3.1 Model . . . . . . . . . . . . . . . . . . . . . .
3.2 Example 1 . . . . . . . . . . . . . . . . . . . .
3.3 Example 2 . . . . . . . . . . . . . . . . . . . .
3.4 Example 3 . . . . . . . . . . . . . . . . . . . .
3.5 Failure example . . . . . . . . . . . . . . . . .
4 Problem 4: Find the maximum of
4.1 Model . . . . . . . . . . . . . . .
4.2 Example 1 . . . . . . . . . . . . .
4.3 Failure example . . . . . . . . . .

an
. .
. .
. .

5 Kt lun

Bi tp ln mn Ton Ri Rc 2 - Nin kha 2014-2015

two
. . .
. . .
. . .

any numbers
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .

2
2
2
2

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

2
2
2
2
3

function
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

3
3
3
3
3
3

numbers
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .

4
4
4
4

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

for a quadratic
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .

array/list of N
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

Trang 1/4

Trng i Hc Bch Khoa Tp.H Ch Minh


Khoa Khoa Hc v K Thut My Tnh

This report describe 6 programming problems using Propositional/ Predicate logics. All expression are in
Conjunctive Normal Form (CNF) Using SPIN tool to model check 2 problems

1
1.1

Problem 1: Return the maximum number between two any numbers


Model

P = (x > y z = x) ((x > y) z = y)


rewritten in CNF
P = (x > y z = y) ((x > y) z = x) (z = x z = y)

1.2

Example

Let x = 3, and y = 5, Q returns z = 5. We have:


P [x/3, y/5] = (3 > 5 z = 5) ((3 > 5) z = 3) (z = 3 z = 5)
= (z = 5) (z = 3 z = 5)
= (z = 5)
or
Q[z/5]  P [x/3, y/5]

1.3

Failure example

Let x = 3, and y = 5, Q returns z = 3. We have:


P [x/3, y/5] = (3 > 5 z = 5) ((3 > 5) z = 3) (z = 3 z = 5)
= (z = 5) (z = 3 z = 5)
= (z = 5)
or
Q[z/3] 2 P [x/3, y/5]

2
2.1

Problem 2: Return the absolute value of a number


Model

P = (x 0 z = x) ((x 0) z = x)
rewritten in CNF
P = (x 0 z = x) ((x 0) z = x) (z = x z = x)

2.2

Example 1

Let x = 3, Q returns z = 3. We have:


P [x/3] = (3 0 z = 3) ((3 0) z = 3) (z = 3 z = 3)
= (z = 3) (z = 3 z = 3)
= (z = 3)
or
Q[z/3]  P [x/3]

2.3

Example 2

Let x = -3, Q returns z = 3. We have:


P [x/ 3] = (3 0 z = 3) ((3 0) z = 3) (z = 3 z = 3)
= (z = 3) (z = 3 z = 3)
= (z = 3)
or
Q[z/3]  P [x/ 3]

Bi tp ln mn Ton Ri Rc 2 - Nin kha 2014-2015

Trang 2/4

Trng i Hc Bch Khoa Tp.H Ch Minh


Khoa Khoa Hc v K Thut My Tnh

2.4

Failure example

Let x = 3, Q returns z = -3. We have:


P [x/3] = (3 0 z = 3) ((3 0) z = 3) (z = 3 z = 3)
= (z = 3) (z = 3 z = 3)
= (z = 3)
or
Q[z/ 3] 2 P [x/3]

3
3.1

Problem 3: Find the number of real solution for a quadratic function


Model

Let = b2 4ac
P = ( > 0 z = 2) ( = 0 z = 1) ( < 0 z = 0)
rewritten in CNF
P = ( 6= 0 z = 1) ( 0 z = 2) ( < 0 z = 1 z = 2) ( 0 z = 0) ( > 0 z = 0 z =
1) ( = 0 z = 0 z = 2) (z = 0 z = 1 z = 2)

3.2

Example 1

Let a = 0, and b = 2, c = 1 (hence, = 0) Q returns z = 1. We have:


P [a/0, b/2, c/1] = (F z = 1) (T z = 2) (F z = 1 z = 2) (T z = 0) (F z = 0 z = 1) (T z =
0 z = 2) (z = 0 z = 1 z = 2)
= (z = 1) (z = 1 z = 2) (z = 0 z = 1) (z = 0 z = 1 z = 2)
= (z = 1)
or
Q[z/1]  P [a/0, b/2, c/1]

3.3

Example 2

Let a = 1, and b = 3, c = -1 (hence, = 13) Q returns z = 2. We have:


P [a/0, b/2, c/1] = (T z = 1) (F z = 2) (F z = 1 z = 2) (T z = 0) (T z = 0 z = 1) (F z =
0 z = 2) (z = 0 z = 1 z = 2)
= (z = 2) (z = 1 z = 2) (z = 0 z = 2) (z = 0 z = 1 z = 2)
= (z = 2)
or
Q[z/2]  P [a/1, b/3, c/ 1]

3.4

Example 3

Let a = 5, and b = 2, c = 9 (hence, = 176) Q returns z = 0. We have:


P [a/0, b/2, c/1] = (T z = 1) (T z = 2) (T z = 1 z = 2) (F z = 0) (F z = 0 z = 1) (F z =
0 z = 2) (z = 0 z = 1 z = 2)
= (z = 0) (z = 0 z = 1) (z = 0 z = 2) (z = 0 z = 1 z = 2)
= (z = 0)
or
Q[z/0]  P [a/5, b/2, c/9]

3.5

Failure example

Let a = 5, and b = 2, c = 9 (hence, = 176) Q returns z = 1. We have:


P [a/0, b/2, c/1] = (T z = 1) (T z = 2) (T z = 1 z = 2) (F z = 0) (F z = 0 z = 1) (F z =
0 z = 2) (z = 0 z = 1 z = 2)
= (z = 0) (z = 0 z = 1) (z = 0 z = 2) (z = 0 z = 1 z = 2)
= (z = 0)
or
Q[z/1] 2 P [a/5, b/2, c/9]

Bi tp ln mn Ton Ri Rc 2 - Nin kha 2014-2015

Trang 3/4

Trng i Hc Bch Khoa Tp.H Ch Minh


Khoa Khoa Hc v K Thut My Tnh

4
4.1

Problem 4: Find the maximum of an array/list of N numbers


Model

Let P(x,N) is the specification of the program to find the maximum of an array x of N elements
P (x, N ) = (x[N ] > P (x, N 1) z = x[N ]) ((x[N ] > P (x, N 1) z = P (x, N 1))
rewritten in CNF
P (x, N ) = (x[N ] > P (x, N 1) z = P (x, N 1)) ((x[N ] > P (x, N 1) z = x[N ]) (z = x[N ] z =
P (x, N 1))

4.2

Example 1

5 is the maximum of array {1, 2, 5, -9, 3, -2}. Q returns 5. We have


P (x/{1, 2, 5, 9, 3, 2}, N/5) = (F z = P (x, N 1)) (T z = x[N ]) (z = x[N ] z = P (x, N 1))
= z = P (x, N 1)
recursive call
= (F z = P (x, N 2)) (T z = x[N 1]) (z = x[N 1] z = P (x, N 2))
= z = P (x, N 2)
similarly
= z = P (x, N 3)
= (z = 5) or
Q(z = 5)  P (x/{1, 2, 5, 9, 3, 2}, N/6))

4.3

Failure example

5 is the maximum of array {1, 2, 5, -9, 3, -2}. Q returns -9. We have


P (x/{1, 2, 5, 9, 3, 2}, N/5) = (F z = P (x, N 1)) (T z = x[N ]) (z = x[N ] z = P (x, N 1))
= z = P (x, N 1)
recursive call
= (F z = P (x, N 2)) (T z = x[N 1]) (z = x[N 1] z = P (x, N 2))
= z = P (x, N 2)
similarly
= z = P (x, N 3)
= (z = 5) or
Q(z = 9) 2 P (x/{1, 2, 5, 9, 3, 2}, N/6))

Kt lun

Trong bo co ny chng ti trnh by v mt cch pht hin li v nh gi tin cy ca d liu thu thp.

Ti liu
[1] Nguyn An Khng, Hunh Tng Nguyn "Propositional Logic I & II.", Lecture Notes

Bi tp ln mn Ton Ri Rc 2 - Nin kha 2014-2015

Trang 4/4

You might also like