×

Decoupling the ascending and descending phases in abstract interpretation. (English) Zbl 1524.68072

Sergey, Ilya (ed.), Programming languages and systems. 20th Asian symposium, APLAS 2022, Auckland, New Zealand, December 5, 2022. Proceedings. Cham: Springer. Lect. Notes Comput. Sci. 13658, 25-44 (2022).
Summary: Abstract Interpretation approximates the semantics of a program by mimicking its concrete fixpoint computation on an abstract domain \(\mathbb{A} \). The abstract (post-) fixpoint computation is classically divided into two phases: the ascending phase, using widenings as extrapolation operators to enforce termination, is followed by a descending phase, using narrowings as interpolation operators, so as to mitigate the effect of the precision losses introduced by widenings. In this paper we propose a simple variation of this classical approach where, to more effectively recover precision, we decouple the two phases: in particular, before starting the descending phase, we replace the domain \(\mathbb{A}\) with a more precise abstract domain \(\mathbb{D} \). The correctness of the approach is justified by casting it as an instance of the A\textsuperscript{2}I framework. After demonstrating the new technique on a simple example, we summarize the results of a preliminary experimental evaluation, showing that it is able to obtain significant precision improvements for several choices of the domains \(\mathbb{A}\) and \(\mathbb{D} \).
For the entire collection see [Zbl 1515.68047].

MSC:

68N30 Mathematical aspects of software engineering (specification, verification, metrics, requirements, etc.)
68Q55 Semantics in the theory of computing

Software:

SeaHorn; PAGAI; Apron; IKOS; Aspic

References:

