Abstract
Deductive verification is often more efficient than alternative techniques like model checking at reasoning about functional properties of programs. This is especially true when the program under verification contains very large or unbounded data ranges that model checkers struggle with. However, modular deductive verifiers struggle with verifying global properties, which are often crucial in concurrent and reactive embedded systems. Embedded systems often require complex user-defined invariants to capture the global state for the verification of local annotations, demanding high effort and expertise from the user. In this paper, we propose a method to automatically generate compact invariants that are sufficiently strong to enable effective deductive verification of global properties in embedded systems. Our key idea is that a good level of abstraction can be found automatically by choosing variables for refinement that influence relevant events and process interactions. We use this idea together with abstract interpretation to build a system’s state space, abstracted to the relevant part for a given global property. We demonstrate the effectiveness of our approach on a SystemC design of an automotive control system that has in the past proved challenging to verify.
References
Artifact. https://doi.org/10.4121/86963fe3-cc3f-45c3-b252-00d8780c4a1a
Amighi, A., Haack, C., Huisman, M., Hurlin, C.: Permission-based separation logic for multithreaded Java programs. Log. Methods Comput. Sci. 11(1) (2015). https://doi.org/10.2168/LMCS-11(1:2)2015
Armborst, L., et al.: The VerCors verifier: a progress report. In: Gurfinkel, A., Ganesh, V. (eds.) CAV 2024. LNCS, vol. 14682, pp. 3–18. Springer, Cham (2024). https://doi.org/10.1007/978-3-031-65630-9_1
Behrmann, G., David, A., Larsen, K.G.: A tutorial on Uppaal. In: Bernardo, M., Corradini, F. (eds.) SFM-RT 2004. LNCS, vol. 3185, pp. 200–236. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-30080-9_7
Bensalem, S., Lakhnech, Y.: Automatic generation of invariants. Form. Methods Syst. Des. 15, 75–92 (1999). https://doi.org/10.1023/A:1008744030390
Beyer, D., Chien, P.C., Lee, N.Z.: Augmenting interpolation-based model checking with auxiliary invariants (2024). https://doi.org/10.48550/arXiv.2403.07821
Beyer, D., Keremoglu, M.E.: CPAchecker: a tool for configurable software verification. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 184–190. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-22110-1_16
Blom, S., Darabi, S., Huisman, M., Oortwijn, W.: The VerCors tool set: verification of parallel and concurrent software. In: Polikarpova, N., Schneider, S. (eds.) IFM 2017. LNCS, vol. 10510, pp. 102–110. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-66845-1_7
Bradley, A.R.: SAT-based model checking without unrolling. In: Jhala, R., Schmidt, D. (eds.) VMCAI 2011. LNCS, vol. 6538, pp. 70–87. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-18275-4_7
Case, M.L., Mishchenko, A., Brayton, R.K.: Automated extraction of inductive invariants to aid model checking. In: Formal Methods in Computer-Aided Design, pp. 165–172. IEEE (2007). https://doi.org/10.1109/FAMCAD.2007.12
Cimatti, A., Griggio, A.: Software model checking via IC3. In: Madhusudan, P., Seshia, S.A. (eds.) CAV 2012. LNCS, vol. 7358, pp. 277–293. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-31424-7_23
Cimatti, A., Narasamdya, I., Roveri, M.: Software model checking SystemC. IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 32(5), 774–787 (2013). https://doi.org/10.1109/TCAD.2012.2232351
Clarke, E., Grumberg, O., Jha, S., Lu, Y., Veith, H.: Counterexample-guided abstraction refinement. In: Emerson, E.A., Sistla, A.P. (eds.) CAV 2000. LNCS, vol. 1855, pp. 154–169. Springer, Heidelberg (2000). https://doi.org/10.1007/10722167_15
Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, pp. 238–252. ACM Press (1977). https://doi.org/10.1145/512950.512973
Craig, W.: Linear reasoning. A new form of the Herbrand-Gentzen theorem. J. Symb. Logic 22, 250–268 (1957). https://doi.org/10.2307/2963593
Fedyukovich, G., Bodík, R.: Accelerating syntax-guided invariant synthesis. In: Beyer, D., Huisman, M. (eds.) TACAS 2018. LNCS, vol. 10805, pp. 251–269. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-89960-2_14
Furia, C.A., Meyer, B., Velder, S.: Loop invariants: analysis, classification, and examples. ACM Comput. Surv. (CSUR) 46(3), 1–51 (2014). https://doi.org/10.1145/2506375
Galeotti, J.P., Furia, C.A., May, E., Fraser, G., Zeller, A.: DynaMate: dynamically inferring loop invariants for automatic full functional verification. In: Yahav, E. (ed.) HVC 2014. LNCS, vol. 8855, pp. 48–53. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-13338-6_4
Große, D., Le, H.M., Drechsler, R.: Formal verification of SystemC-based cyber components. In: Jeschke, S., Brecher, C., Song, H., Rawat, D.B. (eds.) Industrial Internet of Things. SSWT, pp. 137–167. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-42559-7_6
Herber, P., Glesner, S.: A HW/SW co-verification framework for SystemC. ACM Trans. Embed. Comput. Syst. (TECS) 12(1s), 1–23 (2013). https://doi.org/10.1145/2435227.2435257
Herber, P., Hünnemeyer, B.: Formal verification of SystemC designs using the BLAST software model checker. In: ACESMB@ MoDELS, pp. 44–53 (2014). https://dblp.org/rec/conf/models/HerberH14
Herber, P., Liebrenz, T.: Dependence analysis and automated partitioning for scalable formal analysis of SystemC designs. In: ACM-IEEE International Conference on Formal Methods and Models for System Design, pp. 1–6. IEEE (2020). https://doi.org/10.1109/MEMOCODE51338.2020.9314998
Herdt, V., Große, D., Drechsler, R.: Formal verification of SystemC-based designs using symbolic simulation. In: Enhanced Virtual Prototyping, pp. 59–117. Springer, Cham (2021). https://doi.org/10.1007/978-3-030-54828-5_4
IEEE Standards Association: IEEE Std. 1666–2011, SystemC Language Reference Manual. IEEE Press (2011). https://doi.org/10.1109/IEEESTD.2012.6134619
Karlsson, D., Eles, P., Peng, Z.: Formal verification of SystemC designs using a Petri-net based representation. In: Design, Automation and Test in Europe, pp. 1228–1233. IEEE Press (2006). https://doi.org/10.1109/DATE.2006.244076
Man, K.L., Fedeli, A., Mercaldi, M., Boubekeur, M., Schellekens, M.: SC2SCFL: automated SystemC to \(SystemC^{\mathbb{F}\mathbb{L}}\) translation. In: Vassiliadis, S., Bereković, M., Hämäläinen, T.D. (eds.) SAMOS 2007. LNCS, vol. 4599, pp. 34–45. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-73625-7_6
McMillan, K.L.: Interpolation and SAT-based model checking. In: International Conference on Computer Aided Verification, pp. 1–13 (2003). https://doi.org/10.1007/978-3-540-45069-6_1
O’Hearn, P.W.: Resources, concurrency and local reasoning. Theor. Comput. Sci. 375(1–3), 271–307 (2007). https://doi.org/10.1016/j.tcs.2006.12.035
Phan, Q.S., Malacaria, P.: All-solution satisfiability modulo theories: applications, algorithms and benchmarks. In: International Conference on Availability, Reliability and Security, pp. 100–109. IEEE (2015). https://doi.org/10.1109/ARES.2015.14
Reif, K.: Bremsen und Bremsregelsysteme [Brakes and brake control systems]. Bosch Fachinformation Automobil, Vieweg+Teubner Verlag Wiesbaden (2010). https://doi.org/10.1007/978-3-8348-9714-5
Tabar, A.H., Bubel, R., Hähnle, R.: Automatic loop invariant generation for data dependence analysis. In: IEEE/ACM International Conference on Formal Methods in Software Engineering, pp. 34–45 (2022). https://doi.org/10.1145/3524482.3527649
Tasche, P., Monti, R.E., Drerup, S.E., Blohm, P., Herber, P., Huisman, M.: Deductive verification of parameterized embedded systems modeled in SystemC. In: Dimitrova, R., Lahav, O., Wolff, S. (eds.) VMCAI 2024. LNCS, vol. 14500, pp. 187–209. Springer, Cham (2024). https://doi.org/10.1007/978-3-031-50521-8_9
Yu, Y., Subramanyan, P., Tsiskaridze, N., Malik, S.: All-SAT using minimal blocking clauses. In: International Conference on VLSI Design, pp. 86–91. IEEE (2014). https://doi.org/10.1109/VLSID.2014.22
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2025 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Tasche, P., Herber, P., Huisman, M. (2025). Automated Invariant Generation for Efficient Deductive Reasoning About Embedded Systems. In: Madeira, A., Knapp, A. (eds) Software Engineering and Formal Methods. SEFM 2024. Lecture Notes in Computer Science, vol 15280. Springer, Cham. https://doi.org/10.1007/978-3-031-77382-2_23
Download citation
DOI: https://doi.org/10.1007/978-3-031-77382-2_23
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-77381-5
Online ISBN: 978-3-031-77382-2
eBook Packages: Computer ScienceComputer Science (R0)