gemini-2.5-flash-preview-04-17| input-price: 0.15 output-price: 3.5 max-context-length: 128_000 (cost: $0.008) Β· Anfrage: 2025-05-04T12:24:37.266279

Generated by rs-summarizer Version unbekannt

Abstract:

This presentation introduces C2Priscal, an automated tool developed to translate C source code into PlusCal specifications for formal model checking using TLA+ and TLC. Developed as part of an internship at Asteros Technologies, the tool aims to verify safety properties on simple C code, particularly for embedded systems like microkernels, thereby reducing the need for exhaustive manual testing. The tool leverages the Frama-C platform to parse C code into a 'Seal' intermediate representation, which is then translated into a custom PlusCal-like intermediate representation before generating the final PlusCal and TLC configuration files. Key aspects of the translation include representing C variables as pointers, complex data structures (arrays, structs) as sequences and records in memory stacks (mem, my_stack, wet), and handling control flow structures like loops and gotos using PlusCal constructs facilitated by the Seal representation. While the tool is currently incomplete, an experimental application on an older version of a scheduler's source code successfully found a known bug using TLC model checking, demonstrating the potential of this approach for automating verification. Limitations include verbosity of generated code, handling complex pointer arithmetic, and managing state space explosion due to fine-grained transitions, but future work aims to incorporate multi-threading and improve the translation process.

Automated Translation of C to PlusCal for Model Checking

Summary Rating: No ratings yet
Article Rating: No ratings yet

Source