Acta Informatica

, Volume 47, Issue 2, pp 111–132 | Cite as

On the observational theory of the CPS-calculus

  • Massimo Merro
Original Article


We apply powerful proof-techniques of concurrency theory to study the observational theory of Thielecke’s CPS-calculus, a distillation of the target language of Continuation-Passing Style transforms. We define a labelled transition system from which we derive a (weak) labelled bisimilarity that completely characterises Morris’ context-equivalence. We prove a context lemma showing that Morris’ context-equivalence coincides with a simpler context-equivalence closed under a smaller class of contexts. Then we profit of the determinism of the CPS-calculus to give a simpler labelled characterisation of Morris’ equivalence, in the style of Abramsky’s applicative bisimilarity. We enhance our bisimulation proof-methods with up to bisimilarity and up to context proof techniques. We use our bisimulation proof techniques to investigate a few algebraic properties on diverging terms that cannot be proved using the original axiomatic semantics of the CPS-calculus.


Static Context Operational Semantic Label Transition System Proof Technique Divergent Term 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Abramsky S., Ong L.: Full abstraction in the lazy lambda calculus. Inf. Comput. 105, 159–267 (1993)zbMATHCrossRefMathSciNetGoogle Scholar
  2. 2.
    Appel A.: Compiling with Continuations. Cambridge University Press, Cambridge (1992)Google Scholar
  3. 3.
    Barendregt, H.: The Lambda Calculus: Its Syntax and Semantics, Studies in Logic, vol. 103, Revised edn. North Holland, Amsterdam (1984)Google Scholar
  4. 4.
    Berry, G.: Some syntactic and categorical constructions of lambda calculus models. Technical Report RR-80, INRIA-Sophia Antipolis (1981)Google Scholar
  5. 5.
    Fischer, M.J.: Lambda-calculus schemata. In: Proceedings of ACM Conference on Proving Assertions about Programs, pp. 104–109. SIGPLAN Notice 7(1) (1972)Google Scholar
  6. 6.
    Führmann C., Thielecke H.: On the call-by-Value CPS transform and its semantics. Inf. Comput. 188(2), 241–283 (2004)zbMATHCrossRefGoogle Scholar
  7. 7.
    Gordon A.D.: Bisimilarity as a theory of functional programming. Theor. Comput. Sci. 228, 5–47 (1999)zbMATHCrossRefGoogle Scholar
  8. 8.
    Koutavas, V., Wand, M.: Small bisimulations for reasoning about higher-order imperative programs. In: Proceedings of 33rd POPL, pp. 141–152. ACM Press (2006)Google Scholar
  9. 9.
    Lassen, S.B.: Relational reasoning about contexts. In: Higher Order Operational Techniques in Semantics, pp. 91–135. Cambridge University Press (1998)Google Scholar
  10. 10.
    Lassen, S.B.: Bisimulation in untyped lambda calculus: Böhm trees and bisimulation up to context. In: Proceedings of 15th MFPS, vol. 20 of Electronic Notes in Theoretical Computer Science (1999)Google Scholar
  11. 11.
    Lassen, S.B., Levy, P.B.: Typed normal form bisimulation. In: Proceedings of 21st CSL, Lecture Notes in Computer Science, vol. 4646, pp. 283–297 (2007)Google Scholar
  12. 12.
    Lassen, S.B.: Eager normal form bisimulation. In: Proceedings of 20th LICS, pp. 345–354. IEEE Computer Society (2005)Google Scholar
  13. 13.
    Lévy J.J.: An algebraic interpretation of the λβκ-calculus; and an application of a labelled λ-calculus. Theor. Comput. Sci. 2(1), 97–114 (1976)zbMATHCrossRefGoogle Scholar
  14. 14.
    Longo G.: Set theoretical models of lambda calculus: theory, expansions and isomorphisms. Ann. Pure Appl. Logic 24, 153–188 (1983)zbMATHCrossRefMathSciNetGoogle Scholar
  15. 15.
    Merro M., Sangiorgi D.: On asynchrony in name-passing calculi. J. Math. Struct. Comput. Sci. 14, 715–767 (2004)zbMATHCrossRefMathSciNetGoogle Scholar
  16. 16.
    Milner R.: Fully abstract models of typed lambda calculus. Theor. Comput. Sci. 4, 1–22 (1977)zbMATHCrossRefMathSciNetGoogle Scholar
  17. 17.
    Milner R.: Communication and Concurrency. Prentice Hall, Englewood Cliffs (1989)zbMATHGoogle Scholar
  18. 18.
    Milner, R.: The polyadic π-calculus: a tutorial. Technical Report ECS–LFCS–91–180, LFCS, Department of Computer Science, Edinburgh University, October 1991. Also in Bauer, F.L., Brauer, W., Schwichtenberg, H. (eds.) Logic and Algebra of Specification. Springer (1993)Google Scholar
  19. 19.
    Milner, R., Sangiorgi, D.: Barbed bisimulation. In: Proceedings of 19th ICALP, LNCS, vol. 623, pp. 685–695. Springer (1992)Google Scholar
  20. 20.
    Morris, J.: Lambda-calculus Models of Programming Languages. PhD thesis, Massachusetts Institute of Technology (1968)Google Scholar
  21. 21.
    Park, D.M.: Concurrency on automata and infinite sequences. In: Deussen, P. (ed.) Conference on Theoretical Computer Science, LNCS, vol. 104. Springer (1981)Google Scholar
  22. 22.
    Pitts, A.M.: An Extension of Howe’s Construction to Yield Simulation-up-to-context Results. Unpublished Manuscript (1995)Google Scholar
  23. 23.
    Pitts, A.M.: Operationally-based theories of program equivalence. In: Dybjer, P., Pitts, A.M. (eds.) Semantics and Logics of Computation, pp. 241–298. Publications of the Newton Institute, Cambridge University Press, USA (1997)Google Scholar
  24. 24.
    Pitts, A.M.: Reasoning about local variables with operationally-based logical relations. In: O’Hearn, P.W., Tennent, R.D. (eds.) Algol-Like Languages, vol. 2, chap. 17, pp. 173–193. Birkhauser (1997). Reprinted from Proceedings 11th Annual IEEE Symposium on Logic in Computer Science, pp. 152–163, Brunswick (July 1996)Google Scholar
  25. 25.
    Plotkin G.D.: Call by name, call by value and the λ-calculus. Theor. Comput. Sci. 1, 125–159 (1975)zbMATHCrossRefMathSciNetGoogle Scholar
  26. 26.
    Sands, D.: From SOS rules to proof principles: an operational metatheory for functional languages. In: Proceedings of 24th POPL, pp. 428–441. ACM Press (1997)Google Scholar
  27. 27.
    Sangiorgi D.: Bisimulation for higher-order process calculi. Inf. Comput. 131(2), 141–178 (1996)zbMATHCrossRefMathSciNetGoogle Scholar
  28. 28.
    Sangiorgi D.: On the bisimulation proof method. J. Math. Struct. Comput. Sci. 8, 447–479 (1998)zbMATHCrossRefMathSciNetGoogle Scholar
  29. 29.
    Sangiorgi, D., Milner, R.: The problem of “Weak Bisimulation up to”. In: Proceedings of CONCUR ’92, LNCS, vol. 630, pp. 32–46. Springer (1992)Google Scholar
  30. 30.
    Sangiorgi D., Walker D.: The π-calculus: A Theory of Mobile Processes. Cambridge University Press, Cambridge (2001)Google Scholar
  31. 31.
    Steele, G.: RABBIT: A compiler for SCHEME. Technical Report AITR-474, MIT Artificial Intelligence Laboratory (1978)Google Scholar
  32. 32.
    Støvring, K., Lassen, S. B.: A complete, co-inductive syntactic theory of sequential control and state. In: Proceedings of 34th POPL, pp. 161–172. ACM Press (2007)Google Scholar
  33. 33.
    Strachey, C., Wadsworth, P.: Continuations: A mathematical semantics for handling full jumps. Technical Report PRG-11, Oxford University Computing Laboratory, Programming Research Group (1974)Google Scholar
  34. 34.
    Strachey C., Wadsworth P.: Continuations: a mathematical semantics for handling full jumps. High. Order Symb. Comput. 13(1/2), 135–152 (2000)zbMATHCrossRefGoogle Scholar
  35. 35.
    Sullivan, G.T.: An Extensional MetaLanguage with I/O and a Dynamic Store. PhD thesis, Northeastern University (1996)Google Scholar
  36. 36.
    Talcott, C.: Reasoning about functions with effects. In: Higher Order Operational Techniques in Semantics, pp. 347–390. Cambridge University Press (1998)Google Scholar
  37. 37.
    Thielecke, H.: Categorical Structure of Continuation Passing Style. PhD thesis, University of Edinburgh (1997). Also available as technical report ECS-LFCS-97-376Google Scholar
  38. 38.
    Weijland, W.P.: Synchrony and Asynchrony in Process Algebra. PhD thesis, University of Amsterdam (1989)Google Scholar

Copyright information

© Springer-Verlag 2009

Authors and Affiliations

  1. 1.Dipartimento di InformaticaUniversità degli Studi di VeronaVeronaItaly

Personalised recommendations