2014 · 38 citations · 26 references
ComputingComputer ScienceProgramming LanguagesReal-time SystemsTheory Of ComputationFunctional ProgrammingModal LogicTemporal LogicType CheckingType SystemsFunctional Reactive ProgrammingLinear Temporal LogicLiveness PropertiesNormalizationOperational SemanticsReactive SystemsStructural Proof TheoryType Preservation
Functional Reactive Programming (FRP) models reactive systems with events and signals, which have previously been observed to correspond to the "eventually" and "always" modalities of linear temporal logic (LTL). In this paper, we define a constructive variant of LTL with least fixed point and greatest fixed point operators in the spirit of the modal mu-calculus, and give it a proofs-as-programs interpretation as a foundational calculus for reactive programs. Previous work emphasized the propositions-as-types part of the correspondence between LTL and FRP; here we emphasize the proofs-as-programs part by employing structural proof theory. We show that the type system is expressive enough to enforce liveness properties such as the fairness of schedulers and the eventual delivery of results. We illustrate programming in this calculus using (co)iteration operators. We prove type preservation of our operational semantics, which guarantees that our programs are causal. We give also a proof of strong normalization which provides justification that our programs are productive and that they satisfy liveness properties derived from their types.
26
The temporal logic of programs
Amir Pnueli · 1977 · 5.7K citations
Results on the propositional μ-calculus
Dexter Kozen · Theoretical Computer Science · 1983 · 1.8K citations
Humanities, Mathematics, Logic +4
Conal Elliott, Paul Hudak · 1997 · 618 citations
LUSTRE: a declarative language for real-time programming
P. Caspi, D. Pilaud, Nicolas Halbwachs et al. · 1987 · 557 citations · Full text