Abstract
This paper gives an extension of Dual Calculus by introducing inductive types and coinductive types. The same duality as Dual Calculus is shown to hold in the new system, that is, this paper presents its involution for the new system and proves that it preserves both typing and reduction. The duality between inductive types and coinductive types is shown by the existence of the involution that maps an inductive type and a coinductive type to each other. The strong normalization in this system is also proved. First, strong normalization in second-order Dual Calculus is shown by translating it into second-order symmetric lambda calculus. Next, strong normalization in Dual Calculus with inductive and coinductive types is proved by translating it into second-order Dual Calculus.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Barbanera, F., Berardi, S.: A symmetric lambda calculus for classical program extraction. Information and Computation 125(2), 103–117 (1996)
Buchholz, W., Feferman, S., Pohlers, W., Sieg, W.: Iterated Inductive Definitions and Subsystems of Analysis: Recent Proof-Theoretical Studies. Lecture Notes in Mathematics, vol. 897. Springer, Heidelberg (1981)
Curien, P.-L., Herbelin, H.: The duality of computation. In: Proceedings of the 5th ACM SIGPLAN International Conference on Functional Programming, ICFP, pp. 233–243. ACM, New York (2000)
Geuvers, H.: Inductive and Coinductive Types with Iteration and Recursion. In: Proceedings of the 1992 workshop on Types for Proofs and Programs, TYPES, pp. 183–207 (1992)
Kakutani, Y.: Duality between Call-by-Name Recursion and Call-by-Value Iteration. In: Bradfield, J.C. (ed.) CSL 2002 and EACSL 2002. LNCS, vol. 2471, pp. 506–521. Springer, Heidelberg (2002)
Kimura, D.: Call-by-Value is Dual to Call-by-Name, Extended. In: Shao, Z. (ed.) APLAS 2007. LNCS, vol. 4807, pp. 415–430. Springer, Heidelberg (2007)
Kimura, D.: Duality between Call-by-value Reductions and Call-by-name Reductions. IPSJ Journal 48(4), 1721–1757 (2007)
Mendler, N.P.: Inductive Types and Type Constraints in the Second-Order lambda Calculus. Annals of Pure and Applied Logic 51(1-2), 159–172 (1991)
Momigliano, A., Tiu, A.: Induction and co-induction in sequent calculus. In: Berardi, S., Coppo, M., Damiani, F. (eds.) TYPES 2003. LNCS, vol. 3085, pp. 293–308. Springer, Heidelberg (2004)
Nordström, B., Petersson, K., Smith, J.M.: Programming in Martin-Löf’s Type Theory. Oxford University Press, Oxford (1990)
Parigot, M.: Strong normalization for second order classical natural deduction. Journal of Symbolic Logic 62(4), 1461–1479 (1997)
Parigot, M.: Strong normalization of second order symmetric lambda-calculus. In: Kapoor, S., Prasad, S. (eds.) FST TCS 2000. LNCS, vol. 1974, pp. 442–453. Springer, Heidelberg (2000)
Paulin-Mohring, C.: Inductive Definitions in the System Coq — Rules and Properties. In: Bezem, M., Groote, J.F. (eds.) TLCA 1993. LNCS, vol. 664, pp. 328–345. Springer, Heidelberg (1993)
Selinger, P.: Control Categories and Duality: on the Categorical Semantics of the Lambda-Mu Calculus. Mathematical Structures in Computer Science, pp. 207–260 (2001)
Tatsuta, M.: Realizability interpretation of coinductive definitions and program synthesis with streams. Theoretical Computer Science 122(1–2), 119–136 (1994)
Wadler, P.: Call-by-Value is Dual to Call-by-Name. In: Proceedings of International Conference on Functional Programming, ICFP, pp. 189–201 (2003)
Wadler, P.: Call-by-Value is Dual to Call-by-Name – Reloaded. In: Giesl, J. (ed.) RTA 2005. LNCS, vol. 3467, pp. 185–203. Springer, Heidelberg (2005)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kimura, D., Tatsuta, M. (2009). Dual Calculus with Inductive and Coinductive Types. In: Treinen, R. (eds) Rewriting Techniques and Applications. RTA 2009. Lecture Notes in Computer Science, vol 5595. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-02348-4_16
Download citation
DOI: https://doi.org/10.1007/978-3-642-02348-4_16
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-02347-7
Online ISBN: 978-3-642-02348-4
eBook Packages: Computer ScienceComputer Science (R0)