• Nie Znaleziono Wyników

Poprawno±¢ i peªno±¢ systemu Hoare'a

N/A
N/A
Protected

Academic year: 2021

Share "Poprawno±¢ i peªno±¢ systemu Hoare'a"

Copied!
6
0
0

Pełen tekst

(1)

Poprawno±¢ i peªno±¢ systemu Hoare'a

Wprowad¹my dwie instrukcje o nast¦puj¡cej semantyce.

Denicja

nww(skip, p) = p, nww(abort, p) = false.

Ponadto Denicja

W = while B do S

W0=if B then abort else skip Wk+1=if B then S;Wkelse skip

To jest inny zapis p¦tli. W szczególno±ci wykonanie pewnego Wk poci¡ga W.

(2)

Lemat

nww(W0,p) ≡ ¬B ∧ (¬B ⇒ p).

Dowód

nww(W0,p) =

nww(W0=if B then abort else skip, p) = (B ⇒ nww(abort, p)) ∧ (¬B ⇒ nww(skip, p)) ≡

(B ⇒ false) ∧ (¬B ⇒ p) ≡

(¬B ∨ false) ∧ (¬B ⇒ p) ≡

¬B ∧ (¬B ⇒ p)

(3)

Lemat W

k=0nww(Wk,p) → nww(W, p) Dowód jest indukcyjny.

Dla k = 0 mamy:

nww(W0,p) → ¬B ∧ (¬B ⇒ p) nww(W0,p) → ¬B ∧ p

nww(W0,p) → (¬B ∧ p) ∨ (B ∧ nww(S ; W,p)) nww(W0,p) → nww(W, p)

(4)

Dla k > 0:

nww(Wk+1,p) = nww(ifBthen S ; Wkelse skip , p)

nww(Wk+1,p) ≡ (B → nww(S ; Wk,p)) ∧ (¬B → nww(skip, p)) nww(Wk+1,p) ≡ (B → nww(S, nww(Wk,p)) ∧ (¬B → nww(skip, p)) nww(Wk+1,p) ≡ (B → nww(S, nww(Wk,p)) ∧ (¬B → p)

nww(Wk+1,p) → (B → nww(S, nww(W, p)) ∧ (¬B → p) nww(Wk+1,p) → (B → nww(S ; W, p)) ∧ (¬B → p) nww(Wk+1,p) → nww(W, p)

(5)

Twierdzenie

Je±li ` {p}S{q}, to |= {p}S{q}.

Dowód jest indukcyjny ze wzgl¦du na dªugo±¢ dowodu w systemie Hoare'a. Dziedzina nas nie interesuje, bo przykªadowo wªasno±ci liczb naturalnych s¡ prawdziwe. Poprawno±¢ reguªy konsekwencji wynika z poprawno±ci Modus ponens. Ponadto, |= {p}S{q} wtw, gdy |= p → nww(S, q). Mo»na zaj¡¢ si¦ |= p → nww(S, q).

Oczywi±cie aksjomat przypisania jest poprawny. Zajmijmy si¦

zªo»eniem S1 ; S2 i zaªo»eniem indukcyjnym |= p → nww(S1, q) oraz |= q → nww(S2, r). Z drugiego i monotoniczno±ci mamy:

|=nww(S1, q) → nww(S1, nww(S2, r)) Wtedy

|=p → nww(S1, nww(S2, r))

i mamy tez¦ po zªo»eniu S1 i S2 Dowód dla p¦tli i instrukcji warunkowej prowadzimy podobnie.

(6)

Twierdzenie

Je±li |= {p}S{q}, to ` {p}S{q}.

Dowód dla p¦tli W = while B do S.

|=nww(W, q) ∧ B → nww(S ; W, q)

|=nww(W, q) ∧ B → nww(S, nww(W, q))

` {nww(W, q) ∧ B}S{nww(W, q)}

` {nww(W, q)}W{nww(W, q) ∧ ¬B}

` (nww(W, q) ∧ ¬B) → q

` {nww(W, q)}W{q}

`p → nww(W, q)

` {p}W{q}

Cytaty

Powiązane dokumenty

[r]

Ka»dy rodzaj owoców wysyªany jest do trzech ró»nych

Z konstrukcji tabeli wynika, »e oba jej skladniki nale»¡ do U(n 0 ) ⊆ U, czyli warunek drugi te» jest speªniony.. Trzeci przypadek

[r]

Asymptotyczne wªasno±ci estymatorów Zadania do samodzielnego

Dobierz parametr c tak, aby ˆg 2 byª nieobci¡»ony i wówczas porównaj bª¦dy ±redniokwadratowe obu

Stężenie mocznika w mleku (ang. MUN – Milk Urea Nitrogen) jest narzędziem, wyko- rzystywanym we współczesnej hodowli bydła mlecznego do monitorowania skuteczności

Zbadaj zachowanie si¦ metody dla zmniejszaj¡cych si¦ kroków