Abstract
Abstract interpretation offers sound and decidable approximations for undecidable queries related to program behavior. The effectiveness of an abstract interpretation process relies entirely on the abstract domain itself, and the worst-case scenario is when the abstract interpreter responds with “don’t know”, meaning that anything could happen during runtime. The concept of completeness relates to the answer precision degree when performing computations within the abstract domain. However, completeness for a whole language is an ideal domain property, usually holding only on trivial situations [20]; for this reason, a local notion of completeness, holding on a specific program input, has been deeply investigated [5]. In this paper, we characterize an intermediate notion holding for sets of input selected by abstraction. In other words, completeness holds for a set of concrete inputs determined by one abstract input. In this sense, it is a form of local abstract completeness required locally on one specific abstract value. We provide a simple proof system for proving this weakening of completeness and several examples. Notably, this proof system is both language and domain-agnostic and can be readily incorporated to support static program analysis.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
By \(\le _{\textsf{A}}\) we denote the partial order relation on \(\textsf{A}\).
- 2.
Note that, the abstract program semantics so far defined is, in general, an over-approximation of the bca , i.e., \(\forall \texttt {r}\in {{\,\mathrm{{\mathfrak {L}}}\,}},\forall \texttt{a}\in \textsf{A}.\,{\llbracket \texttt {r} \rrbracket }^{\textsf{A}}\texttt{a}\le _{\textsf{A}}{\llbracket \texttt {r} \rrbracket }^{\sharp }_{\textsf{A}}\texttt{a}\).
- 3.
The choice of considering functions with potentially different input and output domains aims to underline the generality of the definition, independent from the field of application.
- 4.
In this case, for the sake of readability, we avoid annotating the abstract domains on which we define the abstraction.
- 5.
The name (abstract) non-interference is an inheritance from language-based security where the notion has been introduced for modeling when a (property of a) sensitive input was not interfering with (a property of) an observable output [15].
- 6.
In the machine learning context, a similar notion recently introduced is abstract robustness [24].
- 7.
Note that if the \(\textsf{b}\) is not expressible then we need \(\textsf{A}(\texttt{c})\subseteq (\!|\textsf{b}|\!)\) for implying local ani , similarly for \(\lnot \textsf{b}\).
References
Arceri, V., Mastroeni, I., Zaffanella, E.: Decoupling the ascending and descending phases in abstract interpretation. In: Sergey, I. (ed.) Programming Languages and Systems, pp. 25–44. Springer (2022)
Banerjee, A., Giacobazzi, R., Mastroeni, I.: What you lose is what you leak: information leakage in declassifivation policies. In: Proceedings of the 23th Internat. Symp. on Mathematical Foundations of Programming Semantics (MFPS ’07). Electronic Notes in Theoretical Computer Science, vol. 1514. Elsevier (2007)
Bourdoncle, F.: Abstract interpretation by dynamic partitioning. J. Funct. Program. 2(4), 407–435 (1992)
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). https://doi.org/10.1145/3371096
Bruni, R., Giacobazzi, R., Gori, R., Ranzato, F.: A logic for locally complete abstract interpretations. In: Symposium on Logic in Computer Science, LICS, pp. 1–13. IEEE (2021)
Bruni, R., Giacobazzi, R., Gori, R., Ranzato, F.: Abstract interpretation repair. In: Jhala, R., Dillig, I. (eds.) PLDI ’22: 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation, San Diego, CA, USA, June 13 - 17, 2022, pp. 426–441. ACM (2022)
Bruni, R., Giacobazzi, R., Gori, R., Ranzato, F.: A correctness and incorrectness program logic. J. ACM 70(2) (2023)
Campion, M., Preda, M.D., Giacobazzi, R.: Partial (in)completeness in abstract interpretation: limiting the imprecision in program analysis. Proc. ACM Program. Lang. 6(POPL), 1–31 (2022). https://doi.org/10.1145/3498721
Cousot, P.: Asynchronous iterative methods for solving a fixed point system of monotone equations in a complete lattice. Research report R.R. 88, Laboratoire IMAG, Université scientifique et médicale de Grenoble, Grenoble, France (1977). 15 p
Cousot, P.: Constructive design of a hierarchy of semantics of a transition system by abstract interpretation. Theor. Comput. Sci. 277(1–2), 47–103 (2002)
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 4th ACM Symposium on Principles of Programming Languages (POPL ’77), pp. 238–252. ACM Press (1977)
Cousot, P., Cousot, R.: Systematic design of program analysis frameworks. In: Conference Record of the 6th ACM Symposium on Principles of Programming Languages (POPL ’79), pp. 269–282. ACM Press (1979)
Cousot, P., Cousot, R.: Comparing the Galois connection and widening/narrowing approaches to abstract interpretation. In: Bruynooghe, M., Wirsing, M. (eds.) PLILP 1992. LNCS, vol. 631, pp. 269–295. Springer, Heidelberg (1992). https://doi.org/10.1007/3-540-55844-6_142
Cousot, P.: Principles of Abstract Interpretation. MIT Press (2021)
Giacobazzi, R., Mastroeni, I.: Abstract non-interference: parameterizing non-interference by abstract interpretation. In: Proceedings of the 31st Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’04), pp. 186–197. ACM-Press (2004)
Giacobazzi, R., Mastroeni, I.: Adjoining classified and unclassified information by abstract interpretation. J. Comput. Secur. 18(5), 751–797 (2010)
Giacobazzi, R., Mastroeni, I.: Making abstract interpretation incomplete - modeling the potency of obfuscation. In: Miné, A., Schmidt, D. (eds.) 19th International Static Analysis Symposium (SAS ’12). Lecture Notes in Computer Science, vol. 7460, pp. 129–145 (2012)
Giacobazzi, R., Ranzato, F., Scozzari, F.: Making abstract interpretation complete. J. ACM 47(2), 361–416 (2000)
Giacobazzi, R., Jones, N.D., Mastroeni, I.: Obfuscation by partial evaluation of distorted interpreters. In: Kiselyov, O., Thompson, S.J. (eds.) Proceedings of the ACM SIGPLAN 2012 Workshop on Partial Evaluation and Program Manipulation, PEPM 2012, Philadelphia, Pennsylvania, USA, January 23–24, 2012, pp. 63–72. ACM (2012)
Giacobazzi, R., Logozzo, F., Ranzato, F.: Analyzing program analyses. In: Rajamani, S.K., Walker, D. (eds.) Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2015, Mumbai, India, 15–17 January 2015, pp. 261–273. ACM (2015)
Giacobazzi, R., Mastroeni, I.: Making abstract models complete. Math. Struct. Comput. Sci. 26(4), 658–701 (2016)
Giacobazzi, R., Mastroeni, I.: Abstract non-interference: a unifying framework for weakening information-flow. ACM Trans. Priv. Secur. 21(2), 1–31 (2018)
Giacobazzi, R., Mastroeni, I., Perantoni, E.: How fitting is your abstract domain? In: Hermenegildo, M.V., Morales, J.F. (eds.) Static Analysis. pp. 286–309. Springer (2023)
Giacobazzi, R., Mastroeni, I., Perantoni, E.: Adversities in abstract interpretation - accommodating robustness by abstract interpretation. ACM Trans. Program. Lang. Syst. 46(2) (2024). https://doi.org/10.1145/3649309
Giacobazzi, R., Mastroeni, I., Preda, M.D.: Maximal incompleteness as obfuscation potency. Formal Aspects Comput. 29(1), 3–31 (2017)
Mastroeni, I., Banerjee, A.: Modelling declassification policies using abstract domain completeness. Math. Struct. Comput. Sci. 21(6), 1253–1299 (2011)
Mastroeni, I., Pasqua, M.: Statically analyzing information flows: an abstract interpretation-based hyperanalysis for non-interference. In: Hung, C., Papadopoulos, G.A. (eds.) Proceedings of the 34th ACM/SIGAPP Symposium on Applied Computing, SAC 2019, pp. 2215–2223. ACM (2019). https://doi.org/10.1145/3297280.3297498
Mastroeni, I.: Abstract interpretation-based approaches to security - a survey on abstract non-interference and its challenging applications. In: Banerjee, A., Danvy, O., Doh, K., Hatcliff, J. (eds.) Semantics, Abstract Interpretation, and Reasoning about Programs: Essays Dedicated to David A. Schmidt on the Occasion of his Sixtieth Birthday, Manhattan, Kansas, USA, 19-20th September 2013. EPTCS, vol. 129, pp. 41–65 (2013)
Mastroeni, I.: Abstract domain adequacy: weakening completeness towards static analysis precision (2024). under submission
Mastroeni, I., Pasqua, M.: Hyperhierarchy of semantics - a formal framework for hyperproperties verification. In: Ranzato, F. (ed.) Static Analysis, pp. 232–252. Springer, Cham (2017)
Mastroeni, I., Pasqua, M.: Verifying bounded subset-closed hyperproperties. In: Podelski, A. (ed.) Static Analysis, pp. 263–283. Springer, Cham (2018)
Mastroeni, I., Pasqua, M.: Verifying opacity by abstract interpretation. In: Hong, J., Bures, M., Park, J.W., Cerný, T. (eds.) SAC ’22: The 37th ACM/SIGAPP Symposium on Applied Computing, Virtual Event, April 25 - 29, 2022, pp. 1817–1826. ACM (2022). https://doi.org/10.1145/3477314.3507119
Mastroeni, I., Pasqua, M.: Domain precision in Galois connection-less abstract interpretation. In: Hermenegildo, M.V., Morales, J.F. (eds.) Static Analysis, pp. 434–459. Springer, Cham (2023)
Müller, M.N., Fischer, M., Staab, R., Vechev, M.: Abstract interpretation of fixpoint iterators with applications to neural networks. Proc. ACM Program. Lang. 7(PLDI) (2023)
O’Hearn, P.W.: Incorrectness logic. In: Proceedings of the ACM on Programming Languages (POPL), vol. 4, no. 10 (2020)
Winskel, G.: The Formal Semantics of Programming Languages: An Introduction. MIT Press (1993)
Funding
This work was supported by the project SERICS (PE00000014) under the MUR National Recovery and Resilience Plan funded by the European Union - NextGenerationEU and by PRIN2022PNRR “RAP-ARA” (PE6) - codice MUR: P2022HXNSC.
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
Mastroeni, I. (2025). Abstract Local Completeness. In: Shankaranarayanan, K., Sankaranarayanan, S., Trivedi, A. (eds) Verification, Model Checking, and Abstract Interpretation. VMCAI 2025. Lecture Notes in Computer Science, vol 15530. Springer, Cham. https://doi.org/10.1007/978-3-031-82703-7_1
Download citation
DOI: https://doi.org/10.1007/978-3-031-82703-7_1
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-82702-0
Online ISBN: 978-3-031-82703-7
eBook Packages: Computer ScienceComputer Science (R0)