Abstract
This work presents a formal verification process based on the Systerel Smart Solver (S3) toolset for the development of safety-critical embedded software. In order to guarantee the correctness of the implementation of a set of textual requirements, the process integrates different verification techniques (inductive proof, bounded model checking, test cases generation, and equivalence proof) to handle different types of properties at their best capacities. It is aimed at the verification of properties at system, design, and code levels. To handle the floating-point arithmetic (FPA) in both the design and the code, an FPA library is designed and implemented in S3. This work is illustrated on an Automatic Rover Protection system implemented onboard a robot. Focus is placed on the verification of safety and functional properties and on the equivalence proof between the design model and the generated code.
Similar content being viewed by others
Notes
S3 is maintained, developed, and distributed by Systerel (http://www.systerel.fr/).
The diversified expanders are designed and implemented by different teams using different programming languages.
Triplex sensor voter case study is provided by Rockwell Collins to make it publicly available to the research community.
The lemma generation is not addressed in our benchmark.
Double precision is quite rare in practice.
The INGEQUIP project is conducted at the IRT-Saint Exupéry. Main partners include academic members from LAAS, IRIT, ONERA, and ISAE; and industrial members from Airbus, Thales, Continental, Airbus D & S, ACTIA, SAGEM, Systerel, etc.
With respect to the DO178, the Lustre model is considered to express LLRs, since the source code is directly generated from the model with no other interpretation/refinement.
Contact the authors for the specification document, design model, and formal properties.
It is the verification engineer’s duty to translate the natural language requirements to the HLL properties.
Usually, the safety referred by requirements means the system is safe, while the safety referred by properties is related to the deterministic process. Here is the latter case.
Lemma searching is not a must. It is possible that a property is k-inductive.
As explained by the REQ-01-4 in Table 5, we use continuous (continuity) hereafter for the fact that each waypoint has a unique precedent waypoint in a mission or in a reserved area, except that it is the initial one.
Indeterminate means neither valid nor violated, or unknown.
The counterexample of liveness property is a path to a loop that does not contain the desired state. This implies that with an infinite loop path, the system never reaches the specified state.
The translator lus2c is provided by Lustre v4 toolset.
Qualification is a requirement in getting a system certified.
References
Benveniste, A., Berry, G.: The synchronous approach to reactive and real-time systems. Proc. IEEE 79(9), 1270–1282 (1991)
Biere, A., Cimatti, A., Clarke, E., Zhu, Y.: Symbolic Model Checking Without BDDs. Springer, Berlin (1999)
Biere, A., Heule, M., van Maaren, H.: Handbook of Satisfiability, vol. 185. IOS Press, Amsterdam (2009)
Birgmeier, J., Bradley, A.R., Weissenbacher, G.: Counterexample to induction-guided abstraction-refinement (CTIGAR). In: Computer Aided Verification, pp. 831–848. Springer, Berlin (2014)
Bjesse, P., Claessen, K.: SAT-based verification without state space traversal. In: Formal Methods in Computer-Aided Design, pp. 409–426. Springer, Berlin (2000)
Blanchet, B., Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., Monniaux, D., Rival, X.: A static analyzer for large safety-critical software. In: ACM SIGPLAN Notices, vol. 38, pp. 196–207. ACM (2003)
Brain, M., D’Silva, V., Griggio, A., Haller, L., Kroening, D.: Interpolation-based verification of floating-point programs with abstract CDCL. In: Static Analysis, pp. 412–432. Springer, Berlin (2013)
Brain, M., D’Silva, V., Griggio, A., Haller, L., Kroening, D.: Deciding floating-point logic with abstract conflict driven clause learning. Form. Methods Syst. Des. 45(2), 213–245 (2014)
Brillout, A., Kroening, D., Wahl, T.: Mixed abstractions for floating-point arithmetic. In: Formal Methods in Computer-Aided Design, 2009. FMCAD 2009, pp. 69–76. IEEE (2009)
Caspi, P., Curic, A., Maignan, A., Sofronis, C., Tripakis, S., Niebert, P.: From Simulink to SCADE/Lustre to TTA: a layered approach for distributed embedded applications. In: ACM Sigplan Notices, vol. 38, pp. 153–162. ACM (2003)
Champion, A., Delmas, R., Dierkes, M.: Generating property-directed potential invariants by quantifier elimination in a k-induction-based framework. Sci. Comput. Program. 103, 71–87 (2015)
Cimatti, A., Griggio, A., Schaafsma, B.J., Sebastiani, R.: The MathSAT5 SMT solver. In: Tools and Algorithms for the Construction and Analysis of Systems, pp. 93–107. Springer, Berlin (2013)
Clabaut, M., Ge, N., Breton, N., Jenn, E., Delmas, R., Fonteneau, Y.: Industrial grade model checking—use cases, constraints, tools and applications. In: International Conference on Embedded Real Time Software and Systems (2016)
Cody, W.J., Waite, W.M.C.: Software Manual for the Elementary Functions. Prentice-Hall series in computational mathematics. Prentice-Hall, Englewood Cliffs (1980)
Cuenot, P., Jenn, E., Faure, E., Broueilh, N., Rouland, E.: An experiment on exploiting virtual platforms for the development of embedded equipments. In: 8th European Congress on Embedded Real Time Software and Systems (ERTS 2016) (2016)
Cuenot, P., Jenn, E., Faure, E., Broueilh, N., Rouland, E.: An experiment on exploiting virtual platforms for the development of embedded equipments. In: International Conference on Embedded Real Time Software and Systems (2016)
Dajani-Brown, S., Cofer, D., Hartmann, G., Pratt, S.: Formal modeling and analysis of an avionics triplex sensor voter. In: Model Checking Software, pp. 34–48. Springer, Berlin (2003)
De Moura, L., Bjørner, N.: Z3: An efficient SMT solver. In: Tools and Algorithms for the Construction and Analysis of Systems, pp. 337–340. Springer, Berlin (2008)
Dierkes, M.: Formal analysis of a triplex sensor voter in an industrial context. In: Formal Methods for Industrial Critical Systems, pp. 102–116. Springer, Berlin (2011)
Dieumegard, A., Ge, N., Jenn, E.: Event-B at work: some lessons learnt from an application to a robot anti-collision function. In: 9th NASA Formal Methods Symposium (NFM 2017) (2017)
Fröhlich, A., Biere, A., Wintersteiger, C.M., Hamadi, Y.: Stochastic local search for satisfiability modulo theories. In: Twenty-Ninth AAAI Conference on Artificial Intelligence (2015)
Ge, N., Dieumegard, A., Jenn, E., d’Ausbourg, B., Aït-Ameur, Y.: Formal development process of safety-critical embedded human machine interface systems. In: Eleventh International Symposium on Theoretical Aspects of Software Engineering (2017)
Ge, N., Dieumegard, A., Jenn, E., Voisin, L.: From event-B to verified C via HLL. ArXiv preprint arXiv:1610.07410 (2016)
Ge, N., Jenn, E., Breton, N., Fonteneau, Y.: Formal verification of a rover anti-collision system. In: International Workshop on Formal Methods for Industrial Critical Systems and Automated Verification of Critical Systems (FMICS-AVoCS 2016), vol. 9933, pp. 171–188 (2016)
Halbwachs, N., Caspi, P., Raymond, P., Pilaud, D.: The synchronous data flow programming language LUSTRE. Proc. IEEE 79(9), 1305–1320 (1991)
Harrison, J.: Floating-point verification using theorem proving. In: Formal Methods for Hardware Verification, pp. 211–242. Springer, Berlin (2006)
IEEE Standards Association. IEEE standard for floating-point arithmetic (2008)
Lapschies, F., Peleska, J., Gorbachuk, E., Mangels, T.: Sonolar SMT-solver. In: Satisfiability Modulo Theories Competition; System Description (2012)
Leeser, M., Mukherjee, S., Ramachandran, J., Wahl, T.: Make it real: effective floating-point reasoning via exact arithmetic. In: Design, Automation and Test in Europe Conference and Exhibition (DATE), 2014, pp. 1–4. IEEE (2014)
McMillan, K.L.: Interpolation and SAT-based model checking. In: Computer Aided Verification, pp. 1–13. Springer, Berlin (2003)
Meseguer, J., Ölveczky, P.C.: Formalization and correctness of the pals architectural pattern for distributed real-time systems. In: International Conference on Formal Engineering Methods, pp. 303–320. Springer, Berlin (2010)
Monniaux, D.: The pitfalls of verifying floating-point computations. ACM Trans. Program. Lang. Syst. (TOPLAS) 30(3), 12 (2008)
Roux, P., Jobredeaux, R., Garoche, P.-L.: Closed loop analysis of control command software. In: Proceedings of the 18th International Conference on Hybrid Systems: Computation and Control, pp. 108–117. ACM (2015)
RTCA DO. 178c.: Software Considerations in Airborne Systems and Equipment Certification (2011)
RTCA DO. 330.: Software Tool Qualification Considerations (2011)
Rümmer, P., Wahl, T.: An SMT-LIB theory of binary floating-point arithmetic. In: International Workshop on Satisfiability Modulo Theories (SMT), p. 151 (2010)
Rushby, J.: Integrated formal verification: using model checking with automated abstraction, invariant generation, and theorem proving. In: Theoretical and Practical Aspects of SPIN Model Checking, pp. 1–11. Springer, Berlin (1999)
Sha, L., Al-Nayeem, A., Sun, M., Meseguer, J., Olveczky, P.C.: PALS: physically asynchronous logically synchronous systems. Technical report, University of Illinois (2009)
Sheeran, M., Singh, S., Stålmarck, G.: Checking safety properties using induction and a SAT-solver. In: Formal Methods in Computer-Aided Design, pp. 127–144. Springer, Berlin (2000)
Zave, P., Jackson, M.: Four dark corners of requirements engineering. ACM Trans. Softw. Eng. Methodol. (TOSEM) 6(1), 1–30 (1997)
Acknowledgements
This work has been funded by the INGEQUIP project. The authors would like to thank the members in the project for their good cooperation. We are thankful to Rémi Delmas and Michael Dierkes for sharing the experimental results on the TSV use case and their expertise. The authors want to express appreciation to the anonymous reviewers for their constructive and helpful comments.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Ge, N., Jenn, E., Breton, N. et al. Integrated formal verification of safety-critical software. Int J Softw Tools Technol Transfer 20, 423–440 (2018). https://doi.org/10.1007/s10009-017-0475-0
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10009-017-0475-0