Revision control systems (RCS) like cvs, opencvs, subversion and arch are commonly used to develop software projects. Unfortunately, they all tend to suffer from a lack of formal specification, leading to bugs or incoherent behaviour. Recently a new RCS has emerged that is more well specifed, darcs.
Darcs has a powerful ``theory of patches'' underpinning its design, and it is greatly strengthened by this. Its behaviour is easier to understand, and allows sophisticated version control operations beyond that of other systems. However, the darcs model has not been formalised in any way, and there exist no proofs of its soundness. The darcs model can be considered a first draft for a formal model of an RCS based on patches.
The goal of this project is to develop a formal model of patches based on the darcs model. You will develop a model of the theory in the Isabelle theorem prover, and develop various proofs relating to the theory. Once you have a checked model, you will use this to implement a prototype RCS in Haskell.
Expectations