Synchronous languages such as Lustre and Scade are used to implement safety-critical control systems; proving such programs correct and having the proved properties apply to the compiled code is therefore equally critical. We introduce Pipit, a small synchronous language embedded in F*, designed for verifying control systems and executing them in real-time. Pipit includes a verified translation to transition systems; by reusing F*’s existing proof automation, certain safety properties can be automatically proved by k-induction on the transition system. Pipit can also generate executable code in a subset of F* which is suitable for compilation and real-time execution on embedded devices. The executable code is deterministic and total and preserves the semantics of the original program.
@Article{robinson_et_al:DARTS.10.2.19, author = {Robinson, Amos and Potanin, Alex}, title = {{Pipit on the Post: Proving Pre- and Post-Conditions of Reactive Systems (Artifact)}}, pages = {19:1--19:2}, journal = {Dagstuhl Artifacts Series}, ISBN = {978-3-95977-342-3}, ISSN = {2509-8195}, year = {2024}, volume = {10}, number = {2}, editor = {Robinson, Amos and Potanin, Alex}, publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik}, address = {Dagstuhl, Germany}, URL = {https://drops.dagstuhl.de/entities/document/10.4230/DARTS.10.2.19}, URN = {urn:nbn:de:0030-drops-209177}, doi = {10.4230/DARTS.10.2.19}, annote = {Keywords: Lustre, streaming, reactive, verification} }
d189cb98071ea28d01ac2f98cb52bf42
(Get MD5 Sum)
The artifact has been evaluated as described in the ECOOP 2024 Call for Artifacts and the ACM Artifact Review and Badging Policy.
Feedback for Dagstuhl Publishing