Reasoning about Idealized ALGOL Using Regular Languages
ICALP '00 Proceedings of the 27th International Colloquium on Automata, Languages and Programming
Even higher-order functions for parsing or Why would anyone ever want to use a sixth-order function?
Journal of Functional Programming
STOC '04 Proceedings of the thirty-sixth annual ACM symposium on Theory of computing
On-the-fly techniques for game-based software model checking
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
Third-order idealized algol with iteration is decidable
FOSSACS'05 Proceedings of the 8th international conference on Foundations of Software Science and Computation Structures
Data-abstraction refinement: a game semantic approach
SAS'05 Proceedings of the 12th international conference on Static Analysis
A fragment of ML decidable by visibly pushdown automata
ICALP'11 Proceedings of the 38th international conference on Automata, languages and programming - Volume Part II
HECTOR: an equivalence checker for a higher-order fragment of ML
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
C-SHORe: a collapsible approach to higher-order verification
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
We present Homer , an observational-equivalence model checker for the 3rd-order fragment of Idealized Algol (IA) augmented with iteration. It works by first translating terms of the fragment into a precise representation of their game semantics as visibly pushdown automata (VPA). The VPA-translates are then passed to a VPA toolkit (which we have implemented) to test for equivalence. Thanks to the fully abstract game semantics, observational equivalence of these IA-terms reduces to the VPA Equivalence Problem. Our checker is thus sound and complete; because it model checks open terms, our approach is also compositional. Further, if the terms are inequivalent, Homer will produce both a game-semantic and an operational-semantic counter-example, in the form of a play and a separating context respectively. We showcase these features on a number of examples and (where appropriate) compare its performance with similar tools. To the best of our knowledge, Homer is the first implementation of a model checker of 3rd-order programs.