wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la...

30
Risultato su wlp TEOREMA: Sia B una base per la logica predicativa, S L B 1 un programma flowchart, α un cammino in S ,e q WFF B una formula. Per ogni interpretazione I di B wlp (α, q ) ` e la precondizione liberale pi` u debole rispetto al cammino α ea q . Dim: Supponiamo che α =(l 0 , l 1 ,..., l k ). La dimostrazione ` e per induzione sulla lunghezza k di α. CASO BASE. Per k =0 wlp (α, q )= q e M I (α) ` e la funzione identica. Quindi ` e vero I (q )(σ ) (M I (α)(σ ) ↑∨(M I (α)(σ ) ↓∧I (q )(σ ))) 1

Transcript of wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la...

Page 1: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

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

Page 2: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

• 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

Page 3: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

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

Page 4: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

– 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

Page 5: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

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

Page 6: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

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

Page 7: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

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

Page 8: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

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

Page 9: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

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

Page 10: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

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

Page 11: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

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

Page 12: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

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

Page 13: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

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

Page 14: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

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

Page 15: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

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

Page 16: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

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

Page 17: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

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

Page 18: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

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

Page 19: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

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

Page 20: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

σ(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

Page 21: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

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

Page 22: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

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

Page 23: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

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

Page 24: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

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

Page 25: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

condizione di verifica vc(ql0 ∧ tl0 = a, tlk ⊏ a), dove a e unavariabile che non occorre in ql0, tl0, tlk ed in S

25

Page 26: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

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

Page 27: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

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

Page 28: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

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

Page 29: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

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

Page 30: wlp TEOREMAnicolosi/LezioniLogica201011/Lezione22.pdfRisultato su wlp TEOREMA: Sia B una base per la logica predicativa, S ∈ LB 1 un programma flowchart, α un cammino in S, e q

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