Spring 2022

Student File Submission System

- Homework #1: Predicate Strength/Weakness and Hoare Triple Laws
- Homework #2: Proofs of Simple Programs
- Homework #3: Proofs of Programs Involving Selection Commands
- Homework #4: Repetition
- Homework #5: Repetition and Strengthening the Invariant
- Homework #6: Array Assignment and Strengthening the Invariant
- Homework #7: Tail Recursion
- Final Exam

- Gries/Schneider Theorems as presented by Warford
- On
Proofs Involving the Replacement of A by B, where A
**implies**B - Developing Predicates from Informal Statements: A Checklist
- On the Strength/Weakness Relationship between Predicates
- Axioms for the (family of) if functions

- Properties/Laws of Hoare triples and the wp Predicate Transformer
- Law of Assumptions and Textual Substitution
- Program Verification Summary
**Correctness proofs of some simple programs:****Repetition (Looping)****Arrays****Tail Recursion**- Search by Elimination (including the Celebrity Problem and Saddleback Search)
- Development of a program for determining the majority of a bag
- Longest Increasing Subsequence (i.e., Upsequence): Gries Manber

- The Correctness-by-Construction Approach to Programming, by D.G. Kourie and Bruce W. Watson.
- Wikipedia entry on Design by Contract

- Bertrand Meyer's technology+ blog
- Loop invariants: analysis, classification, and examples
- Links to Publications
- Applying "Design by Contract"
- A Framework for Proving Contract-equipped Classes
- Towards Practical Proofs of Class Correctness
- Proving Pointer Program Properties Part 1: Context and Overview
- Proving Pointer Program Properties Part 2: The Overall Object Structure