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

of 30 /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

Embed Size (px)

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) è la precondizione liberalepiù debole rispetto al cammino α e a q.Dim:Supponiamo che α = (l0, l1, . . . , lk). La dimostrazione è perinduzione sulla lunghezza k di α.

    • CASO BASE. Per k = 0 wlp(α, q) = q e MI(α) è la funzioneidentica. Quindi è vero

    I(q)(σ) ≡ (MI(α)(σ) ↑ ∨(MI(α)(σ) ↓ ∧I(q)(σ)))

    1

  • • PASSO INDUTTIVO. Per ipotesi induttiva wlp(β, q) è laprecondizione liberale più 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’è 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(β)(σ′)))

    Poiché (l0, σ) ⇒S (l1, σ′) si ha cheMI(α)(σ) ↑ se e solo se MI(β)(σ′) ↑Se MI(α)(σ) ↓ allora MI(α)(σ) = MI(β)(σ′) e quindiI(q)(MI(α)(σ))) = I(q)(MI(β)(σ

    ′)))

    3

  • – Salto condizionale. C’è 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(β)(σ)))Poiché (l0, σ) ⇒ (l1, σ)MI(α)(σ) ↑ se e solo se MI(β)(σ) ↑Se MI(α)(σ) ↓ allora MI(α)(σ) = MI(β)(σ)

    Se invece I(e)(σ) = false, alloraI(e ⊃ wlp(β, q))(σ) = true. Poiché (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 α è parzialmente correttorispetto alle formule p e q, se e solo se la condizione di verificavc(p, α, q) è 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 è 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(α)(σ)) = truein entrambi i casi la tesi è verificata. Per i σ tali cheI(p)(σ) = false la tesi è 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 è 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)è valida in I .Dim:S è parzialmente corretto rispetto alle formule p e q se e solo seogni cammino attraverso S è parzialmente corretto.Dal teorema precedente sappiamo che un cammino α èparzialmente corretto rispetto a p e q se e solo se vc(p, α, q) èvalida (nell’interpretazione considerata). Da ciò 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 è libera nella misura in cui permette di

    10

  • eseguire il passo 3. Se un cutpoint l è 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) è valida in I .

    11

  • Esempio

    Usiamo il metodo delle asserzioni induttive per dimostrare che ilprogramma che calcola la radice quadrata intera è parzialmentecorretto rispetto alle formule x = a e y1 =

    √a

    1.C è 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 è 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 è un cutpoint, allora13

  • I(qlk)(σk) = true.La dimostrazione di questo asserto è per induzione sul numero mdi occorrenze di cutpoint nel cammino l0, . . . , lk.

    • CASO BASE. Se m = 1 allora k = 0, perché l0 = begin è uncutpoint. Quindi I(qlk)(σk) = I(p)(σ0) = true.

    • PASSO INDUTTIVO. Supponiamo che m > 1. Sia lj l’ultimocutpoint prima di lk o, più precisamente, j < k è tale chelj ∈ C e lj+1, . . . , lk−1 /∈ C. Allora I(qlj)(σj) = true peripotesi induttiva.

    Inoltre il cammino (lj, . . . , lk) è fra quelli esaminati al passo 3.Questo cammino è parzialmente corretto rispetto a qlj e a qlk il

    che porta a I(qlk)(σk) = true. Ciò 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 è 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 che16

  • l0, lk ∈ C e l1, . . . , lk−1 /∈ C, si dimostri che la condizione diverifica vc(ql0, α, qlk) è 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 è quello di provare la validità delleformule ql .

    •Questa validità 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 truenell’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 èα = (test, loop, upd, test). Sia σ ∈ Σ uno stato tale cheMI(α)(σ) è definito o, equivalentemente, tale che

    19

  • σ(y3) ≤ σ(x).Poichè qtest è 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 perchèσ(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 è 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. Poichè C

    ′ è unsottoinsieme di C questo vale anche per ogni etichetta lj in C

    ′.Poichè la computazione è infinita e il programma contiene solo unnumero finito di etichette, esiste almeno un’etichetta che occorreinfinitamente spesso nella computazione. Poichè 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) èuno di quelli esaminati nel passo 7 perchè lik, lik+1 ∈ C

    ′ elik+1, . . . , lik+1−1 /∈ C

    ′. Poichè 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 . Ciò contraddice l’assunzione che (W,⊑) è 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 può essere espressa da un termine,allora il passo 7 viene ridotto ad una dimostrazione di validità diformule della logica del I ordine.

    23

  • Metodo degli insiemi ben fondati con termini

    È 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 più una variabile,es. x, occorre libera e un simbolo predicativo di B, diciamo ⊑.

    6. Si dimostri che ({σ(x)|σ ∈ Σ,I(w)(σ) = true},I0(⊑)) è uninsieme ben fondato.

    7. Si associ ad ogni etichetta l ∈ C ′ un termine appropriatotl ∈ TB.

    8. Si dimostri che la formula ql ⊃ wtlx è 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 validità in I della

    24

  • condizione di verifica vc(ql0 ∧ tl0 = a, tlk ⊏ a), dove a è 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 è scelta essere true e il simbolo predicativo ‘⊑’ èscelto essere ‘≤’

    6. (Nat ,≤) è un insieme ben fondato7. Il termine ttest è scelto essere x + 1− y38. Poichè w è la formula true non deve essere provato nulla

    9. Il solo cammino da considerare è nuovamenteα = (test, loop, upd, test). La condizione di verifica chedeve essere esaminata è

    vc(true ∧ ttest = a, α, ttest < a)oppure, equivalentemente

    26

  • 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 è valida se

    x + 1− y3 = a ∧ y3 ≤ x ⊃ x + 1− (y3 + y2 + 2) < aMa 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) è

    x ≥ 0 ⊃ (1 > 0 ∧ x + 1− 1 ≥ 0).La condizione di verifica per (test, loop, upd, test) è

    y2 > 0 ∧ x + y2 − y3 ≥ 0 ∧ y3 ≤ x ⊃ y2 + 2 >0 ∧ x + y2 + 2− (y3 + y2 + 2) ≥ 0.

    28

  • La validità di queste condizioni è 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. Poichè l’insieme {σ(x)|σ ∈ Σ, σ(x) ≥ 0} è l’insieme dei numerinaturali,

    ({σ(x)|σ ∈ Σ, σ(x) ≥ 0},I0(≤))è 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è ovviamente valida.

    29

  • 9. La condizione di verifica da esaminare è:

    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 < aoppure

    y2 > 0 ∧ x + y2 − y3 ≥ 0 ∧ y3 ≤ x ⊃ x− y3 < x + y2 − y3.

    30