Pancake is a research programming language for systems programming under development at Chalmers University of Technology, ANU, and UNSW. It comes with a formally verified compiler and is built from the ground up for predictable compilation and ease of verification.
We have a transpilation tool ("transpiler") that converts annotated Pancake code into Viper, an intermediate language for an SMT-backend. Using this transpiler, we have verified some properties of device drivers written in Pancake, with annotations stating the necessary conditions.
The aim of this project is to investigate the possibility of alternative transpiler backends, such as Why3, for this verification framework. This will involve assessing the advantages and disadvantages over Viper, as well as the feasibility of hybrid verification (of SMT-based and interactive verification).
Computer Science and Engineering
Formal methods | Automated verification
Yes
- Research environment
- Expected outcomes
- Supervisory team
- Reference material/links
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, discoveries and conclusions of the investigation;
- Pull request to the Trustworthy Systems Group's github repository (if applicable).