[1] Amato, G.; Di Nardo Di Maio, S.; Meo, MC; Scozzari, F., Descending chains and narrowing on template abstract domains, Acta Informatica, 55, 6, 521-545 (2017) · Zbl 1398.68090 · doi:10.1007/s00236-016-0291-0
[2] Amato, G.; Scozzari, F.; Logozzo, F.; Fähndrich, M., Localizing widening and narrowing, Static Analysis, 25-42 (2013), Heidelberg: Springer, Heidelberg · Zbl 1440.68167 · doi:10.1007/978-3-642-38856-9_4
[3] Amato, G.; Scozzari, F.; Seidl, H.; Apinis, K.; Vojdani, V., Efficiently intertwining widening and narrowing, Sci. Comput. Program., 120, 1-24 (2016) · doi:10.1016/j.scico.2015.12.005
[4] Arceri, V.; Mastroeni, I.; Xu, S., Static analysis for ECMAScript string manipulation programs, Appl. Sci., 10, 3525 (2020) · doi:10.3390/app10103525
[5] Bagnara, R.; Hill, P.; Ricci, E.; Zaffanella, E., Precise widening operators for convex polyhedra, Sci. Comput. Program., 58, 1-2, 28-56 (2005) · Zbl 1088.68173 · doi:10.1016/j.scico.2005.02.003
[6] Bagnara, R.; Hill, P.; Zaffanella, E., Widening operators for powerset domains, Int. J. Softw. Tools Technol. Transf., 8, 4-5, 449-466 (2006) · Zbl 1202.68242 · doi:10.1007/s10009-005-0215-8
[7] Becchi, A.; Zaffanella, E.; Chockler, H.; Weissenbacher, G., A direct encoding for nnc polyhedra, Computer Aided Verification, 230-248 (2018), Cham: Springer, Cham · Zbl 1511.68069 · doi:10.1007/978-3-319-96145-3_13
[8] Becchi, A.; Zaffanella, E.; Podelski, A., An efficient abstract domain for not necessarily closed polyhedra, Static Analysis, 146-165 (2018), Cham: Springer, Cham · Zbl 1511.68070 · doi:10.1007/978-3-319-99725-4_11
[9] Becchi, A.; Zaffanella, E.; Chang, B-YE, Revisiting polyhedral analysis for hybrid systems, Static Analysis, 183-202 (2019), Cham: Springer, Cham · Zbl 1539.68149 · doi:10.1007/978-3-030-32304-2_10
[10] Becchi, A.; Zaffanella, E., PPLite: zero-overhead encoding of NNC polyhedra, Inf. Comput., 275, 104620 (2020) · Zbl 1496.68351 · doi:10.1016/j.ic.2020.104620
[11] Blanchet, B., et al.: A static analyzer for large safety-critical software. In: Cytron, R., Gupta, R. (eds.) Proceedings of the ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation 2003, San Diego, California, USA, 9-11 June 2003, pp. 196-207. ACM (2003). doi:10.1145/781131.781153
[12] Bourdoncle, F.; Bjørner, D.; Broy, M.; Pottosin, IV, Efficient chaotic iteration strategies with widenings, Formal Methods in Programming and Their Applications, 128-141 (1993), Heidelberg: Springer, Heidelberg · doi:10.1007/BFb0039704
[13] Boutonnet, R.; Halbwachs, N., Improving the results of program analysis by abstract interpretation beyond the decreasing sequence, Formal Methods Syst. Des., 53, 3, 384-406 (2017) · Zbl 1425.68064 · doi:10.1007/s10703-017-0310-y
[14] Brat, G.; Navas, JA; Shi, N.; Venet, A.; Giannakopoulou, D.; Salaün, G., IKOS: a framework for static analysis based on abstract interpretation, Software Engineering and Formal Methods, 271-277 (2014), Cham: Springer, Cham · doi:10.1007/978-3-319-10431-7_20
[15] Bruni, R., Giacobazzi, R., Gori, R., Garcia-Contreras, I., Pavlovic, D.: Abstract extensionality: on the properties of incomplete abstract interpretations. Proc. ACM Program. Lang. 4(POPL), 28:1-28:28 (2020)
[16] Bruni, R., Giacobazzi, R., Gori, R., Ranzato, F.: A logic for locally complete abstract interpretations. In: 36th Annual ACM/IEEE Symposium on Logic in Computer Science, LICS 2021, Rome, Italy, June 29-July 2, 2021, pp. 1-13. IEEE (2021)
[17] Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Conference Record of the Fourth ACM Symposium on Principles of Programming Languages, Los Angeles, California, USA, January 1977, pp. 238-252 (1977)
[18] Cousot, P., Cousot, R.: Systematic design of program analysis frameworks. In: Conference Record of the Sixth Annual ACM Symposium on Principles of Programming Languages, San Antonio, Texas, USA, January 1979, pp. 269-282 (1979) · Zbl 1323.68356
[19] Cousot, P.; Cousot, R., Abstract interpretation frameworks, J. Log. Comput., 2, 4, 511-547 (1992) · Zbl 0783.68073 · doi:10.1093/logcom/2.4.511
[20] Cousot, P., Giacobazzi, R., Ranzato, F.: A \({^2}\) I: abstract \({^2}\) interpretation. Proc. ACM Program. Lang. 3(POPL), 42:1-42:31 (2019). doi:10.1145/3290355 · Zbl 1511.68074
[21] Cousot, P., Halbwachs, N.: Automatic discovery of linear restraints among variables of a program. In: Aho, A., Zilles, S., Szymanski, T. (eds.) Conference Record of the Fifth Annual ACM Symposium on Principles of Programming Languages, Tucson, Arizona, USA, January 1978, pp. 84-96. ACM Press (1978). doi:10.1145/512760.512770
[22] Cousot, P.; Cousot, R.; Bruynooghe, M.; Wirsing, M., Comparing the Galois connection and widening/narrowing approaches to abstract interpretation, Programming Language Implementation and Logic Programming, 269-295 (1992), Heidelberg: Springer, Heidelberg · Zbl 0776.68024 · doi:10.1007/3-540-55844-6_142
[23] Gaubert, S.; Goubault, E.; Taly, A.; Zennou, S.; De Nicola, R., Static analysis by policy iteration on relational domains, Programming Languages and Systems, 237-252 (2007), Heidelberg: Springer, Heidelberg · Zbl 1187.68151 · doi:10.1007/978-3-540-71316-6_17
[24] Gawlitza, T.; Seidl, H.; De Nicola, R., Precise fixpoint computation through strategy iteration, Programming Languages and Systems, 300-315 (2007), Heidelberg: Springer, Heidelberg · Zbl 1187.68152 · doi:10.1007/978-3-540-71316-6_21
[25] Gonnord, L.; Halbwachs, N.; Yi, K., Combining widening and acceleration in linear relation analysis, Static Analysis, 144-160 (2006), Heidelberg: Springer, Heidelberg · Zbl 1225.68071 · doi:10.1007/11823230_10
[26] Gopan, D.; Reps, T.; Ball, T.; Jones, RB, Lookahead widening, Computer Aided Verification, 452-466 (2006), Heidelberg: Springer, Heidelberg · doi:10.1007/11817963_41
[27] Gopan, D.; Reps, T.; Nielson, HR; Filé, G., Guided static analysis, Static Analysis, 349-365 (2007), Heidelberg: Springer, Heidelberg · Zbl 1211.68087 · doi:10.1007/978-3-540-74061-2_22
[28] Gurfinkel, A.; Kahsai, T.; Komuravelli, A.; Navas, JA; Kroening, D.; Păsăreanu, CS, The SeaHorn verification framework, Computer Aided Verification, 343-361 (2015), Cham: Springer, Cham · doi:10.1007/978-3-319-21690-4_20
[29] Halbwachs, N.; Henry, J.; Miné, A.; Schmidt, D., When the decreasing sequence fails, Static Analysis, 198-213 (2012), Heidelberg: Springer, Heidelberg · doi:10.1007/978-3-642-33125-1_15
[30] Halbwachs, N.; Merchat, D.; Gonnord, L., Some ways to reduce the space dimension in polyhedra computations, Formal Methods Syst. Des., 29, 1, 79-95 (2006) · Zbl 1105.68107 · doi:10.1007/s10703-006-0013-2
[31] Halbwachs, N.; Proy, Y-E; Raymond, P.; Le Charlier, B., Verification of linear hybrid systems by means of convex approximations, Static Analysis, 223-237 (1994), Heidelberg: Springer, Heidelberg · doi:10.1007/3-540-58485-4_43
[32] Henry, J.; Monniaux, D.; Moy, M., PAGAI: a path sensitive static analyser, Electron. Notes Theor. Comput. Sci., 289, 15-25 (2012) · doi:10.1016/j.entcs.2012.11.003
[33] Jeannet, B.; Miné, A.; Bouajjani, A.; Maler, O., Apron: a library of numerical abstract domains for static analysis, Computer Aided Verification, 661-667 (2009), Heidelberg: Springer, Heidelberg · doi:10.1007/978-3-642-02658-4_52
[34] Mansur, MN; Mariano, B.; Christakis, M.; Navas, JA; Wüstholz, V.; Silva, A.; Leino, KRM, Automatically tailoring abstract interpretation to custom usage scenarios, Computer Aided Verification, 777-800 (2021), Cham: Springer, Cham · doi:10.1007/978-3-030-81688-9_36
[35] Miné, A., The octagon abstract domain, High. Order Symb. Comput., 19, 1, 31-100 (2006) · Zbl 1105.68069 · doi:10.1007/s10990-006-8609-1
[36] Monniaux, D.; Guen, JL, Stratified static analysis based on variable dependencies, Electron. Notes Theor. Comput. Sci., 288, 61-74 (2012) · Zbl 1294.68063 · doi:10.1016/j.entcs.2012.10.008
[37] Nielson, F., Nielson, H., Hankin, C.: Principles of Program Analysis. Springer, Berlin (1999). doi:10.1007/978-3-662-03811-6 · Zbl 0932.68013
[38] Simon, A.; King, A.; Kobayashi, N., Widening polyhedra with landmarks, Programming Languages and Systems, 166-182 (2006), Heidelberg: Springer, Heidelberg · Zbl 1168.68365 · doi:10.1007/11924661_11
[39] Singh, G., Püschel, M., Vechev, M.: Fast polyhedra abstract domain. In: Castagna, G., Gordon, A. (eds.) Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages, POPL 2017, Paris, France, 18-20 January 2017, pp. 46-59. ACM (2017). doi:10.1145/3009837.3009885 · Zbl 1380.68131
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. In some cases that data have been complemented/enhanced by data from zbMATH Open. This attempts to reflect the references listed in the original paper as accurately as possible without claiming completeness or a perfect matching.