loop invariants
Download
Skip this Video
Download Presentation
Loop Invariants

Loading in 2 Seconds...

play fullscreen
1 / 12

Loop Invariants - PowerPoint PPT Presentation


  • 98 Views
  • Uploaded on

Loop Invariants. General Notation. {r} T ; {inv : p } {bd : t } while B do S ; od {q}. require --- from init invariant inv variant var until exit loop body ensure --- end. Correctness Proof. p is initially established; that is {r}T{p} holds.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Loop Invariants' - brit


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
general notation
General Notation

{r}

T;

{inv : p}{bd : t }

whileBdo

S;

od

{q}

require

---

frominit

invariant inv

variant var

until exit

loop body

ensure

---

end

correctness proof
Correctness Proof
  • p is initially established;that is {r}T{p} holds.
  • p is a loop invariant;that is, {p /\ B}S{p} holds.
  • Upon loop termination q is true;that is, p /\ !B --> q
  • p implies t >= 0;that is p --> t >= 0
  • t is decreased with each iteration; that is, {p /\ B /\ t = z}S{t < z}

Correctness

Termination

proof steps in other words
proof steps (in other words)
  • The invariant is true at the beginning of the first loop iteration;
  • The invariant is maintained by one pass through the loop body;
  • The postcondition follows from the invariant and the exit condition;
  • The variant is always non-negative;
  • The variant decreases by at least one in every pass through the loop body;
integer logarithm
Integer Logarithm
  • The integer logarithm of n in base b is the largest integer l such that b^ln
  • ilog(2,10) = 3
    • 2^3  10
    • 2^4 > 10
  • ilog(3, 90) = 4
    • 3^4  90
    • 3^5 > 90
slide6

?

?

step1 invariant initially holds
Step1: Invariant initially holds
  • Result=0; p=1
  • b≥2 & n ≥1
  • I1: b^0=p=1
  • I2: p=1≤b^n
  • I3:p ≥1
step2 invariant holds one pass in the loop
Step2: Invariant holds one pass in the loop
  • b^Result’=p’ & p’≥1
  • p=p’*b, Result=Result’+1
  • b^Result=b^(Result’+1)=b^Result’*b=p’*b=p (I1)
  • p’≤n  p=p’*b ≤ n*b (I2)
  • b≥2 & p’≥1  p=p’*b≥2≥1
step3 invariant implies post
Step3: Invariant implies post
  • Reuslt1 is Result after the loop
  • b^Result1=p (I1)
  • p≤b*n (I2) & p>n (exit)
  • I1+exit: b^Result1>n
  • I2+I1:b^Result1≤b*n
  • Result1 = Result+1
  • I1+exit: b^(Result+1)>n
  • I2+I1:b^(Result+1)≤b*n  b^Result≤n
step4 variant non negative
Step4: Variant non negative
  • I2: p ≤ b*n  0 ≤ b*n-p
step5 variant decreases at least by 1
Step5: Variant decreases at least by 1
  • b*n is a constant
  • p = p’*b, b≥2, p≥1
  • p≥p’*2>p’
  • b*n-p < b*n-p’
ad