Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Transformador del do while débil de Dijkstra, Resúmenes de Informática

El proceso de transformación del bucle do while débil de dijkstra, incluyendo la regla de transformación y ejemplos detallados. Se explica cómo calcular la precondición más débil (wp) para diferentes casos, donde se analiza la iteración k y se obtienen las expresiones hk(r) que permiten determinar wp(do, r). Los ejemplos abarcan cálculos de wp para diferentes condiciones y variables, mostrando el desarrollo paso a paso. Este material podría ser útil para estudiantes universitarios que estudien temas relacionados con la lógica de programación, la semántica formal y los métodos formales en informática.

Tipo: Resúmenes

2021/2022

Subido el 14/06/2024

roxana-castillo-mamani
roxana-castillo-mamani 🇧🇴

1 documento

1 / 9

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
I/2023 U.M.S.A. INF-282
Aux. Cristhian Alejandro Larico Quisbert
TRANSFORMADOR DEL DO WHILE DÉBIL DE DIJKSTRA
TRANSFORMADOR DEL WHILE
DO:
B1 S1 B2 S2 . . . Bn Sn OD
Regla de
transformación
del DO WHILE:
WP(DO
,
R) = Ǝk≥0
H
k
(R)
;
donde k
representa la
iteración
k
Para
la
iteración
0 se
t
iene:
H
0
(R)
= R (B1 B2 . . . Bn)
Para
la
iteración K
se tiene:
H
k
(R)
=
WP
(
IF
,
H
k-1
(R)
)
H0(R)
Recordemos:
P P = T
P Q ˄ P Q
P ˄ (P Q) P
P (P ˄ Q) P
pf3
pf4
pf5
pf8
pf9

Vista previa parcial del texto

¡Descarga Transformador del do while débil de Dijkstra y más Resúmenes en PDF de Informática solo en Docsity!

TRANSFORMADOR DEL DO WHILE DÉBIL DE DIJKSTRA

TRANSFORMADOR DEL WHILE

DO: B

⟶ S

∎ B

⟶ S

∎... ∎ B

n

⟶ S

n

OD

Regla de transformación del DO WHILE:

WP(DO , R) = Ǝ

k≥

H

k

(R) ; donde k representa la iteración k

Para la iteración 0 se tiene:

H

