Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2603088.2603106acmconferencesArticle/Chapter ViewAbstractPublication PageslicsConference Proceedingsconference-collections
research-article

Functional reactive types

Published: 14 July 2014 Publication 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/.
[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.
[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.
[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.
[5]
L. de Moura and N. Bjørner. Satisfiability modulo theories: introduction and applications. Commun. ACM, 54(9):69--77, 2011.
[6]
R. Deline and M. Fähndrich. Typestates for objects. In Proc. European Conf. Object-Oriented Programming, pages 465--490. Springer, 2004.
[7]
C. Elliott and P. Hudak. Functional reactive animation. In Proc. Int. Conf. Functional Programming, pages 263--273, 1997.
[8]
N. Ghani, P. Hancock, and D. Pattinson. Representations of stream processors using nested fixed points. Logical Methods in Computer Science, 5(3), 2009.
[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.
[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.
[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.
[12]
A. S. A. Jeffrey. Functional reactive types. http://ect.bell-labs.com/who/ajeffrey/papers/lics14.tgz, 2013.
[13]
A. S. A. Jeffrey and J. Rathke. The lax braided structure of streaming i/o. In Proc. Conf. Computer Science Logic, 2011.
[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.
[15]
W. Jeltsch. An abstract categorical semantics for functional reactive programming with processes. In Proc. ACM Workshop Programming Languages meets Program Verification, 2014.
[16]
O. Kiselyov. Streams and iteratees. http://okmij.org/ftp/Streams.html.
[17]
N. Krishnaswami and N. Benton. Ultrametric semantics of reactive programs. In Proc. IEEE Logic in Computer Science, 2011.
[18]
C. McBride and R. Paterson. Applicative programming with effects. J. Functional Programming, 18(1):1--13, 2008.
[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.
[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.
[21]
A. Pnueli. The temporal logic of programs. In Proc. Symp. Foundations of Computer Science, pages 46--57, 1977.

Cited By

View all
  • (2025)Flo: A Semantic Foundation for Progressive Stream ProcessingProceedings of the ACM on Programming Languages10.1145/37048459:POPL(241-270)Online publication date: 9-Jan-2025
  • (2024)Asynchronous Reactive Programming with Modal Types in HaskellPractical Aspects of Declarative Languages10.1007/978-3-031-52038-9_2(18-36)Online publication date: 10-Jan-2024
  • (2023)Asynchronous Modal FRPProceedings of the ACM on Programming Languages10.1145/36078477:ICFP(476-510)Online publication date: 30-Aug-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

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
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]

Sponsors

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 14 July 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. dependent types
  2. functional reactive programming
  3. temporal logic

Qualifiers

  • Research-article

Conference

CSL-LICS '14
Sponsor:

Acceptance Rates

CSL-LICS '14 Paper Acceptance Rate 74 of 212 submissions, 35%;
Overall Acceptance Rate 215 of 622 submissions, 35%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)11
  • Downloads (Last 6 weeks)0
Reflects downloads up to 12 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2025)Flo: A Semantic Foundation for Progressive Stream ProcessingProceedings of the ACM on Programming Languages10.1145/37048459:POPL(241-270)Online publication date: 9-Jan-2025
  • (2024)Asynchronous Reactive Programming with Modal Types in HaskellPractical Aspects of Declarative Languages10.1007/978-3-031-52038-9_2(18-36)Online publication date: 10-Jan-2024
  • (2023)Asynchronous Modal FRPProceedings of the ACM on Programming Languages10.1145/36078477:ICFP(476-510)Online publication date: 30-Aug-2023
  • (2022)Modal FRP for all: Functional reactive programming without space leaks in HaskellJournal of Functional Programming10.1017/S095679682200013232Online publication date: 26-Dec-2022
  • (2021)Diamonds are not forever: liveness in reactive programming with guarded recursionProceedings of the ACM on Programming Languages10.1145/34342835:POPL(1-28)Online publication date: 4-Jan-2021
  • (2020)Runtime verification and validation of functional reactive systemsJournal of Functional Programming10.1017/S095679682000021030Online publication date: 26-Aug-2020
  • (2019)Precise reasoning with structured time, structured heaps, and collective operationsProceedings of the ACM on Programming Languages10.1145/33605833:OOPSLA(1-30)Online publication date: 10-Oct-2019
  • (2019)DProf: distributed profiler with strong guaranteesProceedings of the ACM on Programming Languages10.1145/33605823:OOPSLA(1-24)Online publication date: 10-Oct-2019
  • (2019)Compiler fuzzing: how much does it matter?Proceedings of the ACM on Programming Languages10.1145/33605813:OOPSLA(1-29)Online publication date: 10-Oct-2019
  • (2019)Mergeable replicated data typesProceedings of the ACM on Programming Languages10.1145/33605803:OOPSLA(1-29)Online publication date: 10-Oct-2019
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media