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.
功能反应性编程(FRP)模型具有事件和信号的反应性系统,以前已观察到与线性时间逻辑(LTL)的“最终”和“始终”模态相对应。在本文中,我们在模态MU-Calculus精神上定义了LTL的建设性变体,并具有最小的固定点和最大的固定点运算符,并为其提供了证明 - 作为程序解释作为反应性程序的基础计算。先前的工作强调了LTL和FRP之间对应关系的命题 - 类型的一部分。在这里,我们通过采用结构证明理论来强调证明的部分。我们表明,类型系统的表现足以强制执行可笑的属性,例如调度程序的公平性和最终交付结果。我们使用(CO)迭代运算符在本积分中说明编程。我们证明了对我们的操作语义的保存类型,这可以确保我们的计划是因果关系。我们还提供了强有力的正常化证明,这提供了我们的计划有生产力的理由,并且可以满足其类型中的可感性特性。