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

SyTeCi: automating contextual equivalence for higher-order programs with references

Abstract: We propose a framework to study contextual equivalence of programs written in a call-by-value functional language with local integer references. It reduces the problem of contextual equivalence to the problem of non-reachability in a transition system of memory configurations. This reduction is complete for recursion-free programs. Restricting to programs that do not allocate references inside the body of functions, we encode this non-reachability problem as a set of constrained Horn clause that can then be ch… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
27
0

Year Published

2019
2019
2024
2024

Publication Types

Select...
3
2
1
1

Relationship

1
6

Authors

Journals

citations
Cited by 17 publications
(27 citation statements)
references
References 39 publications
0
27
0
Order By: Relevance
“…It should be observed that such an equivalence check is less problematic for first-order programs than it is for higher-order one (the authors of [18] are able to actually check observational equivalence through an SMT solver). On the other hand, various notions of equivalence which are included in contextual equivalence and sometimes coincide with it (e.g., applicative bisimilarity, denotational semantics, or logical relations themselves) have been developed for higher-order languages, and this starts to give rise to actual automatic tools for deciding contextual equivalence [38]. We give in Figure 5 the typing rule for conditionals.…”
Section: Typing Conditionalsmentioning
confidence: 99%
“…It should be observed that such an equivalence check is less problematic for first-order programs than it is for higher-order one (the authors of [18] are able to actually check observational equivalence through an SMT solver). On the other hand, various notions of equivalence which are included in contextual equivalence and sometimes coincide with it (e.g., applicative bisimilarity, denotational semantics, or logical relations themselves) have been developed for higher-order languages, and this starts to give rise to actual automatic tools for deciding contextual equivalence [38]. We give in Figure 5 the typing rule for conditionals.…”
Section: Typing Conditionalsmentioning
confidence: 99%
“…We believe our work opens up the way to automated reasoning about contextual equivalence for all four languages in a common framework, following the approach proposed in [18].…”
Section: Related Work and Conclusionmentioning
confidence: 99%
“…We call the technique Kripke Normal-Form Bisimulations (KNFB), because it combines the flavour of open/normal-form bisimulations [17], [8] with Kripke-style relational reasoning [16]. An important feature of KNFBs is that universal quantifications range over relatively simple first-order entities, which opens up the way to automated reasoning in each of the four cases, following [18]. By virtue of the correspondence with operational game semantics, the technique is sound and complete.…”
Section: Introductionmentioning
confidence: 99%
“…It should be observed that such an equivalence check is less problematic for first-order programs than it is for higher-order one (the authors of [18] are able to actually check observational equivalence through an SMT solver). On the other hand, various notions of equivalence which are included in contextual equivalence and sometimes coincide with it (e.g., applicative bisimilarity, denotational semantics, or logical relations themselves) have been developed for higher-order languages, and this starts to give rise to actual automatic tools for deciding contextual equivalence [38]. We give in Figure 5 the typing rule for conditionals.…”
Section: Typing Conditionalsmentioning
confidence: 99%