2019
DOI: 10.1145/3371096
|View full text |Cite
|
Sign up to set email alerts
|

Abstract extensionality: on the properties of incomplete abstract interpretations

Abstract: In this paper we generalise the notion of extensional (functional) equivalence of programs to abstract equivalences induced by abstract interpretations . The standard notion of extensional equivalence is recovered as the special case, induced by the concrete interpretation. Some properties of the extensional equivalence, such as the one spelled out in Rice’s theorem, lift to the abstract equivalences in suitably generalised forms. On the other hand, the generalis… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
20
0

Year Published

2022
2022
2023
2023

Publication Types

Select...
5
1

Relationship

2
4

Authors

Journals

citations
Cited by 30 publications
(20 citation statements)
references
References 28 publications
0
20
0
Order By: Relevance
“…2 Richer languages manipulating an unbound number of variables, e.g., by recursion, can be considered at the price of complicating the model and replacing variable finiteness with abstract domains defined as functions from natural numbers 𝑛 ∈ N to Galois connections on a concrete domain with 𝑛 variables (e.g., see [Bruni et al 2020;Venet 1996]…”
Section: The Abstract Semanticsmentioning
confidence: 99%
See 4 more Smart Citations
“…2 Richer languages manipulating an unbound number of variables, e.g., by recursion, can be considered at the price of complicating the model and replacing variable finiteness with abstract domains defined as functions from natural numbers 𝑛 ∈ N to Galois connections on a concrete domain with 𝑛 variables (e.g., see [Bruni et al 2020;Venet 1996]…”
Section: The Abstract Semanticsmentioning
confidence: 99%
“…Giacobazzi et al [2015] proved that C(𝐴) is infinite by a straightforward padding argument, since skip ∈ C(𝐴) for any 𝐴 and sequential composition of complete commands is still complete. Moreover C(𝐴) is non-extensional because there always exist programs 𝑃 and 𝑄 such that: 𝑃 is complete for 𝐴, 𝑃 = 𝑄 , and 𝑄 is not complete for 𝐴 (e.g., see [Bruni et al 2020;Giacobazzi 2008;Laviron and Logozzo 2009] for examples of program transformations designed to alter the abstract semantics, either by improving precision as in program analysis by hints, or by worsening precision as in code obfuscation).…”
Section: Recursive Abstract Domainsmentioning
confidence: 99%
See 3 more Smart Citations