
T:+44(0) 115 9514251
F:+44(0) 115 9514254
csit-enquiries@cs.nott.ac.uk
In Derivation of Algorithms you will learn how to use mathematics and formal logic to construct algorithms and to prove that they are correct. The starting point in the design of a program is a precise description of what it is supposed to do, formulated in a rigorous language. This description is called the specification of the program. We use precise methods to derive or calculate a realization of the specification. The final product is an algorithm that implements the requirements expressed by the specification. It is automatically correct, because we obtained it by accurate mathematical reasoning.
| Date | Topics | Lecture Notes |
|---|---|---|
| 1. 4 Feb 2010 | Correctness of programs Testing vs. Formal Verification Informal example: Dictionary search |
Lecture 1 |
| 2. 5 Feb 2010 | Example of formal verification Dutch Flag Algorithm |
Lecture 2 |
| 3. 11 Feb 2010 | Review of Propositional Logic Natural Deduction: Conjunction and Implication |
Lecture 3 |
| 4. 12 Feb 2010 | Natural Deduction: Negation and Disjunction |
|
| 5. 18 Feb 2010 | Natural Deduction: Quantifiers |
Lecture 5 |
| 6. 19 Feb 2010 | Introduction to ProofWeb | |
| 7. 25 Feb 2010 | Graph Models Completeness Theorems |
|
| 8. 26 Feb 2010 | Substitution Equality rules |
Truth tables for predicate logic |
| 9. 4 Mar 2010 | Hoare Logic | Hoare Logic and Proof Tableax |
| 10. 5 Mar 2010 | Proof Tableaux | |
| 11. 11 Mar 2010 | Weakest Preconditions Loop Invariants |
Proof Tableax for While Loops |
| 12. 12 Mar 2010 | Examples of correctness proof for WHILE programs |
|
| 13. 18 Mar 2010 | Total Correctness of While Loops | Total Correctness |
| 14. 19 Mar 2010 | Example: Minimal Section Algorithm | Sections |