Transfinite Step-Indexing: Decoupling Concrete and Logical Steps

  • Kasper Svendsen
  • Filip Sieczkowski
  • Lars Birkedal
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9632)


Step-indexing has proven to be a powerful technique for defining logical relations for languages with advanced type systems and models of expressive program logics. In both cases, the model is stratified using natural numbers to solve a recursive equation that has no naive solutions. As a result of this stratification, current models require that each unfolding of the recursive equation – each logical step – must coincide with a concrete reduction step. This tight coupling is problematic for applications where the number of logical steps cannot be statically bounded.

In this paper we demonstrate that this tight coupling between logical and concrete steps is artificial and show how to loosen it using transfinite step-indexing. We present a logical relation that supports an arbitrary but finite number of logical steps for each concrete step.


Program Logic Operational Semantic Logical Relation Logical Step Reference Type 
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.



This research was supported in part by the ModuRes Sapere Aude Advanced Grant from The Danish Council for Independent Research for the Natural Sciences (FNU) and Danish Council for Independent Research project DFF – 4181-00273.


  1. 1.
    Ahmed, A.: Step-indexed syntactic logical relations for recursive and quantified types. In: Sestoft, P. (ed.) ESOP 2006. LNCS, vol. 3924, pp. 69–83. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  2. 2.
    Ahmed, A., Dreyer, D., Rossberg, A.: State-dependent representation independence. In: Proceedings of POPL (2009)Google Scholar
  3. 3.
    Ahmed, A.J.: Semantics of types for mutable state. Ph.D. thesis, Princeton University (2004)Google Scholar
  4. 4.
    Appel, A.W., Dockins, R., Hobor, A., Dodds, J., Leroy, X., Blazy, S., Stewart, G., Beringer, L.: Program Logics for Certified Compilers. Cambridge University Press, Cambridge (2014)CrossRefzbMATHGoogle Scholar
  5. 5.
    Appel, A.W., McAllester, D.: An indexed model of recursive types for foundational proof-carrying code. ACM Trans. Program. Lang. Syst. 23(5), 657–683 (2001)CrossRefGoogle Scholar
  6. 6.
    Appel, A.W., Melliès, P.-A., Richards, C.D., Vouillon, J.: A very modal model of a modern, major, general type system. In: Proceedings of POPL (2007)Google Scholar
  7. 7.
    Benton, N., Hur, C.-K.: Biorthogonality, step-indexing and compiler correctness. In: Proceedings of ICFP (2009)Google Scholar
  8. 8.
    Birkedal, L., Bizjak, A., Schwinghammer, J.: Step-indexed relational reasoning for countable nondeterminism. Log. Methods Comput. Sci. 9(4), 1–23 (2013)MathSciNetCrossRefzbMATHGoogle Scholar
  9. 9.
    Birkedal, L., Møgelberg, R.E., Schwinghammer, J., Støvring, K.: First steps in synthetic guarded domain theory: step-indexing in the topos of trees. Log. Methods Comput. Sci. 8(4), (2012)
  10. 10.
    Birkedal, L., Reus, B., Schwinghammer, J., Støvring, K., Thamsborg, J., Yang, H.: Step-indexed kripke models over recursive worlds. In: Proceedings of POPL (2011)Google Scholar
  11. 11.
    Birkedal, L., Sieczkowski, F., Thamsborg, J.: A concurrent logical relation. In: Proceedings of CSL (2012)Google Scholar
  12. 12.
    Birkedal, L., Støvring, K., Thamsborg, J.: The category-theoretic solution of recursive metric-space equations. Theor. Comput. Sci. 411, 4102–4122 (2010)MathSciNetCrossRefzbMATHGoogle Scholar
  13. 13.
    Di Gianantonio, P., Miculan, M.: A unifying approach to recursive and co-recursive definitions. In: Geuvers, H., Wiedijk, F. (eds.) TYPES 2002. LNCS, vol. 2646, pp. 148–161. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  14. 14.
    Dodds, M., Jagannathan, S., Parkinson, M.J., Svendsen, K., Birkedal, L.: Verifying custom synchronization constructs using higher-order separation logic. ACM Trans. Program. Lang. Syst. 38(2), 1–72 (2016)CrossRefGoogle Scholar
  15. 15.
    Dreyer, D., Neis, G., Birkedal, L.: The impact of higher-order state and control effects on local relational reasoning. J. Funct. Prog. 22, 477–528 (2012)MathSciNetCrossRefzbMATHGoogle Scholar
  16. 16.
    Hobor, A., Dockins, R., Appel, A.W.: A theory of indirection via approximation. In: Proceedings of POPL (2010)Google Scholar
  17. 17.
    Hur, C.-K., Dreyer, D.: A kripke logical relation between ML and assembly. In: Proceedings of POPL (2011)Google Scholar
  18. 18.
    Jung, R., Swasey, D., Sieczkowski, F., Svendsen, K., Turon, A., Birkedal, L., Dreyer, D.: Iris: monoids and invariants as an orthogonal basis for concurrent reasoning. In: Proceedings of POPL (2015)Google Scholar
  19. 19.
    Reynolds, J.: Separation logic: a logic for shared mutable data structures. In: Proceedings of LICS (2002)Google Scholar
  20. 20.
    Svendsen, K., Birkedal, L.: Impredicative concurrent abstract predicates. In: Shao, Z. (ed.) ESOP 2014 (ETAPS). LNCS, vol. 8410, pp. 149–168. Springer, Heidelberg (2014)CrossRefGoogle Scholar
  21. 21.
    Turon, A., Dreyer, D., Birkedal, L.: Unifying refinement and hoare-style reasoning in a logic for higher-order concurrency. In: Proceedings of ICFP (2013)Google Scholar
  22. 22.
    Turon, A.J., Thamsborg, J., Ahmed, A., Birkedal, L., Dreyer, D.: Logical relations for fine-grained concurrency. In: Proceedings of POPL (2013)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2016

Authors and Affiliations

  • Kasper Svendsen
    • 1
  • Filip Sieczkowski
    • 2
  • Lars Birkedal
    • 3
  1. 1.University of CambridgeCambridgeUK
  2. 2.INRIAParisFrance
  3. 3.Aarhus UniversityAarhusDenmark

Personalised recommendations