POCS.Common.NbdAPI
POCS.Common.NbdImpl
POCS.Common.NbdServer
POCS.Common.OneDiskAPI
POCS.Helpers.Disk
POCS.Helpers.Helpers
- Decidable equality.
- maybe_holds predicate.
- maybe_eq predicate for equality.
- maybe_eq_list for equality of lists.
- Proof automation.
- Instantiate existentials (deex)
POCS.Lab0.Exercises
- Part A: incrementing and swapping.
- Swapping.
- Part B: recursive procedures.
- Recursive procedures on your own.
POCS.Lab0.ThreeVariablesAPI
POCS.Lab1.StatDbAPI
POCS.Lab1.StatDbCli
POCS.Lab1.StatDbImpl
POCS.Lab1.VariablesAPI
POCS.Lab1.VariablesImpl
POCS.Lab2.BadBlockAPI
POCS.Lab2.BadBlockImpl
POCS.Lab2.RemappedDiskImpl
POCS.Lab2.RemappedServer
POCS.Lab3.LogAPI
POCS.Lab3.LogImpl
POCS.Lab4.ReplicatedDiskImpl
- Helper theorems and tactics for proofs.
- Specifications and proofs about our implementation of the replicated disk API,
- without considering our recovery.
- These intermediate specifications separate reasoning about the
- implementations from recovery behavior.
- Recovery implementation.
- We provide the general structure for recovery: essentially, it consists of
- a loop around fixup that terminates after either fixing an out-of-sync
- disk block or when a disk has failed.
- Theorems and recovery proofs.
POCS.Lab4.ReplicatedServer
POCS.Lab4.TwoDiskAPI
POCS.Lab4.TwoDiskBaseAPI
POCS.Lab4.TwoDiskBaseImpl
POCS.Lab4.TwoDiskImpl
POCS.POCS
POCS.Spec.Abstraction
POCS.Spec.Proc
- Model of sequential procedures with mutable state.
- Execution model.
- Execution model with recovery
- Chaining normal execution with recovery
- Notation for composing procedures.