skip to main content
10.1145/2603088.2603106acmconferencesArticle/Chapter ViewAbstractPublication PageslicsConference Proceedingsconference-collections
research-article

Functional reactive types

Published:14 July 2014Publication History

ABSTRACT

Functional Reactive Programming (FRP) is an approach to streaming data with a pure functional semantics as time-indexed values. In previous work, we showed that Linear-time Temporal Logic (LTL) can be used as a type system for discrete-time FRP, and that functional reactive primitives perform two roles: as combinators for building streams of data, and as proof rules for constructive LTL. In this paper, we add a third role, by showing that FRP combinators can be used to define streams of types, and that these functional reactive types can be viewed both as a constructive temporal logic, and as the types for functional reactive programs. As an application of functional reactive types, we show that past-time LTL (pLTL) can be extended with FRP to get a logic pLTL+FRP. This logic is expressed as streams of boolean expressions, and so bounded satisfiability of pLTL can be translated to Satisfiability Modulo Theory (SMT). Thus, pLTL+FRP can be used as a constraint language for problems which mix properties of data with temporal properties.

References

  1. The Agda wiki. http://wiki.portal.chalmers.se/agda/.Google ScholarGoogle Scholar
  2. N. Alechina, M. Mendler, V. de Paiva, and E. Ritter. Categorical and kripke semantics for constructive S4 modal logic. In Proc. Computer Science Logic, pages 292--307, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. E. Clarke, A. Biere, R. Raimi, and Y. Zhu. Bounded model checking using satisfiability solving. Formal Methods in System Design, 19(1):7--34, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. L. de Moura and N. Bjørner. Z3: An efficient SMT solver. In Proc. Tools and Algorithms for the Construction and Analysis of Systems, pages 337--340, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. L. de Moura and N. Bjørner. Satisfiability modulo theories: introduction and applications. Commun. ACM, 54(9):69--77, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. R. Deline and M. Fähndrich. Typestates for objects. In Proc. European Conf. Object-Oriented Programming, pages 465--490. Springer, 2004.Google ScholarGoogle ScholarCross RefCross Ref
  7. C. Elliott and P. Hudak. Functional reactive animation. In Proc. Int. Conf. Functional Programming, pages 263--273, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. N. Ghani, P. Hancock, and D. Pattinson. Representations of stream processors using nested fixed points. Logical Methods in Computer Science, 5(3), 2009.Google ScholarGoogle Scholar
  9. M. Hennessy and G. D. Plotkin. Full abstraction for a simple programming language. In Proc. Math. Foundations of Computer Science, number 74 in Lecture Notes in Computer Science, pages 108--120. Springer, 1979.Google ScholarGoogle Scholar
  10. K. Honda. Types for dyadic interaction. In Proc. Int. Conf. Concurrency Theory, number 715 in Lecture Notes in Computer Science, pages 509--523. Springer, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. A. S. A. Jeffrey. LTL types FRP: Linear-time temporal logic propositions as types, proofs as functional reactive programs. In Proc. ACM Workshop Programming Languages meets Program Verification, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. A. S. A. Jeffrey. Functional reactive types. http://ect.bell-labs.com/who/ajeffrey/papers/lics14.tgz, 2013.Google ScholarGoogle Scholar
  13. A. S. A. Jeffrey and J. Rathke. The lax braided structure of streaming i/o. In Proc. Conf. Computer Science Logic, 2011.Google ScholarGoogle Scholar
  14. W. Jeltsch. Temporal logic with "until", functional reactive programming with processes, and concrete process categories. In Proc. ACM Workshop Programming Languages meets Program Verification, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. W. Jeltsch. An abstract categorical semantics for functional reactive programming with processes. In Proc. ACM Workshop Programming Languages meets Program Verification, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. O. Kiselyov. Streams and iteratees. http://okmij.org/ftp/Streams.html.Google ScholarGoogle Scholar
  17. N. Krishnaswami and N. Benton. Ultrametric semantics of reactive programs. In Proc. IEEE Logic in Computer Science, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. C. McBride and R. Paterson. Applicative programming with effects. J. Functional Programming, 18(1):1--13, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. K. L. McMillan. Circular compositional reasoning about liveness. In Proc. IFIP WG 10.5 Correct Hardware Design and Verification Methods, pages 342--345, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. K. S. Namjoshi and R. J. Trefler. On the completeness of compositional reasoning. In Proc. Int. Conf. Computer Aided Verification, pages 139--153, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. A. Pnueli. The temporal logic of programs. In Proc. Symp. Foundations of Computer Science, pages 46--57, 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Functional reactive types

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Conferences
          CSL-LICS '14: Proceedings of the Joint Meeting of the Twenty-Third EACSL Annual Conference on Computer Science Logic (CSL) and the Twenty-Ninth Annual ACM/IEEE Symposium on Logic in Computer Science (LICS)
          July 2014
          764 pages
          ISBN:9781450328869
          DOI:10.1145/2603088
          • Program Chairs:
          • Thomas Henzinger,
          • Dale Miller

          Copyright © 2014 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 14 July 2014

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Acceptance Rates

          CSL-LICS '14 Paper Acceptance Rate74of212submissions,35%Overall Acceptance Rate143of386submissions,37%

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader