Functional Verification - Solved Problem Set 7 | CEN 6070, Assignments of Engineering

Material Type: Assignment; Class: SOFTWARE TEST/VERIFI; Subject: COMPUTER SOFTWARE ENGINEERING; University: University of Florida; Term: Unknown 1989;

Typology: Assignments

Pre 2010

Uploaded on 09/17/2009

koofers-user-ilp-1
koofers-user-ilp-1 🇺🇸

10 documents

1 / 6

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Software Testing and Verification
Problem Set 7: Functional Verification – Solution Notes
1. p1 = (x>=1 -> x,z := 1,z(x-1)! | true -> I)
p2 = (x>=1 -> x,z := 0,zx! | true -> I)
p3 = (x>=1 -> x,z := 1,zx!)
P1 P2 P3
--- --- ---
f1 | N | N | C |
--- --- ---
f2 | C | N | N |
--- --- ---
f3 | N | C | N |
--- --- ---
2. P = S1; S2; S3 where S1 is y := yx, S2 is x := x+2, and S3 is y := yx
s1 = x,y := x,yx
s2 = x,y := x+2,y
s3 = x,y := x,yx
Therefore, P = s3 o s2 o s1. Does f = s3 o s2 o s1?
= (x,y := x,yx) o (x,y := x+2,y) o (x,y := x,yx)
= (x,y := x,yx) o (x,y := x+2,yx)
= (x,y := x+2,yx(x+2))
= (x,y := x+2, y(x2+2x)
= f
3. t = (a<-5 -> a, b := a+b, b-a | true -> a, b := b-a, a+b)
and T is:
if a<-5 then
a := a+b
b := 2b–a
else
a := b-a
b := 2b–a
end_if_else
s1 = [S1] = (a,b := a,2b-a) o (a,b := a+b,b)
= (a,b := a+b, 2b-(a+b))
= (a,b := a+b, b-a)
s2 = [S2] = (a,b := a,2b-a) o (a,b := b-a,b)
= (a,b := b-a, 2b-(b-a))
S1
S2
pf3
pf4
pf5

Partial preview of the text

Download Functional Verification - Solved Problem Set 7 | CEN 6070 and more Assignments Engineering in PDF only on Docsity!

Software Testing and Verification

Problem Set 7: Functional Verification – Solution Notes

1. p1 = (x>=1 -> x,z := 1,z(x-1)! | true -> I)

p2 = (x>=1 -> x,z := 0,zx! | true -> I) p3 = (x>=1 -> x,z := 1,zx!) P1 P2 P


f1 | N | N | C |


f2 | C | N | N |


f3 | N | C | N |


  1. P = S1; S2; S3 where S1 is y := yx, S2 is x := x+2, and S3 is y := yx s1 = x,y := x,yx s2 = x,y := x+2,y s3 = x,y := x,yx Therefore, P = s3 o s2 o s1. Does f = s3 o s2 o s1? = (x,y := x,yx) o (x,y := x+2,y) o (x,y := x,yx) = (x,y := x,yx) o (x,y := x+2,yx) = (x,y := x+2,yx(x+2)) = (x,y := x+2, y(x^2 +2x)

= f 

  1. t = (a<-5 -> a, b := a+b, b-a | true -> a, b := b-a, a+b) and T is: if a<-5 then a := a+b b := 2b–a else a := b-a b := 2b–a end_if_else s1 = [S1] = (a,b := a,2b-a) o (a,b := a+b,b) = (a,b := a+b, 2b-(a+b)) = (a,b := a+b, b-a) s2 = [S2] = (a,b := a,2b-a) o (a,b := b-a,b) = (a,b := b-a, 2b-(b-a))

S

S

= (a,b := b-a, b+a) Does a<-5 => (t = s1)? a<-5 => s1 = (a,b := a+b, b-a)

a<-5 => t = (a, b := a+b, b-a) 

Does a≥-5 => (t = s2)? a≥-5 => s2 = (a,b := b-a, b+a)

a≥-5 => t = (a, b := b-a, a+b) 

  1. temp := x x := y y := temp if temp>z then y := z z := temp if x>y then temp := x x := y y := temp end_if end_if [P] = [S2] o [S1] [S2] = (temp>z -> [S2,2] o [S2,1] | temp≤z -> I) [S2,2] = (x>y -> [S2,2,1] | x≤y -> I) [S2,2,1] = (x,y,z,temp := y,x,z,x) [S2,2] = (x>y -> (x,y,z,temp := y,x,z,x) | x≤y -> I) [S2,1] = (x,y,z,temp := x,z,temp,temp) [S2] = (temp>z -> (x>y -> (x,y,z,temp := y,x,z,x) | x≤y -> I) o (x,y,z,temp := x,z,temp,temp) | temp≤z -> I) [S1] = (x,y,z,temp := y,x,z,x) [P] = (temp>z -> (x>y -> (x,y,z,temp := y,x,z,x) | x≤y -> I) o (x,y,z,temp := x,z,temp,temp)

S2,

S

S2,

S

S2,2,

=> a o g = a o (x, y, b := x+2, y+1, b)

and since x<y+b => x≤y+b after g ,

= (x, y, b := -x+2y+2b, -x+2y+b, b)

o (x, y, b := x+2, y+1, b) 

= (x, y, b := -(x+2)+2(y+1)+2b,

-(x+2)+2(y+1)+b, b)

= (x, y, b := -x+2y+2b, -x+2y+b, b)

Does x≥y+b => (a = I)? Yes, by definition of a. (Show this!) 

y := 1

k := 0

repeat

y := y 2

k := k+

until k=n

C = C1; C

c1 = [C1] = (y,k := 1,0) by observation c2 = [C2] = (k<n -> y,k := y2n-k,n) by hypothesis Hypothesized c = [C] = c2 o c1 = (k<n -> y,k := y2n-k,n) o (y,k := 1,0) = (0<n -> y,k := 2 n,n) Proof that c2 = [C2] = (k<n -> y,k := y2n-k,n): g = (y,k := 2y, k+1) by observation Does term (c2, C2 )? c2 is defined for k<n. The Method of Well-Founded Sets can be used to prove C2 terminates when k<n, initially, based on the measure k. Does ( p o g) Þ (c2 = g)? (k=n) o (y,k := 2y, k+1) => k 0 =n-1 => ( c2 = y,k := y2n-k,n = y,k := 2y,k+1)

=> ( g = y,k := 2y, k+1) Does ¬( p o g) Þ (c2 = c2 o g )? (k≠n) o (y,k := 2y, k+1) => k 0 ≠n-1 => k 0 >n-1 V k 0 <n-

C

C2 G

Case 1: Does k 0 >n-1 Þ (c2 = c2 o g )? k 0 >n-1 Þ (c2 = undefined)

k 0 >n-1 Þ (c2 o g = undefined o g = undefined) Since g (k>n-1) => k>n for which c2 is undefined. Case 2: Does k 0 <n-1 Þ (c2 = c2 o g )? k 0 <n-1 Þ (c2 = y,k := y2n-k,n)

k 0 <n-1 Þ (c2 o g = (y,k := y2n-k,n) o (y,k := 2y, k+1) 

= (y,k := (2y)2n-(k+1),n) = (y,k := y2n-k,n) Since g (k 0 <n-1) => k<n for which c2 is defined.

7. a. while k<>n do y := y2; k := k+1 end_while

f = (k≤n -> y,k := y2n-k,n)

X f (X) f (X 0 )

y y2n-k^ y 02 n0-k

k n n 0

n n n 0

y2n-k^ = y 02 n0-k

n = n 0

y = y 02 (n0-k0)-(n0-k)^ = y 02 k-k

Therefore, the invariant is: y = y 02 k-k

(Note: an invariant that guarantees termination is k≤n Л y = y 02 k-k0.)

b. k := 0; y := 1; while k<>n do y := y2; k := k+1 end_while

f = (k≤n -> y,k := y2n-k,n)

h = (y,k := 1,0)

X f (X) f o h (X 0 )

y y2n-k^2 n

k n n 0

n n n 0

y2n-k^ = 2 n

n = n 0