Modelli e computazione - modelli della concorrenza (L. Pomello
Transcript
Modelli e computazione - modelli della concorrenza (L. Pomello
Modelli e computazione - modelli della concorrenza (L. Pomello) Esercizi Si dimostri la correttezza totale delle seguenti triple di Hoare: 1. di questo esercizio é stata data la prova per esteso in altro file {m > 0 ∧ n > 0} x := m; y := n; z := 0; Inv = {z = (m ∗ n) − (x ∗ y) ∧ x ≥ 0} while (x 6= 0) do if (x mod 2 = 0) then x := x div 2; y := y ∗ 2; else x := x − 1; z := z + y; fi od {z = m ∗ n} Funzione di terminazione: t = x. 2. il seguente esercizio é stato svolto in dettaglio a lezione {y > 0} x := 1; j := 1; Inv = {x = z j−1 ∧ y ≥ j − 1} while (y ≥ j) do j := j + 1; x := x ∗ z; od {x = z y } Funzione di terminazione: t = y − j + 1. 3. {m ≥ 0} y := 1; z := x; k := m; Inv = {y ∗ z k = xm ∧ k ≥ 0} while (k 6= 0) do if (k mod 2 6= 0) then k := k − 1; y := y ∗ z fi k := k div 2; z := z ∗ z od {y = xm } Funzione di terminazione: t = k. 1 4. {X = x0 ∧ x0 ≥ 0} Y := 0; Inv = {Y = 2(x0 − X) ∧ X ≥ 0} while (X 6= 0) do X := X − 1; Y := Y + 2 od {Y = 2x0 } Funzione di terminazione: t = X. 2