Pancake is a research programming language developed at Chalmers University of Technology, ANU, and UNSW. It is developed in the theorem prover HOL4 and comes with a formally verified compiler and is built from the ground up for predictable compilation and ease of verification. It specifically targets verified systems programming.

We have verified some properties of an ethernet driver written in Pancake by annotating the code with necessary conditions and translating it into Viper, an intermediate language, and then feeding it to SMT backends.

The aim of this project is to produce more test cases for this Pancake-to-Viper verification framework and then to compare and evaluate them, with an aim to assess its efficiency and provide data points for further improvements. The verification process involves writing programs (in particular, device drivers) in Pancake, and then add annotations representing pre- and post-conditions of the verification.

School

Computer Science and Engineering

Research Area

Formal methods | Formal verification | Programming language | Operating systems

Suitable for recognition of Work Integrated Learning (industrial training)? 

Yes

The Trustworthy Systems (TS) Group is the pioneer in formal (mathematical) correctness and security proofs of computer systems software. Its formally verified seL4 microkernel, now backed by the seL4 Foundation, is deployed in real-world systems ranging from defence systems via medical devices, autonomous cars to critical infrastructure. The group's vision is to make verified software the standard for security- and safety-critical systems. Core to this a focus on performance as well as making software verification more scalable and less expensive.

  • Report outlining the approach taken, tradeoffs considered and work done.
  • Pull request to the Trustworthy Systems Group's github repository with implementations.
Senior Proof Engineer / Adjunct Senior Lecturer Miki Tanaka
Senior Proof Engineer / Adjunct Senior Lecturer
Scientia Professor and John Lions Chair Gernot Heiser
Scientia Professor and John Lions Chair