(R) = R ∧ (⌐ B

∧ ⌐ B

∧... ∧ ⌐ B

n

Para la iteración K se tiene:

H

k

(R) = WP ( IF , H

k- 1

(R) ) ∨ H

(R)

Recordemos:

P ∨ ⌐P = T

P ⟹ Q ˄ P ≡ Q

P ˄ (P ∨ Q) ≡ P

P ∨ (P ˄ Q) ≡ P

EJEMPLOS

1 .- Calcular la precondición más débil, WP (DO, R) Donde:

K: 4

DO: do i > 3 ⇒ i:= i – 3 od

R: i = 3

Solución:

WP (DO, R) = H 4 (R)

H

0

(R) = R ∧ (⌐B

∧ ⌐B

∧... ∧ ⌐B

n

H

0

(R) = i = 3 ∧ (⌐(i > 3 ))

H

0

(R) = i = 3 ∧ (i <= 3 )

H

0

(R) = i = 3 ∧ (i < 3 ∨ i = 3)

H

0

(R) = i = 3

H

k

(R) = WP (IF, H

k- 1

(R)) ∨ H

0

(R)

H

1

(R) = WP (IF, H

1 - 1

(R)) ∨ i = 3

H

1

(R) = WP (IF, i = 3 ) ∨ i = 3

H

1

(R) = (i > 3 ) ∧ i > 3 ⇒WP(i:= i – 3 , i = 3 ) ∨ i = 3

H

1

(R) = WP(i:= i – 3 , i = 3 ) ∨ i = 3

H

1

(R) = i - 3 = 3 ∨ i = 3

H

4

(R) = WP(i:= i – 3 , i = 12 ∨ i = 9 ∨ i = 6 ∨ i = 3 ) ∨ i = 3

H

4

(R) = i - 3 = 12 ∨ i- 3 = 9 ∨ i- 3 = 6 ∨ i- 3 = 3 ∨ i = 3

H

4

(R) = i = 15 ∨ i = 12 ∨ i = 9 ∨ i = 6 ∨ i = 3

Por lo tanto WP (DO, R) = H 4 (R) = i = 15 ∨ i = 12 ∨ i = 9 ∨ i = 6 ∨ i = 3

WP(DO , R) = Ǝ

k≥

H

k

(R) ;

H

k

*(R) = i = 3 (k+1)

2 .- Calcular la precondición más débil, WP (DO, R) Donde:

K: 2

DO: do i < n ⇒ i:= i + 1; s = s* 2 od

R: s = 2

i

Solución:

H

0

(R) = R ∧ (⌐B

∧ ⌐B

∧... ∧ ⌐B

n

H

0

(R) = s = 2

i ∧ (⌐(i < n))

H

0

(R) = s = 2

i ∧ (i >= n)

H

k

(R) = WP (IF, H

k- 1

(R)) ∨ H

0

(R)

H

1

(R) = WP (IF, s = 2

i ∧ (i >= n)) ∨ s = 2

i ∧ (i >= n)

H

1

(R) = i < n ∧ i < n ⇒ WP(i:= i + 1; s = s* 2 , s = 2

i ∧ (i >= n)) ∨ s = 2

i ∧ (i >= n)

H

1

(R) = WP(i:= i + 1; s = s* 2 , s = 2

i ∧ (i >= n)) ∨ s = 2

i ∧ (i >= n)

H

1

(R) = WP(i:= i + 1 , WP(s = s* 2 , s = 2

i ∧ (i >= n))) ∨ s = 2

i ∧ (i >= n)

H

1

(R) = WP(i:= i + 1 , s * 2= 2

i ∧ (i >= n)) ∨ s = 2

i ∧ (i >= n)

H

1

(R) = s * 2 = 2

i+ ∧ (i + 1 >= n) ∨ s = 2

i ∧ (i >= n)

H

1

(R) = s * 2 = 2

i+ ∧ (i >= n- 1 ) ∨ s = 2

i ∧ (i >= n)

H

1

(R) = (s = 2

i ∧ (i >= n- 1 )) ∨ (s = 2

i ∧ (i >= n))

H

1

(R) = (s = 2

i ) ∧ (i >= n- 1 ∨ i >= n)

3 .- Calcular la precondición más débil, WP (DO, R) Donde:

K: 2

DO: do y ≥ 0 ⇒ r:= r – y; q = q + 1 od

R: x = r + (y * q) ∧ y > r

Solución:

H

0

(R) = x = r + (y * q) ∧ y > r ∧ (⌐(y ≥ 0 ))

H

0

(R) = (x = r + (y * q) ∧ y > r ∧ y < 0 )

H

1

(R) = WP (IF, H

0

(R)) ∨ H

0

(R)

H

1

(R) = WP (IF, (x = r + (y * q) ∧ y > r ∧ y < 0 )) ∨ (x = r + (y * q) ∧ y > r ∧ y < 0 )

H

1

(R) = y ≥ 0 ∧ y ≥ 0 ⇒ WP(r:= r – y; q = q + 1 , (x = r + (y * q) ∧ y > r ∧ y < 0 )) ∨ (x = r + (y * q) ∧ y > r ∧ y < 0 )

H

1

(R) = WP(r:= r – y; q = q + 1 , (x = r + (y * q) ∧ y > r ∧ y < 0 )) ∨ (x = r + (y * q) ∧ y > r ∧ y < 0 )

H

1

(R) = WP(r:= r – y, WP( q = q + 1 , (x = r + (y * q) ∧ y > r ∧ y < 0 ))) ∨ (x = r + (y * q) ∧ y > r ∧ y < 0 )

H

1

(R) = WP(r:= r – y, (x = r + (y * (q+1)) ∧ y > r ∧ y < 0 )) ∨ (x = r + (y * q) ∧ y > r ∧ y < 0 )

H

1

(R) = (x = (r - y) + (y * (q+1)) ∧ y > (r - y) ∧ y < 0 ) ∨ (x = r + (y * q) ∧ y > r ∧ y < 0 )

H

1

(R) = (x = r - y + y * q+ y ∧ y + y > r ∧ y < 0 ) ∨ (x = r + (y * q) ∧ y > r ∧ y < 0 )

H

1

(R) = (x = r + (y * q) ∧ 2y > r ∧ y < 0 ) ∨ (x = r + (y * q) ∧ y > r ∧ y < 0 )

H

1

(R) = (x = r + (y * q) ∧ 2y > r ∧ y < 0 ) ∨ (x = r + (y * q) ∧ y > r ∧ y < 0 )

H

1

(R) = (x = r + (y * q)∧ y < 0 ) ∧ (2y > r ∨ y > r )

H

2

(R) = WP (IF, H

1

(R)) ∨ H

0

(R)

H

2

(R) = WP (IF, (x = r + (y * q)∧ y < 0 ) ∧ (2y > r ∨ y > r )) ∨ (x = r + (y * q) ∧ y > r ∧ y < 0 )

H

2

(R) = y ≥ 0 ∧ y ≥ 0 ⇒ WP(r:= r – y; q = q + 1 , (x = r + (y * q)∧ y < 0 ) ∧ (2y > r ∨ y > r )) ∨ (x = r + (y * q) ∧ y > r ∧ y < 0 )

H

2

(R) = WP(r:= r – y; q = q + 1 , (x = r + (y * q)∧ y < 0 ) ∧ (2y > r ∨ y > r )) ∨ (x = r + (y * q) ∧ y > r ∧ y < 0 )

H

2

(R) = WP(r:= r – y, WP( q = q + 1 , (x = r + (y * q)∧ y < 0 ) ∧ (2y > r ∨ y > r ))) ∨ (x = r + (y * q) ∧ y > r ∧ y < 0 )

H

2

(R) = WP(r:= r – y, (x = r + (y * (q+1))∧ y < 0 ) ∧ (2y > r ∨ y > r )) ∨ (x = r + (y * q) ∧ y > r ∧ y < 0 )

H

2

(R) = (x = (r-y)+ (y * (q+1))∧ y < 0 ) ∧ (2y > r-y ∨ y > r-y ) ∨ (x = r + (y * q) ∧ y > r ∧ y < 0 )

H

2

(R) = (x = r + (y * q)∧ y < 0 ) ∧ (2y+y > r ∨ y+y > r) ∨ (x = r + (y * q) ∧ y > r ∧ y < 0 )

H

2

(R) = (x = r + (y * q)∧ y < 0 ) ∧ (3y > r ∨ 2y > r) ∨ (x = r + (y * q) ∧ y > r ∧ y < 0 )

H

2

(R) = (x = r + (y * q)∧ y < 0 ) ∧ (3y > r ∨ 2y > r ∨ y > r )

Por lo tanto WP(DO,R) = H 2

(R) = (x = r + (y * q)∧ y < 0 ) ∧ (3y > r ∨ 2y > r ∨ y > r )