# Realizability of monotone coinductive definitions and its application to program synthesis

## Abstract

Two realizability interpretations of monotone coinductive definitions are studied. One interpretation is defined so that a realizer of a coinductively defined predicate is the same as that of its expansion. For this interpretation, the paper proves that full monotone coinductive definitions are not sound and restricted monotone coinductive definitions are sound. The other interpreration is based on second order logic and can interpret least-upper-bound coinductive definitions, which is generalization of monotone coinductive definitions. By using these interprerations, the paper shows that a program which treats coinductively defined infinite data structures such as streams can be synthesized from a constructive proof of its specification.

## Preview

Unable to display preview. Download preview PDF.

## References

- 1.M. Beeson,
*Foundations of Constructive Mathematics*(Springer, 1985).Google Scholar - 2.R.L. Constable et al,
*Implementing Mathematics with the Nuprl Proof Development System*(Prentice-Hall, 1986).Google Scholar - 3.
- 4.H. Friedman, On the derivability of instantiation properties,
*Journal of Symbolic Logic***42**(4) (1977) 506–514.MATHCrossRefMathSciNetGoogle Scholar - 5.S. Hayashi and H. Nakano, PX:
*A Computational Logic*(MIT Press, 1988).Google Scholar - 6.S. Kobayashi and M. Tatsuta, Realizability interpretation of generalized inductive definitions,
*Theoretical Computer Science***131**(1994) 121–138.CrossRefMathSciNetGoogle Scholar - 7.P. Martin-Löf, Constructive mathematics and computer programming, In:
*Logic, Methodology, and Philosophy of Science VI*, eds. L.J. Cohen et. al (North-Holland, Amsterdam, 1982) 153–179.Google Scholar - 8.N. P. Mendler, Inductive types and type constraints in the second-order lambda calculus,
*Annals of Pure and Applied Logic***51**(1991) 159–172.MATHCrossRefMathSciNetGoogle Scholar - 9.R. Milner,
*Communication and Concurrency*(Prentice Hall, 1989).Google Scholar - 10.C. Paulin-Mohring, Extracting 357-01 programs from proofs in the Calculus of Constructions,
*Proc. 16th Symp. Principles of Programming Languages*(1989) 89–104.Google Scholar - 11.F. Leclerc and C. Paulin-Mohring, Programming with Streams in Coq, A case study: the Sieve of Eratosthenes,
*LNCS***806**(Springer, 1993) 191–212.Google Scholar - 12.L. C. Paulson, Mechanizing Coinduction and Corecursion in Higher-order Logic,
*Journal of Logic and Computation***7**(2) (1997) 175–204.MATHCrossRefMathSciNetGoogle Scholar - 13.M. Parigot, Recursive programming with proofs,
*Theoretical Computer Science***94**(1992) 335–356.MATHCrossRefMathSciNetGoogle Scholar - 14.C. Raffalli, Data types, infinity and equality in system AF2,
*LNCS***832**(Springer, 1993) 280–294.Google Scholar - 15.C. Talcott, A theory for program and data type specification,
*Theoretical Computer Science***104**(1992) 129–159.MATHCrossRefMathSciNetGoogle Scholar - 16.M. Tatsuta, Program Synthesis Using Realizability,
*Theoretical Computer Science***90**(1991) 309–353.MATHMathSciNetGoogle Scholar - 17.M. Tatsuta, Realizability interpretation of coinductive definitions and program synthesis with streams,
*Theoretical Computer Science***122**(1994) 119–136.MATHCrossRefMathSciNetGoogle Scholar - 18.M. Tatsuta, Monotone Recursive Definition of Predicates and Its Realizability Interpretation,
*Proceedings of International Conference on Theoretical Aspects of Computer Software*, LNCS**526**(1991) 38–52.MathSciNetGoogle Scholar - 19.M. Tatsuta, Two realizability interpretations of monotone inductive definitions,
*International Journal of Foundations of Computer Science***5**(1) (1994) 1–21.MATHCrossRefGoogle Scholar - 20.M. Tatsuta, Realizability for Constructive Theory of Functions and Classes and Its Application to Program Synthesis,
*Proceedings of Thirteenth Annual IEEE Symposium on Logic in Computer Science*(1998).Google Scholar