This preview shows page 1-2-3-4-5-6 out of 17 pages.

Save
View full document
Premium Document
Do you want full access? Go Premium and unlock all 17 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Proving Program Correctness The Axiomatic Approach What is Correctness Correctness partial correctness termination Partial correctness Program implements its specification Proving Partial Correctness Goal prove that program is partially correct Approach model computation with predicates Predicates are boolean functions over program state Simple example odd x a x odd a Generally P S Q where P precondition Q postcondition S Programming language statement Proof System Two elements of proof system Axioms capture the effect of prog lang stmts Inference rules compose axioms to build up proofs of entire program behavior Let s start by discussing inference rules and then we ll return to discussing axioms Composition Rule P S1 Q Q S2 R P S1 S2 R Consider two predicates odd x 1 x x 1 odd x odd x a x odd a What is the effect of executing both stmts odd x 1 x x 1 a x odd a Consequence 1 Rule Ex P S R R Q P S Q odd x a x odd a and Postcondition a 4 What can we say about this program odd x a x odd a odd a a 4 odd x a x a 4 Consequence 2 Rule Ex P R R S Q P S Q Precondition x 1 and odd x a x odd a What can we say about this program x 1 odd x odd x a x odd a x 1 a x odd a Axioms Axioms explain the effect of executing a single statement Axioms will be derived backwards Start with postcondition and determine what conditions must be true on entry to stmt Assignment Axiom Rule Pyx x y P Replace all free occurences of x with y e g odd x a x odd a Conditional Stmt 1 Axiom Rule P P Bif S Q P Bif Q P if Bif then S Q Bif P Bif P Bif S Q Conditional Stmt 1 Example 1 if even x then 2 x x 1 3 odd x x 3 else part even x odd x x 3 then part odd x 1 x 2 x x 1 odd x x 3 even x odd x 1 x 2 P odd x 1 x 2 x 3 x 3 works as well Conditional Stmt 2 Axiom Rule P P Bif S1 Q P Bif S2 Q P if Bif then S1 else S2 Q Bif P Bif P Bif S1 S2 Q Conditional Stmt 2 Axiom Example 1 if x 0 then 2 x x y x 3 else 4 y x 5 y x Then part x x y x y x x x x x x x x 0 x x Else part x x y x y x x 0 x x P x x x x While Loop Axiom Rule P B S P P while B do S P B P Bif Infinite number of paths so we need one predicate for that captures the effect of S P is called an invariant S P B While Loop Axiom Example IN B 0 a A b B y 0 while b 0 do y y a b b 1 OUT y AB INV y ab AB b 0 Bw b 0 Show INV Bw OUT y ab AB b 0 b 0 y ab AB b 0 y AB So INV Bw OUT Establish IN INV ab AB b 0 y 0 INV aB AB B 0 b B AB AB B 0 a A So IN a A b B y 0 INV While Loop Axiom Need to show INV Bw loop body INV y a b 1 AB b 1 0 b b 1 INV y a a b 1 AB b 1 0 y y a y ab AB b 1 0 loop body INV y ab AB b 0 b 0 y ab AB b 1 0 So IN lines 1 3 INV INV while loop INV Bw and INV Bw OUT Therefore IN program OUT Total correctness After you have shown partial correctness Need to prove that program terminates Usually a progress argument Last program Loop terminates if b 0 b starts positive and is decremented by 1 every iteration So loop must eventually terminate


View Full Document

UMD CMSC 838P - Proving Program Correctness

Download Proving Program Correctness
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Proving Program Correctness and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Proving Program Correctness and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?