Advertisement

Hector: An Equivalence Checker for a Higher-Order Fragment of ML

  • David Hopkins
  • Andrzej S. Murawski
  • C. -H. Luke Ong
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7358)

Abstract

We present Hector, an observational equivalence checker for a higher-order fragment of ML. The input language is RML, the canonical restriction of standard ML to ground-type references. Hector accepts programs from a decidable fragment of RML identified by us at ICALP’11, which comprises programs of short-type (order at most 2 and arity at most 1) that may contain free variables whose arguments are also of short-type. This is an expressive fragment that contains complex higher-order types, and includes many examples from the literature which have proven challenging to verify using other methods. To our knowledge, Hector is the first fully-automated equivalence checker for higher-order, call-by-value programs. Both sound and complete, the tool relies on the fully abstract game semantics of RML to construct, on-the-fly, visibly pushdown automata which precisely capture program behaviour. These automata are then checked for language equivalence, and if they are inequivalent a counterexample (in the form of a separating context) is constructed.

Keywords

Model Checker Equivalence Checker Game Model Predicate Abstraction Game Semantic 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

References

  1. 1.
    Abramsky, S., McCusker, G.: Call-by-Value Games. In: Nielsen, M. (ed.) CSL 1997. LNCS, vol. 1414, pp. 1–17. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  2. 2.
    Alur, R., Chaudhuri, S., Etessami, K., Madhusudan, P.: On-the-Fly Reachability and Cycle Detection for Recursive State Machines. In: Halbwachs, N., Zuck, L.D. (eds.) TACAS 2005. LNCS, vol. 3440, pp. 61–76. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  3. 3.
    Alur, R., Madhusudan, P.: Visibly pushdown languages. In: STOC (2004)Google Scholar
  4. 4.
    Bakewell, A., Ghica, D.R.: On-the-Fly Techniques for Game-Based Software Model Checking. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 78–92. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  5. 5.
    Bakewell, A., Ghica, D.R.: Compositional Predicate Abstraction from Game Semantics. In: Kowalewski, S., Philippou, A. (eds.) TACAS 2009. LNCS, vol. 5505, pp. 62–76. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  6. 6.
    Dreyer, D., Neis, G., Birkedal, L.: The impact of higher-order state and control effects on local relational reasoning. In: ICFP, pp. 143–156 (2010)Google Scholar
  7. 7.
    Hopkins, D., Murawski, A.S., Ong, C.-H.L.: A Fragment of ML Decidable by Visibly Pushdown Automata. In: Aceto, L., Henzinger, M., Sgall, J. (eds.) ICALP 2011, Part II. LNCS, vol. 6756, pp. 149–161. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  8. 8.
    Hopkins, D., Ong, C.-H.L.: Homer: A Higher-Order Observational Equivalence Model checkER. In: Bouajjani, A., Maler, O. (eds.) CAV 2009. LNCS, vol. 5643, pp. 654–660. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  9. 9.
    Jhala, R., Majumdar, R., Rybalchenko, A.: HMC: Verifying Functional Programs Using Abstract Interpreters. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 470–485. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  10. 10.
    Kobayashi, N.: Model-checking higher-order functions. In: PPDP, pp. 25–36 (2009)Google Scholar
  11. 11.
    Pitts, A.M., Stark, I.D.B.: Operational reasoning for functions with local state. Higher Order Operational Techniques in Semantics (1998)Google Scholar
  12. 12.
    Stark, I.D.B.: Names and Higher-Order Functions. PhD thesis, Univ. of Cambridge (1995)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • David Hopkins
    • 1
  • Andrzej S. Murawski
    • 2
  • C. -H. Luke Ong
    • 1
  1. 1.Department of Computer ScienceUniversity of OxfordUK
  2. 2.Department of Computer ScienceUniversity of LeicesterUK

Personalised recommendations