Logic List Mailing Archive
PhD student position in compositional verification, Rennes (Frances)
Compositional verification of system program modules in Rust
Keywords: theorem proving, programming languages, operating systems,
formal verification, dependent types, theory of contracts
Project RIOT-fp [b] is an Inria Challenge with the objective of developing
future-proof operating system libraries [1,2,4] for application to IoT:
RIOT [a]. Our PhD project is interested in one of the futures of RIOT:
RIOT-rs, implemented in Rust [c]. This computing base provides access to a
vast ecosystem of analysis, code generation, verification and proof tools
[d,e,f]. It offers us to rethink a system software validation process that
would suit both system programming and verification requirements (as one
may expect from using, e.g., a theorem prover).
The notion of contract  is one ideal such interface between the
development and verification of system programs in Rust. A contract
allows, on one hand, to formally document the hypothesis and guarantees of
system modules, functions, artifacts, with respect to global safety ad
security requirements. Contracts can be sufficiently abstract and
comprehensible for system programmers, and adequately refined to meet the
strongest requirements of mechanized verification.
Our project will focus on the development of such a modular validation
flow by case-studying the core of RIOT's implementation in Rust
[riot-rs-core]. We define and exercise this workflow to characterize and
validate global requirements ranging from race-condition, deadlock
avoidance, priority management and schedulability, and/or memory
isolation, faul isolation, information flow control.
The project will be implemented with teams Tea and Celtique at Inria,
Rennes, in close collaboration with teams Tribe and Prosecco at Inria,
Paris. It requires a Master degree with solid background in proof theory
and mathematical logic, programming languages and type theory, as well as
motivation and interest in both the implementation and verification of
operating systems. Prior knowledge and experiences with both Rust, F*,
Coq, Lean will stand out. The project will require weekly multi-center
meetings and hence excellent communication and team-working skills in both
french and english.
[a] RIOT: http://www.riot-os.org
[b] RIOT-fp: https://future-proof-iot.github.io/RIOT-fp
[c] riot-rs-core: https://github.com/future-proof-iot/RIOT-rs/tree/main/src/riot-rs-core/src
[d] F*: https://www.fstar-lang.org
[e] Lean: https://leanprover.github.io
[f] Electrolysis: https://kha.github.io/electrolysis
 "Verified Functional Programming of an Abstract Interpreter". Static Analysis Symposium. ACM, 2021.
 "Verified Functional Programming of an IoT operating system’s boot-loader". International Conference on Formal Methods and Models for System Design. ACM, 2021.
 "A Mechanically Verified Theory of Contracts". International Colloquium on Theoretical Aspects of Computing. Springer, 2021.
 "End-to-end Mechanized Proof of an eBPF Virtual Machine for Microcontrollers". International Conference on Computer Aided Verification, 2022.
[LOGIC] mailing list
provided by a collaboration of the DVMLG, the Maths Departments in Bonn and Hamburg, and the ILLC at the Universiteit van Amsterdam