wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la...
Transcript of wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la...
Risultato su wlp
TEOREMA:Sia B una base per la logica predicativa, S ∈ LB1 un programmaflowchart, α un cammino in S, e q ∈ WFFB una formula. Perogni interpretazione I di B wlp(α, q) e la precondizione liberalepiu debole rispetto al cammino α e a q.Dim:Supponiamo che α = (l0, l1, . . . , lk). La dimostrazione e perinduzione sulla lunghezza k di α.
• CASO BASE. Per k = 0 wlp(α, q) = q e MI(α) e la funzioneidentica. Quindi e vero
I(q)(σ) ≡ (MI(α)(σ) ↑ ∨(MI(α)(σ) ↓ ∧I(q)(σ)))
1
• PASSO INDUTTIVO. Per ipotesi induttiva wlp(β, q) e laprecondizione liberale piu debole rispetto al cammino β e a q.Bisogna dimostrare che per ogni stato σ ∈ Σ
I(wlp(α, q))(σ) ≡ MI(α)(σ) ↑ ∨(MI(α)(σ) ↓ ∧I(q)(MI(α)(σ)))
Distinguiamo due casi:
–Assegnamento parallelo. C’e un comando
l0 : (x1, . . . , xn) := (t1, . . . , tn) ; goto l1
nel programma S. Sia σ ∈ Σ uno stato arbitrario. Allora
I(wlp(α, q))(σ) ≡ I(wlp(β, q))t1,...,tnx1,...,xn(σ) =
I(wlp(β, q))(σ′)dove σ′ = σ[x1/I(t1)σ] . . . [xn/I(tn)σ]
2
Per ipotesi induttiva
I(wlp(β, q))(σ′) ≡MI(β)(σ
′) ↑ ∨(MI(β)(σ′) ↓ ∧I(q)(MI(β)(σ
′)))
Poiche (l0, σ) ⇒S (l1, σ′) si ha che
MI(α)(σ) ↑ se e solo se MI(β)(σ′) ↑
Se MI(α)(σ) ↓ allora MI(α)(σ) = MI(β)(σ′) e quindi
I(q)(MI(α)(σ))) = I(q)(MI(β)(σ′)))
3
– Salto condizionale. C’e un comando
l0 : if e then goto l else goto l ′ fi ,Si consideri il caso l = l1. Sia σ ∈ Σ uno stato arbitrario.Allora
I(wlp(α, q))(σ) = I(e ⊃ wlp(β, q))(σ).
Se I(e)(σ) = true allora
I(e ⊃ wlp(β, q))(σ) ≡
4
MI(β)(σ) ↑ ∨(MI(β)(σ) ↓ ∧I(q)(MI(β)(σ)))
Poiche (l0, σ) ⇒ (l1, σ)
MI(α)(σ) ↑ se e solo se MI(β)(σ) ↑Se MI(α)(σ) ↓ allora MI(α)(σ) = MI(β)(σ)
Se invece I(e)(σ) = false, alloraI(e ⊃ wlp(β, q))(σ) = true. Poiche (l0, σ) ⇒ (l ′, σ),MI(α)(σ) ↑
5
Altri risultati
COROLLARIO:Sia B una base per la logica predicativa, p, q ∈ WFFB dueformule ed α un cammino in un programma flowchart in LB1 . Perogni interpretazione I di B, il cammino α e parzialmente correttorispetto alle formule p e q, se e solo se la condizione di verificavc(p, α, q) e valida in I .Dim:Sia α parzialmente corretto rispetto a p e a q. Allora per ogniσ ∈ Σ,
(I(p)(σ) ∧MI(α)(σ) ↓) ⊃ I(q)(MI(α)(σ))
Vogliamo provare che per ogni σ ∈ Σ
6
I(p)(σ) ⊃ I(wlp(α, q))(σ)
• Sia σ ∈ Σ tale che I(p)(σ) ∧MI(α)(σ) ↓= true.
Dalla definizione di wlp,
I(wlp(α, q))(σ) ≡MI(α)(σ) ↑ ∨(MI(α)(σ) ↓ ∧I(q)(MI(α)(σ)))
si ha la tesi.
• Sia σ ∈ Σ tale che I(p)(σ) ∧MI(α)(σ) ↓= false.Supponiamo che I(p)(σ) = true (il caso in cuiI(p)(σ) = false e banale), ma allora MI(α)(σ) ↑, e quindila tesi segue.
7
Sia vc(p, α, q) valida nell’interpretazione I . Allora per ogniσ ∈ Σ, I(p)(σ) ⊃ I(wlp(α, q))(σ)
Vogliamo provare che per ogni σ ∈ Σ
(I(p)(σ) ∧MI(α)(σ) ↓) ⊃ I(q)(MI(α)(σ))
• Sia σ tale che I(p)(σ) = true. AlloraI(wlp(α, q))(σ) = true e quindi
– o MI(α)(σ) ↑, oppure–MI(α)(σ) ↓ e I(q)(MI(α)(σ)) = true
in entrambi i casi la tesi e verificata. Per i σ tali cheI(p)(σ) = false la tesi e verificata.
8
Altri risultati (ctnd.)
TEOREMA:Sia B una base per la logica predicativa, p, q ∈ WFFB dueformule, e S ∈ LB1 un programma flowchart. Per ogniinterpretazione I di B, il programma S e parzialmente correttorispetto alle formule p e q (nell’interpretazione I) se e solo se perogni cammino α attraverso S, la condizione di verifica vc(p, α, q)e valida in I .Dim:S e parzialmente corretto rispetto alle formule p e q se e solo seogni cammino attraverso S e parzialmente corretto.Dal teorema precedente sappiamo che un cammino α eparzialmente corretto rispetto a p e q se e solo se vc(p, α, q) evalida (nell’interpretazione considerata). Da cio segue la tesi.
9
Definizione del metodo delle asserzioni induttive
Sia B una base per la logica predicativa, p, q ∈ WFFB dueformule, S ∈ LB1 un programma flowchart, e I unainterpretazione di B. Il metodo delle asserzioni induttive, chedimostra la correttezza parziale di S rispetto alle formule p e qnell’interpretazione I consiste dei seguenti tre passi:
1. Si scelga un sottoinsieme C dell’insieme di tutte le etichette cheoccorrono in S, tale che begin e end sono contenute in C, edogni loop in S contiene almeno un elemento di C. Gli elementidi C vengono chiamati cutpoints.
2. Si associ una formula ql ∈ WFFB ad ogni cutpoint l ∈ C.Precisamente: la formula p con begin, la formula q con end , euna formula ‘appropriata’ con ogni altro cutpoint. La scelta diquest’ultima formula e libera nella misura in cui permette di
10
eseguire il passo 3. Se un cutpoint l e contenuto in un loop, laformula corrispondente viene chiamata invariante.
3. Per ogni cammino α = (l0, . . . , lk) in S, k ≥ 1, tale chel0, lk ∈ C e l1, . . . , lk−1 /∈ C, si dimostri che la condizione diverifica vc(ql0, α, qlk) e valida in I .
11
Esempio
Usiamo il metodo delle asserzioni induttive per dimostrare che ilprogramma che calcola la radice quadrata intera e parzialmentecorretto rispetto alle formule x = a e y1 =
√a
1.C e l’insieme {begin, test, end}2. qbegin = (x = a), qend = (y1 =
√a),
qtest = (x = a ∧ y21 ≤ x ∧ y3 = (y1 + 1)2 ∧ y2 = 2 ∗ y1 + 1)
3. Basta esaminare i cammini (begin, test),(test, loop, upd, test) e (test, end). Le condizioni diverifica sono banalmente valide
12
Correttezza del metodo delle asserzioni induttive
TEOREMA:Se i passi 1, 2 e 3 del metodo delle asserzioni induttive possonoessere eseguiti con successo, allora il programma S e parzialmentecorretto rispetto alle formule p e q nell’interpretazione I .Dim:Mostriamo che un qualunque cammino attraverso S consiste deicammini esaminati nel passo 3. Quindi la correttezza parziale delcammino deriva dalla correttezza parziale di questi cammini‘elementari’.In particolare, si consideri la sequenza di computazione
(l0, σ0), (l1, σ1), . . . , (lk, σk)
con k ≥ 0 tale che I(p)(σ0) = true ed lk e un cutpoint, allora
13
I(qlk)(σk) = true.La dimostrazione di questo asserto e per induzione sul numero mdi occorrenze di cutpoint nel cammino l0, . . . , lk.
• CASO BASE. Se m = 1 allora k = 0, perche l0 = begin e uncutpoint. Quindi I(qlk)(σk) = I(p)(σ0) = true.
• PASSO INDUTTIVO. Supponiamo che m > 1. Sia lj l’ultimocutpoint prima di lk o, piu precisamente, j < k e tale chelj ∈ C e lj+1, . . . , lk−1 /∈ C. Allora I(qlj)(σj) = true per
ipotesi induttiva.
Inoltre il cammino (lj, . . . , lk) e fra quelli esaminati al passo 3.Questo cammino e parzialmente corretto rispetto a qlj e a qlk il
che porta a I(qlk)(σk) = true. Cio conclude la dimostrazionedell’asserto.
14
Adesso, per una computazione, o in altre parole, per unasequenza di computazione (l0, σ0), . . . , (lk, σk) con lk = end ,ogni cammino attraverso il programma S e parzialmentecorretto rispetto a p e a q. Da cui la tesi.
15
Metodo degli insiemi ben fondati (funzione di ranking)
Sia B una base per la logica predicativa, p ∈ WFFB unaformula, S ∈ LB1 un programma flowchart, e I unainterpretazione di B. Il metodo degli insiemi ben fondati, chedimostra la terminazione di S rispetto alla formula pnell’interpretazione I consiste dei seguenti sette passi:
1. Si scelga un sottoinsieme C dell’insieme di tutte le etichette cheoccorrono in S, tale che l’etichetta begin sia contenuta in C,ed ogni loop in S contiene almeno un elemento di C.
2. Si associ una formula ql ∈ WFFB ad ogni cutpoint l ∈ C.Precisamente: la formula p con begin, e una formula‘appropriata’ con ogni altro cutpoint.
3. Per ogni cammino α = (l0, . . . , lk) in S, k ≥ 1, tale che
16
l0, lk ∈ C e l1, . . . , lk−1 /∈ C, si dimostri che la condizione diverifica vc(ql0, α, qlk) e valida in I .
4. Si scelga un sottoinsieme C ′ (non necessariamente proprio)dell’insieme C tale che ogni loop di S contenga almeno unelemento di C ′.
5. Si scelga un insieme ben fondato ‘appropriato’ (W,⊑).
6. Si associ ad ogni etichetta l ∈ C ′ una funzione gl : Σ −→ Wche mappa l’insieme di tutti gli stati nell’insieme ben fondato.
7. Per ogni cammino α = (l0, . . . , lk) in S, k ≥ 1, tale chel0, lk ∈ C ′ e l1, . . . , lk−1 /∈ C ′ dimostriamo che per tutti glistati σ ∈ Σ:
(I(ql0)(σ) ∧MI(α)(σ) ↓) ⊃ glk(MI(α)(σ)) ⊏ gl0(σ)
17
Considerazioni
• Si noti che i primi tre passi del metodo degli insiemi ben fondatisono identici a quelli del metodo delle asserzioni induttiveeccetto che l’etichetta end non deve occorrere in C.
• L’obiettivo di questi passi e quello di provare la validita delleformule ql .
•Questa validita gioca un ruolo nella correttezza del passo 7.
18
Esempio
Si consideri il programma flowchart sulla radice quadrata intera. Ilmetodo degli insiemi ben fondati viene utilizzato per dimostrareche questo programma termina rispetto alla formula true
nell’interpretazione usuale. Proveremo che il programma terminasempre.
4. Si scelga C ′ = {test}.5. Si scelga (W,⊑) come (Nat ,≤).
6. Sia gtest : Σ → Nat definito comegtest(σ) = σ(x) + 1− σ(y3).
7. L’unico cammino che deve essere esaminato eα = (test, loop, upd, test). Sia σ ∈ Σ uno stato tale cheMI(α)(σ) e definito o, equivalentemente, tale che
19
σ(y3) ≤ σ(x).
Poiche qtest e stato scelto implicitamente essere la formulatrue, si deve dimostrare che
(MI(α)(σ))(x) + 1− (MI(α)(σ))(y3) < σ(x) + 1− σ(y3).
Si ha:
(MI(α)(σ))(x) = σ(x)
(MI(α)(σ))(y3) = σ(y3) + σ(y2) + 2
e quindi
σ(x) + 1− (σ(y3) + σ(y2) + 2) < σ(x) + 1− σ(y3).
Ma σ(x) + 1− σ(y3) > 0 e quindi la tesi vale percheσ(y2) + 2 > 0.
20
Correttezza del metodo degli insiemi ben fondati
TEOREMA: Se i passi da 1 a 7 del metodo degli insiemi benfondati possono essere eseguiti con successo, allora il programmaS termina rispetto alla formula p nell’interpretazione I .Dim:La dimostrazione e per assurdo. Supponiamo ci sia uno statoσ0 ∈ Σ tale che I(p)(σ0) = true e che la computazione(l0, σ0), (l1, σ1), . . .per σ0 sia infinita. Dai passi 1-3 possiamo dedurre cheI(qlj)(σj) = true for every label lj in C. Poiche C ′ e unsottoinsieme di C questo vale anche per ogni etichetta lj in C ′.Poiche la computazione e infinita e il programma contiene solo unnumero finito di etichette, esiste almeno un’etichetta che occorreinfinitamente spesso nella computazione. Poiche ogni loop
21
contiene almeno un’etichetta da C ′ la computazione contiene unnumero infinito di occorrenze di etichette da C ′. Siano li1, li2, . . .queste occorrenze di etichette e gli indici siano tali chei1 < i2 < . . .. Si considerino due occorrenze successive di queste,lik e lik+1. Allora il cammino α = (lik, lik+1, . . . , lik+1−1, lik+1) e
uno di quelli esaminati nel passo 7 perche lik, lik+1 ∈ C ′ elik+1, . . . , lik+1−1 /∈ C ′. Poiche I(qlik
)(σik) = true,
I(qlik+1)(σik+1) = true e MI(α)(σik) = σik+1 ↓, possiamo
concludere che glik+1(σik+1) ⊏ glik
(σik).
Quindi esiste una catena discendente infinita. . . ⊏ gli2
(σi2) ⊏ gli1(σi1)
di elementi di W . Cio contraddice l’assunzione che (W,⊑) e uninsieme ben fondato.
22
Considerazioni
• Accade spesso che il dominio dell’interpretazione I = (D,I0)(o almeno un suo sottoinsieme) sia un insieme ben fondato.
• Se inoltre ciascuna delle funzioni gl del passo 6 del metododegli insiemi ben fondati puo essere espressa da un termine,allora il passo 7 viene ridotto ad una dimostrazione di validita diformule della logica del I ordine.
23
Metodo degli insiemi ben fondati con termini
E identico al metodo descritto prima con l’eccezione che i passi5-7 sono sostituiti dai seguenti 5 passi:
5. Si scelga una formula w ∈ WFFB in cui al piu una variabile,es. x, occorre libera e un simbolo predicativo di B, diciamo ⊑.
6. Si dimostri che ({σ(x)|σ ∈ Σ,I(w)(σ) = true},I0(⊑)) e uninsieme ben fondato.
7. Si associ ad ogni etichetta l ∈ C ′ un termine appropriatotl ∈ TB.
8. Si dimostri che la formula ql ⊃ wtlx e valida nell’interpretazione
I per ogni l ∈ C ′.9. Per ogni cammino α = (l0, . . . , lk) in S, k ≥ 1, tale chel0, lk ∈ C ′ e l1, . . . , lk−1 /∈ C ′ si dimostri la validita in I della
24
condizione di verifica vc(ql0 ∧ tl0 = a, tlk ⊏ a), dove a e unavariabile che non occorre in ql0, tl0, tlk ed in S
25
Esempio
Si riconsideri l’esempio del programma che calcola la radicequadrata intera. I passi 1-4 sono identici
5. La formula w e scelta essere true e il simbolo predicativo ‘⊑’ escelto essere ‘≤’
6. (Nat ,≤) e un insieme ben fondato
7. Il termine ttest e scelto essere x + 1− y3
8. Poiche w e la formula true non deve essere provato nulla
9. Il solo cammino da considerare e nuovamenteα = (test, loop, upd, test). La condizione di verifica chedeve essere esaminata e
vc(true ∧ ttest = a, α, ttest < a)
oppure, equivalentemente26
ttest = a ⊃ wlp(α, ttest < a).
E’ facile vedere che
wlp(α, ttest < a) = (y3 ≤ x ⊃ x + 1− (y3 + y2 + 2) < a).
E quindi la penultima formula e valida se
x + 1− y3 = a ∧ y3 ≤ x ⊃ x + 1− (y3 + y2 + 2) < a
Ma questo viene dimostrato come nell’esempio precedente.
27
Esempio
Si consideri lo stesso programma di prima ma stavolta conun’interpretazione differente I = (Int ,I0), dove I0 mappa isimboli usati nei loro significati usuali per gli interi. Si dimostrache il programma termina rispetto alla formula x ≥ 0.
1. Si scelga C = {begin, end}2. Si prenda x ≥ 0 per qbegin e y2 > 0 ∧ x + y2 − y3 ≥ 0 perqtest.
3. La condizione di verifica per (begin, test) e
x ≥ 0 ⊃ (1 > 0 ∧ x + 1− 1 ≥ 0).
La condizione di verifica per (test, loop, upd, test) e
y2 > 0 ∧ x + y2 − y3 ≥ 0 ∧ y3 ≤ x ⊃ y2 + 2 >0 ∧ x + y2 + 2− (y3 + y2 + 2) ≥ 0.
28
La validita di queste condizioni e evidente. Per quanto riguardal’ultima formula, y2 + 2 > 0 proviene da y2 > 0; x− y3 ≥ 0proviene da y3 ≤ x.
4. Si scelga C ′ = {test}.5. Si scelga la formula x ≥ 0 per w e il simbolo ‘≤’ per ‘⊑’.
6. Poiche l’insieme {σ(x)|σ ∈ Σ, σ(x) ≥ 0} e l’insieme dei numerinaturali,
({σ(x)|σ ∈ Σ, σ(x) ≥ 0},I0(≤))
e un insieme ben fondato.
7. Si scelga il termine x + y2 − y3 per ttest.
8. La formula
y2 > 0 ∧ x + y2 − y3 ≥ 0 ⊃ x + y2 − y3 ≥ 0
e ovviamente valida.
29
9. La condizione di verifica da esaminare e:
vc(y2 > 0 ∧ x + y2 − y3 ≥ 0 ∧ x + y2 − y3 =a, (test, loop, upd, test), x + y2 − y3 < a)
o, equivalentemente
y2 > 0 ∧ x + y2 − y3 ≥ 0 ∧ x + y2 − y3 = a ∧ y3 ≤ x ⊃x + y2 + 2− y3 − y2 − 2 < a
oppure
y2 > 0 ∧ x + y2 − y3 ≥ 0 ∧ y3 ≤ x ⊃ x− y3 < x + y2 − y3.
30