Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

CRASH Methodology for Correct-by-construction Attack-tolerant Systems

Also see the: CRASH Project Home | About CRASH | Software | People | Publications

Background

Our method uses formal proofs of high-level system requirements then to synthesize code from the proven specification. Within our work on distributed systems we use the following concepts:

The main tool we use is EventML which is a programming and specification language. EventML, built by Vincent Rahli, cooperates with the Nuprl interactive theorem prover at every stage of program development to help programmers ensure correctness, document the code, and support modifications and improvements. It generates an Inductive Logical Form that proves the specification and can also automatically synthesize code.

Code diversity is created during the process. We can introduce variants at the EventML specification and code synthesis.

...

  1. Write the specification in EventML
  2. Automatically generate and prove an Inductive Logical Form of the specification
  3. Synthesize code
  4. Diversify and deploy code

...