DOI QR코드

DOI QR Code

Coinductive Subtyping for Recursive and Union Types

재귀 타입과 합집합 타입을 위한 코인덕션 서브타이핑

  • Received : 2016.07.05
  • Accepted : 2016.10.10
  • Published : 2016.12.15

Abstract

Induction and coinduction are well-established proof principles, which are widely used in mathematics and computer science. In particular, induction is taught in most undergraduate programs and well understood in the field of computer science. In contrast, coinduction is not as widespread or well understood as induction. In this paper, we introduce coinduction by defining a subtype system for recursive and union types and proving the transitivity property of the system. This paper will help to promote familiarity with coinduction and provides a basis for a subtype system for recursive types with other advanced type constructors and connectives.

귀납법과 코인덕션은 모두 컴퓨터 과학 분야에서 사용되는 중요한 증명 기법이다. 귀납법은 컴퓨터 과학 분야 학부 과정에서 기본적으로 가르치는 기법이며, 상대적으로 잘 알려지고 컴퓨터과학 분야 전반에 걸쳐 잘 쓰이고 있다. 반면에 코인덕션은 귀납법에 비해 많은 사람들에게 다소 어렵고 친숙하지 않은 개념이다. 본 논문에서는 재귀 타입과 합집합 타입을 포함하는 간단한 타입 언어에 대해 서브타입 시스템을 정의하고, 정의한 시스템의 추이성을 증명함으로써 코인덕션에 대해 소개한다. 이를 통해, 코인덕션에 대한 이해도를 높이고, 동시에 재귀 타입과 다양한 타입 요소가 있을 때 서브타입 시스템을 정의하는 방법에 대한 기초를 제공한다.

Keywords

Acknowledgement

Supported by : 한국연구재단

References

  1. R. Milner. Communication and Concurrency. Prentice Hall, 1989.
  2. A. Tarski, "A lattice-theoretical fixpoint theorem and its applications," Pacific Journal of Mathematics, Vol. 5, No. 2, pp. 285-309, 1955. https://doi.org/10.2140/pjm.1955.5.285
  3. M. Brandt and F. Henglein, "Coinductive axiomatization of recursive type equality and subtyping," Fundamenta Informaticae, Vol. 33, No. 4, pp. 309-338, 1998.
  4. P. Aczel. An Introduction to Inductive Definitions, Chapter C.7. North-Holland, 1977.
  5. B. Courcelle, "Fundamental properties of infinite trees," Theoretical Computer Science, Vol. 25, pp. 95-169, 1983. https://doi.org/10.1016/0304-3975(83)90059-2
  6. X. Leroy and H. Grall, "Coinductive big-step operational semantics," Inf. Comput., Vol. 207, No. 2, pp. 284- 304. (2009) https://doi.org/10.1016/j.ic.2007.12.004
  7. V. Gapeyev, M. Y. Levin, and B. C. Pierce, "Recursive subtyping revealed," Journal of Functional Programming, Vol. 12, No. 6, pp. 511-548, 2002. https://doi.org/10.1017/S0956796802004318
  8. R. M. Amadio and L. Cardelli, "Subtyping recursive types," ACM Trans. Program. Lang. Syst., Vol. 15, No. 4, pp. 575-631, 1993. https://doi.org/10.1145/155183.155231
  9. A. Frisch, G. Castagna, and V. Benzaken, "Semantic subtyping: Dealing set-theoretically with function, union, intersection, and negation types," J. ACM, Vol. 55, No. 4, 2008.
  10. B. C. Pierce, "Bounded quantification is undecidable," Proc. of POPL, pp. 305-315, 1992.
  11. D. Sangiorgi. Introduction to Bisimulation and Coinduction. Cambridge University Press, 2011.
  12. D. Kozen and A. Silva, "Practical coinduction," Math. Struct. in Comp. Science, Published online: 9 February 2016. Doi:10.1017/S0960129515000493.