course_outline
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
course_outline [2012/02/15 03:49] – jonathan | course_outline [2012/04/03 20:06] (current) – jonathan | ||
---|---|---|---|
Line 38: | Line 38: | ||
* Controller events and Environment events | * Controller events and Environment events | ||
- | ===== Week 5 - Jan 31 ===== | + | ===== FTP protocol |
- | This week we start Chapter 4 of the optional textbook -- A simple File Transfer Protocol (FTP). | + | Chapter 4 of the optional textbook -- A simple File Transfer Protocol (FTP). |
+ | | ||
- | **Tuesday' | + | In the previous example, the program was **reactive** (i.e. it had to control an external situation such as cars on a bridge). This chapter deals with a protocol used on a computer network to transfer data from a sender to a receiver. The example will also allow us to extend |
- | **Thursday' | + | In the second |
- | **Required exercises this week** | + | Third and final refinement in which we add a parity bit. The distributed ftp protocol is now ready to be implemented in code (how would you write the program?) with a guarantee that it will terminate with the file properly transmitted from the sender to the receiver. Lab: prove the parity bit theorem. |
+ | |||
+ | Try a manual proof of the theorem needed for the theory of parity (in the ftp protocol). This theorem might be hard to prove. The suggestion is to first do the proof manually, which then makes it easier to do in Rodin. Using this approach, we were able to derive a Lemma that was helpful | ||
- | **Required Reading:** See SVN (folder '' | ||
- | **Note**: Labtest2 is on March 1. By that time you must finish up to and inluding questions 15 (celebrity.pdf) and 16 (ftp). | + | **Exercises 11 and 12 in preparation for Labtest2**: Ex 11: ftp protocol. Ex12: Do the initial model of the celebrity |
- | ===== Week 6 - February 7 ===== | ||
- | **Tuesday' | + | **Required reading**: all of chapter IV and chapter V (Event-B proof obligation rules). Injections, surjections and bijections |
- | **Thursday' | ||
- | **Required Reading**: In the SVN==> | ||
+ | |||
- | ===== Week 7 - February 14 ===== | + | ===== Sequential Programs |
- | **Tuesday' | + | Requirements |
- | **Thursday' | ||
- | Celebrity | + | Discussion. (a) Data refinement and Procedural Refinement. Illustration of these concepts using the Birthday Book example |
- | **Required reading**: Chapter 15. | + | In class we provided the following requirement: |
- | **Exercises**: Up to an including Exercise 16. | + | REQ: Find an integer approximation to the square root of n. |
+ | **Specification** | ||
- | ===== Week 8===== | + | n,d: INT |
- | Finish 3rd refinement of ftp protocol [[http:// | + | sqrt |
+ | require n >= 0 | ||
+ | ensure (d^2 <= n < (d+1)^2) & (n = old n) | ||
- | Chapter XV: Development of sequential programs. Binary search. Merging Rules. | + | Problem: Convert the above specification ito Rodin and use Rodin refinement rules to develop the code for the method //sqrt//. |
- | Celebrity example: Relations, functions, identity relation, inverse. Feasibility proof obligations for non-deterministic assignment, witness (WITH) for local variable refinements, | + | We did the celebrity problem ind detail including the addition |
- | + | ||
- | **Required reading**: all of chapter IV and chapter V (Event-B proof obligation rules). | + | |
- | + | ||
- | **Exercises**: | + | |
- | + | ||
- | ===== Week 9===== | + | |
- | + | ||
- | Event refinement proof obligation (from Hallersted-Event-B-Notation-2006.pdf in the SVN). | + | |
- | + | ||
- | Use of Add Hypothesis (AH) and Case analysis (DC) in the theorem prover. Use RichPoor example. | + | |
- | + | ||
- | Chapter XV: Development of sequential programs. Sort. Merging Rules. | + | |
- | + | ||
- | **Required reading**: chapter XV as covered in class and all of chapter IX (Mathematical Language). | + | |
- | + | ||
- | **Exercises**: | + | |
- | + | ||
- | ===== Week 10===== | + | |
- | + | ||
- | Injections, surjections | + | |
- | + | ||
- | Requirements for the sorting algorithm. Initial specification using an anticipated event. First and second refinements leading to the use of merge rules for a loop within a loop. For the slides see [[http:// | + | |
- | ===== Week 11===== | + | Review of arithmetic, set theory, predicate logic and Event-B invariant and refinement proof obligations. Translation between set theoretic statements and predicate logic. Re-write rules. |
- | Tuesday: Data refinement and Procedural Refinement. Illustration of these concepts using the Birthday Book example in which we write an initial specification, | + | ===== Weakest Preconditions===== |
- | BAG abstract datatype. | + | We did not cover weakest preconditions. |
- | ===== Week 12===== | + | Dijkstra weakest precondition calculus and loop variants and invariants.Proving loop termination. Relationship of Dijkstra weakest precondition calculus to Event-B. Slides on the SVN. |
- | Tuesday: Dijkstra weakest precondition calculus and loop variants and invariants.Proving loop termination. Relationship of Dijkstra weakest precondition calculus to Event-B. Slides on the SVN. | ||
- | Thursday: Review of arithmetic, set theory, predicate logic and Event-B invariant and refinement proof obligations. Translation between set theoretic statements and predicate logic. Re-write rules. | ||
- | ===== Week 13===== | ||
- | Work through a complete example: requirements document, initial specification, | ||
course_outline.1329277796.txt.gz · Last modified: by jonathan