AnyLearn
All cursus
Computer Scienceadvanced

Formal Verification: Proving a Program Correct

Testing samples inputs; a proof covers all of them. Three traditions do this and each hits a different wall. Deductive proof turns a program into a relation between assertions, and stalls at the loop invariant no machine can supply. Type-level encoding makes wrong programs unwritable, and pays with a language that rejects some correct ones. Model checking searches every state exhaustively, and is bounded by how many there are. The path ends with two systems that were actually verified, and what they cost.

0 of 4 lessons complete
Sign in to track progress and earn a certificate.

Lessons, in order

  1. 1
    Computer Science
    What a Proof of Correctness Actually Is
    Start
  2. 2
    Computer Science
    Types as Propositions: Making Wrong Programs Unwritable
    Start
  3. 3
    Computer Science
    Model Checking: Exhaustive Search Instead of Proof
    Start
  4. 4
    Computer Science
    What Has Actually Been Verified, and What It Cost
    Start