2. INTRODUCTION
• Formal verification involves the use of rigorous, mathematical
techniques to demonstrate that computer programs have certain
desired properties.
• The methods of input-output assertions, weakest preconditions,
and structural induction are three commonly used techniques.
3. INPUT-OUTPUT ASSERTIONS
• The method of input-output assertions was introduced by Floyed (FLO67) and
refined by Hoare (HOA73) and Dijkstra (DIJ76). Floyd’s work was seminal to
the entire field of formal verification.
• Using input-output assertions, predicates are associated with the entry point,
the exist point, and various intermediate points in the source code.
• The notation (P) S (R) is used to mean that if predicate P is true prior to
executing code segment S, predicate R will be true following of S.
(1<i<N)i:=i+1(2<i<N+1)
4. CONTINUE….
• The minimal requirement is that a predicate be associated with each
innermost nested loop.
• Loop predicates must be shown to be invariant relations. A loop invariant
must be true independent of the number of loop traversed.in particular a
loop invariant must satisfy the following conditions:
1. It must be true on loop entry.
2. It must be true independent of the number of loop traversals.
3. It must imply the desired condition on loop exit.
5. WEAKEST PRECONDITIONS
• To be true independent of the number of loop traversals by the method of
weakest preconditions.
• Given a proposition of the from (P) S (R), P is the weakest precondition for S if
it is the weakest condition that will guarantee the truth of R following
execution of S.
• The weakest precondition is expressed as
P = wp(S,R)
6. CONTINUE….
• In practice P is found by working backwards from R.
• If S is an assignment statement of the form X:=E, the weakest precondition P
is obtained by substituting expression E in place of X everywhere X appears in
predicate R:
Wp(X:=E,R)=R(E X)
• For example:
Wp(A:=B+3, A=5)=(A=5 with B+3A)
=(B+3=5) or (B=2)
7. STRUCTURAL INDUCTION
• Structural induction us a formal verification technique based on the general
principle of mathematical induction.
• The induction must be performed on a partially ordered set that is well
founded (LEV80).
• Given set S having the necessary properties and a proposition P to be proved.
8. CONTINUE….
• Mathematical indication proceeds as follows:
1. Show P to be true for the minimal elements in S.
2. Assume P to be true for each element in S that has an ordinal
number less than or equal to N and show P to be true for the N + first
element in S.
• The set of natural numbers under the ordering ”<“ is a commonly used
induction set, and many properties of the natural numbers can be proved by
induction.