The Duality of Computation under Focus

  • Pierre-Louis Curien
  • Guillaume Munch-Maccagnoni
Part of the IFIP Advances in Information and Communication Technology book series (IFIPAICT, volume 323)


We review the relationship between abstract machines for (call-by-name or call-by-value) λ-calculi (extended with Felleisen’s \(\mathcal C\)) and sequent calculus, reintroducing on the way Curien-Herbelin’s syntactic kit of the duality of computation. We provide a term language for a presentation of LK (with conjunction, disjunction, and negation), and we transcribe cut elimination as (non confluent) rewriting. A key slogan, which may appear here in print for the first time, is that commutative cut elimination rules are explicit substitution propagation rules. We then describe the focalised proof search discipline (in the classical setting), and narrow down the language and the rewriting rules to a confluent calculus (a variant of the second author’s focalising system L). We then define a game of patterns and counterpatterns, leading us to a fully focalised finitary syntax for a synthetic presentation of classical logic, that provides a quotient on (focalised) proofs, abstracting out the order of decomposition of negative connectives.


  1. 1.
    Abadi, M., Cardelli, L., Curien, P.-L., Lévy, J.-J.: Explicit Substitutions. Journal of Functional Programming 1(4) (1992)Google Scholar
  2. 2.
    Andreoli, J.-M.: Logic programming with focusing proofs in linear logic. Journal of Logic and Computation 2(3), 297–347 (1992)zbMATHCrossRefMathSciNetGoogle Scholar
  3. 3.
    Curien, P.-L., Herbelin, H.: The duality of computation. In: Proc. Int. Conf. on Functional Programming 2000 (2000)Google Scholar
  4. 4.
    Danos, V., Joinet, J.-B., Schellinx, H.: A new deconstructive logic: linear logic. Journal of Symbolic Logic 62(3) (1997)Google Scholar
  5. 5.
    Danvy, O.: Back to direct style. Science of Computer Programming 22(3), 183–195 (1994)zbMATHCrossRefMathSciNetGoogle Scholar
  6. 6.
    Girard, J.-Y., Lafont, Y., Taylor, P.: Proofs and Types. Cambridge University Press, Cambridge (1989)zbMATHGoogle Scholar
  7. 7.
    Girard, J.-Y.: A new constructive logic: classical logic. Mathematical Structures in Computer Science 1, 255–296 (1991)zbMATHCrossRefMathSciNetGoogle Scholar
  8. 8.
    Girard, J.-Y.: Locus solum: from the rules of logic to the logic of rules. Mathematical Structures in Computer Science 11(3), 301–506 (2001)zbMATHCrossRefMathSciNetGoogle Scholar
  9. 9.
    Griffin, T.: A formulae-as-types notion of control. In: Proc. Principles of Programming Languages 1990 (1990)Google Scholar
  10. 10.
    Herbelin, H.: Séquents qu’on calcule, Thèse de Doctorat, Université Paris 7 (1995),
  11. 11.
    Herbelin, H.: C’est maintenant qu’on calcule, au cœur de la dualité, Mémoire d’habilitation (2005) (available from cited url)Google Scholar
  12. 12.
    Krivine, J.-L.: Lambda-calcul, types et modèles, Masson (1991)Google Scholar
  13. 13.
    Krivine, J.-L.: A call-by-name lambda-calculus machine. Higher Order and Symbolic Computation 20, 199–207 (2007)zbMATHCrossRefGoogle Scholar
  14. 14.
    Lafont, Y., Reus, B., Streicher, T.: Continuation Semantics or Expressing Implication by Negation. Technical Report (1993)Google Scholar
  15. 15.
    Landin, P.: The mechanical evaluation of expressions. Computer Journal 6, 308–320 (1964)zbMATHGoogle Scholar
  16. 16.
    Laurent, O.: Etude de la polarisation en logique. Thèse de Doctorat, Univ. Aix-Marseille II (2002)Google Scholar
  17. 17.
    Laurent, O., Quatrini, M., Tortora de Falco, L.: Polarised and focalised linear and classical proofs. Ann. of Pure and Appl. Logic 134(2-3), 217–264 (2005)zbMATHCrossRefMathSciNetGoogle Scholar
  18. 18.
    Levy, P.B.: Call-by-push-value. In: A functional/imperative synthesis, Semantic Structures in Computation. Springer, Heidelberg (2004)Google Scholar
  19. 19.
    Munch-Maccagnoni, G.: Focalisation and classical realisability. In: Grädel, E., Kahle, R. (eds.) CSL 2009. LNCS, vol. 5771, pp. 409–423. Springer, Heidelberg (2009), CrossRefGoogle Scholar
  20. 20.
    Murthy, C.: A computational analysis of Girard’s translation and LC. In: Proc. LICS 1992 (1992)Google Scholar
  21. 21.
    Nipkow, T.: Orthogonal higher-order rewriting systems are confluent. In: Bezem, M., Groote, J.F. (eds.) TLCA 1993. LNCS, vol. 664, pp. 306–317. Springer, Heidelberg (1993)CrossRefGoogle Scholar
  22. 22.
    Ong, L., Stewart, C.: A Curry-Howard foundation for functional computation with control. In: Proc. POPL ’97 (1997)Google Scholar
  23. 23.
    Parigot, M.: λμ-calculus: An algorithmic interpretation of classical natural deduction. In: Voronkov, A. (ed.) LPAR 1992. LNCS, vol. 624, pp. 190–201. Springer, Heidelberg (1992)CrossRefGoogle Scholar
  24. 24.
    Plotkin, G.: Call-by-name, call-by-value and the lambda-calculus. TCS 1, 125–159 (1975)zbMATHCrossRefMathSciNetGoogle Scholar
  25. 25.
    Quatrini, M., Tortora de Falco, L.: Polarisation des preuves classiques et renversement. C.R.A.S.. 323(I), 113–116 (1996)zbMATHMathSciNetGoogle Scholar
  26. 26.
    Wadler, P.: Call-by-value is dual to call-by-name. In: Proc. ICFP 2003 (2003)Google Scholar
  27. 27.
    Zeilberger, N.: On the unity of duality. Ann. of Pure and Appl. Logic 153(1), 66–96 (2008)zbMATHCrossRefMathSciNetGoogle Scholar

Copyright information

© IFIP 2010

Authors and Affiliations

  • Pierre-Louis Curien
    • 1
  • Guillaume Munch-Maccagnoni
    • 2
  1. 1.CNRS, Paris 7, and INRIA 
  2. 2.Paris 7, and INRIA 

Personalised recommendations