SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
Temporal Logic and Functional Reactive Programming
Sergei Winitzki
Bay Area Categories and Types
April 25, 2014
Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 1 / 23
What is reactive programming
Transformational programs Reactive programs
example: pdflatex frp_talk.tex example: any GUI program
start, run, then stop keep running indenitely
read some input, write some output wait for signals, send messages
execution: sequential + some parallel main run loop + concurrency
diculty: algorithms signal/response sequences
specication: classical logic temporal logic? owcharts?
verication: prove it correct model checking?
synthesis: extract code from proof temporal synthesis?
type theory: intuitionistic logic intuitionistic temporal logic
Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 2 / 23
The uses of logic in computer science
1 Logic as a specication language - enables automatic verication
Automatic synthesis of programs from specications?
2 (Intuitionistic) logic as type theory - guides language design
Mathematicians have already minimized the set of axioms!
3 Logic programming - use a decidable subset of logic
Very high-level language, but limited to its domain
4 Automated theorem proving - derive a program as a proof artifact
Requires advanced type systems and proof heuristics
Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 3 / 23
Part 1: Introduction to temporal logic
Let's forget all philosophy, what is time, what is true, modal logic...
We want to see logic as a down-to-earth, computationally useful tool
We begin with the computational view of classical Boolean logic
Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 4 / 23
Boolean algebra: notation
Classical propositional (Boolean) logic: T , F , a ∨ b, a ∧ b, ¬a, a → b
A notation better adapted to school-level algebra: 1, 0, a + b, ab, a
The only new rule is 1 + 1 = 1
Dene a → b = a + b
Some identities:
0a = 0, 1a = a, a + 0 = a, a + 1 = 1,
a + a = a, aa = a, a + a = 1, aa = 0,
(a + b) = a b , (ab) = a + b , a = a
a (b + c) = ab + ac, (a + b) (a + c) = a + bc
DNF = expand all brackets. Some DNF simplication tricks:
a + ab = a, a (a + b) = a,
(a → b) a → c = ab + a c,
(a → x) b → x = a + x b + x = x a + xb
Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 5 / 23
Boolean algebra: example
Of the three suspects A, B, C , only one is guilty of a crime.
Suspect A says: B did it. Suspect B says: C is innocent.
The guilty one is lying, the innocent ones tell the truth.
φ = ab c + a bc + a b c a b + ab b c + bc
Simplify: expand the brackets, omit aa , bb , cc , replace aa = a etc.:
φ = ab c + 0 + 0 = ab c
The guilty one is A.
Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 6 / 23
Synthesis of Boolean programs
Specication of a Boolean program:
If the boss is in, I need to work unless the telephone rings.
If the boss is not in, I go drink tea.
b =boss is in, r =telephone rings, w =I work, w =I drink tea
φ(b, r , w ) = br → w b → w
= w br + wb = w b + r + wb
Goal: given any b and r , compute w such that φ(b, r , w ) = 1.
One solution is just φ(b, r , w = 1):
w = φ(b, r , 1) = 0 b + r + 1b = b
I work if and only if the boss is in
(Other solutions exist, e.g. w = br )
Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 7 / 23
Propositional linear-time temporal logic (LTL)
Reactive programs respond to an innite stream of signals
So let's work with innite boolean sequences (linear time)
Boolean operations:
a = [a0, a1, a2, ...] ; b = [b0, b1, b2, ...] ;
a + b = [a0 + b0, a1 + b1, ...] ; a = a0, a1, ... ; ab = [a0b0, a1b1, ...]
Temporal operations:
(Next) Na = [a1, a2, ...]
(Sometimes) Fa = [a0 + a1 + a2 + ..., a1 + a2 + ..., ...]
(Always) Ga = [a0a1a2a3..., a1a2a3..., a2a3..., ...]
Other notation (from modal logic):
Na ≡ a; Fa ≡ ♦a; Ga ≡ a
Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 8 / 23
Temporal xpoints and the µ-calculus notation
LTL admits only temporal functions dened by xpoints:
Fa = [a0 + a1 + a2 + a3 + ..., a1 + a2 + a3 + ..., ...]
Fa = a + N(Fa)
Ga = [a0a1a2a3..., a1a2a3..., a2a3..., ...]
Ga = aN(Ga)
Notation: µ for the least xpoint, ν for the greatest xpoint
Fa = µx. (a + Nx) ; Ga = νx. (a(Nx))
but νx. (a + Nx) = 1; µx. (a(Nx)) = 0
The most general xpoints involving only one N:
(weak Until) pUq = νx. (q + p(Nx))
(strict Until) p ˙Uq = µx. (q + p(Nx))
Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 9 / 23
LTL: interpretation of Until
Weak Until: pUq = p holds from now on until q rst becomes true
pUq = q + pN(q + pN(q + ...))
Example:
a = [1, 0, 0, 0, 1, 0, ...]
b = [0, 1, 0, 1, 0, 1, ...]
aUb = [1, 1, 0, 1, 1, 1, ...]
Strict Until: p ˙Uq = q must become true, and p holds until then
Dualities: (Fa) = G(a ); also (p ˙Uq) = q U(p q )
Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 10 / 23
LTL: temporal specication
Whenever the boss comes by my oce, I will start working.
Once I start working, I will keep working until the telephone rings.
G((b → Fw ) (w → w Ur )) = G b + Fw w + w Ur
Whenever the button is pressed, the dialog will appear.
The dialog will disappear after 1 minute of user inactivity.
G (b → Fd ) (d → Ft) d → d Utd
The timer t is an external event and is not specied here
Dicult to say x stays true until further notice
Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 11 / 23
LTL: disjunctive normal form
What would be the DNF in LTL? Let's just expand brackets:
φ = G b + Fw w + w Ur = b + Fw w + w Ur Nφ
= b + w + N(Fw ) w + r + w N(w Ur ) Nφ
= b + w + N(w + N(Fw )) w + r + w N(r + w N(w Ur )) N(...)
= ... N(... ...N(... ...N(...))) ...
We will never nish expanding those brackets!
But many subformulas under N(...) are the same:
φ1 = Fw ; φ2 = w Ur ;
φ = b + w + Nφ1 w + r + w Nφ2 Nφ
= rw + b w Nφ + w N(φφ1) + w N(φφ2)
Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 12 / 23
LTL: disjunctive normal form
Let's expand and simplify φφ1 and φφ2: we get simultaneous xpoints
φ = rw + b w N(φ) + w N(φφ1) + w N(φφ2);
φφ1 = rw N(φ) + r + w N(φφ1) + w N(φφ2);
φφ2 = r w + b N(φ) + r N(φφ1) + w N(φφ2).
The DNF for LTL is a graph!
φ φφ1
rw + b′
w′
w′
w
rw r
φφ2
w
r + w′
r(w + b′
)
w
Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 13 / 23
The failure of LTL program synthesis
Goal: given b and r , determine w
The DNF generates a nondeterministic nite automaton (NFA) for w
States of the automaton are φ, φφ1, φφ2, ... (sets of xpoints of φ)
The DNF construction generates these states for us
Determinizing the automaton may exponentially increase its size
Worst case: for φ with n xpoints, DFA will have 2
2n
states
Specications will generally need to use many xpoints. Example:
Whenever b is pressed, send query q and show w (Waiting).
Upon reply r , show d (Done). Pressing c (Cancel) stops waiting.
φ = G[ bw → bUd w w → d w U(c + r )
cw → cUw q ↔ bw rw → r Udw ].
LTL is not particularly convenient for modular specication
Synthesis is not practical (I write and debug my automata by hand...)
Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 14 / 23
Part 2: Temporal logic as type theory
Logic gives a recipe for designing a minimal programming language
(Curry-Howard isomorphism)
Typically, we use an intuitionistic version of the logic:
No negation, no ⊥; only a + b, ab, a → b
No law of excluded middle
No truth tables, no simplication
Usually, cannot derive proofs automatically
Axioms are predened terms needed in the language
Example: (a → c) → (b → c) → (a + b → c) is the case operator
Proof rules are predened constructions needed in the language
Example: modus ponens (a; a → b so b) is function application
Natural deduction rules are typing rules for the language
Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 15 / 23
Interpreting values typed by LTL
What does it mean to have a value x of type, say, G(α → αUβ)?
x : Nα means that x : α will be available only at the next time tick
(x is a deferred value of type α)
x : Fα means that x : α will be available at some future tick(s)
(x is an event of type α)
x : Gα means that a (dierent) value x : α is available at every tick
(x is an innite stream of type α)
x : αUβ means a nite stream of α that may end with a β
Some temporal axioms of intuitionistic LTL:
(deferred apply) N(α → β) → (Nα → Nβ) ;
(streamed apply) G(α → β) → (Gα → Gβ) ;
(generate a stream) G(α → Nα) → (α → Gα) ;
(read innite stream) Gα → αN(Gα)
(read nite stream) αUβ → β + αN(αUβ)
Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 16 / 23
A small FRP language: Elm
Core Elm: polymorphic λ-calculus with lift2, foldp, async
lift2 : (α → β → γ) → Gα → Gβ → Gγ
foldp : (α → β → β) → β → Gα → Gβ
async : Gα → Gα
(lift2 makes G an applicative functor)
async is a special scheduling instruction
Limitations:
Cannot have a type G(Gα), also no concept of N or F
Cannot construct temporal values by hand
This language is an incomplete Curry-Howard image of LTL!
I work after the boss comes by and until the phone rings:
let after_until w (b,r) = (w or b) and not r in
foldp after_until false (boss, phone)
Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 17 / 23
Legacy FRP systems: FrTime, Fran, AFRP, etc.
Two functors: continuous behavior Gα and discrete event Fα
Time is conceptually continuous
Explicit N, delay by time ∆t, explicit values of time
Many predened combinators that do not follow from type theory:
value-now, delay-by, integral, ... (FrTime)
merge, switcher, G(Gα), ... (Fran)
AFRP: temporal values are not available, only combinators!
Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 18 / 23
A lower-level FRP language: AdjS
A lower-level type system: Nα (next), ˆµα.Σ (µ+next), α (stable)
Explicit one-step temporal xpoints, for example Fτ = ˆµα.τ + α
τ = ˆµα.Σ ∼= ˆµα.
Nτ
α
Σ
Term assignments, simplied (see Krishnaswamy's paper):
Γ e : α
Γ next e : Nα
NI
Γ f : Nα Γ, x : α e : β
let next x = f in e : β
NE
Γ e : [N(ˆµα.Σ)/α] Σ
Γ into e : ˆµα.Σ
ˆµI
Γ e : ˆµα.Σ
Γ out e : [N(ˆµα.Σ)/α] Σ
ˆµE
Γ e : α
Γ stable e : α
I
Γ f : α Γ, x : α e : β
Γ let stable x = f in e : β
E
Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 19 / 23
Dreams of an ideal FRP language
Requirements for a broadly usable FRP language:
stable and temporal types distinguished statically
seamless conversion from int to G(int) and back, for stable types
construct values of type Fα by hand: from asynchronous scheduling
construct values of type Fα from external sources (environment)
tick-free operation: N is not needed, use F instead
the runloop (UI thread / background threads) needs to be represented
I guess we are still in the research phase here...
Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 20 / 23
Conclusions and outlook
LTL is not a good t as a specication language for reactive programs
LTL synthesis from specication is theoretical, not practical
FRP tries to make specication closer to implementation
There are some languages that implement FRP in various ad hoc ways
The ideal is not (yet) reached
Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 21 / 23
Abstract
In my day job, most bugs come from imperatively implemented reactive
programs. Temporal Logic and FRP are declarative approaches that
promise to solve my problems. I will briey review the motivations behind
and the connections between temporal logic and FRP. I propose a rather
pedestrian approach to propositional linear-time temporal logic (LTL),
showing how to perform calculations in LTL and how to synthesize
programs from LTL formulas. I intend to explain why LTL largely failed to
solve the synthesis problem, and how FRP tries to cope.
FRP can be formulated as a λ-calculus with types given by the
propositional intuitionistic LTL. I will discuss the limitations of this
approach, and outline the features of FRP that are required by typical
application programming scenarios.
My talk will be largely self-contained and should be understandable to
anyone familiar with Curry-Howard and functional programming.
Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 22 / 23
Suggested reading
E. Czaplicki, S. Chong. Asynchronous FRP for GUIs. (2013)
E. Czaplicki. Concurrent FRP for functional GUI (2012).
N. R. Krishnaswamy.
https://www.mpi-sws.org/∼neelk/simple-frp.pdfHigher-order functional
reactive programming without spacetime leaks(2013).
M. F. Dam. Lectures on temporal logic. Slides: Syntax and semantics of
LTL, A Hilbert-style proof system for LTL
E. Bainomugisha, et al. A survey of reactive programming (2013).
W. Jeltsch. Temporal logic with Until, Functional Reactive Programming
with processes, and concrete process categories. (2013).
A. Jerey. LTL types FRP. (2012).
D. Marchignoli. Natural deduction systems for temporal logic. (2002). 
See Chapter 2 for a natural deduction system for modal and temporal
logics.
Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 23 / 23

Weitere ähnliche Inhalte

Was ist angesagt?

Digital Electronics & Fundamental of Microprocessor-II
Digital Electronics & Fundamental of Microprocessor-IIDigital Electronics & Fundamental of Microprocessor-II
Digital Electronics & Fundamental of Microprocessor-IIpravinwj
 
1.7. eqivalence of nfa and dfa
1.7. eqivalence of nfa and dfa1.7. eqivalence of nfa and dfa
1.7. eqivalence of nfa and dfaSampath Kumar S
 
Solving Poisson Equation using Conjugate Gradient Method and its implementation
Solving Poisson Equation using Conjugate Gradient Methodand its implementationSolving Poisson Equation using Conjugate Gradient Methodand its implementation
Solving Poisson Equation using Conjugate Gradient Method and its implementationJongsu "Liam" Kim
 
1327 Addressing Modes Of 8086
1327 Addressing Modes Of 80861327 Addressing Modes Of 8086
1327 Addressing Modes Of 8086techbed
 
Static and dynamic scoping
Static and dynamic scopingStatic and dynamic scoping
Static and dynamic scopingNusratShaikh16
 
Cubic Spline Interpolation
Cubic Spline InterpolationCubic Spline Interpolation
Cubic Spline InterpolationVARUN KUMAR
 
Karatsuba algorithm for fast mltiplication
Karatsuba algorithm for fast mltiplicationKaratsuba algorithm for fast mltiplication
Karatsuba algorithm for fast mltiplicationAtul Singh
 
Theory of Computation
Theory of ComputationTheory of Computation
Theory of ComputationShiraz316
 
Recurrent Neural Networks (RNNs)
Recurrent Neural Networks (RNNs)Recurrent Neural Networks (RNNs)
Recurrent Neural Networks (RNNs)Abdullah al Mamun
 
Operating System Case Study and I/O System
Operating System Case Study and I/O SystemOperating System Case Study and I/O System
Operating System Case Study and I/O Systemprakash ganesan
 
AI - Local Search - Hill Climbing
AI - Local Search - Hill ClimbingAI - Local Search - Hill Climbing
AI - Local Search - Hill ClimbingAndrew Ferlitsch
 
Simulated Annealing
Simulated AnnealingSimulated Annealing
Simulated AnnealingJoy Dutta
 
Recursion tree method
Recursion tree methodRecursion tree method
Recursion tree methodRajendran
 

Was ist angesagt? (20)

Digital Electronics & Fundamental of Microprocessor-II
Digital Electronics & Fundamental of Microprocessor-IIDigital Electronics & Fundamental of Microprocessor-II
Digital Electronics & Fundamental of Microprocessor-II
 
1.7. eqivalence of nfa and dfa
1.7. eqivalence of nfa and dfa1.7. eqivalence of nfa and dfa
1.7. eqivalence of nfa and dfa
 
Solving Poisson Equation using Conjugate Gradient Method and its implementation
Solving Poisson Equation using Conjugate Gradient Methodand its implementationSolving Poisson Equation using Conjugate Gradient Methodand its implementation
Solving Poisson Equation using Conjugate Gradient Method and its implementation
 
1327 Addressing Modes Of 8086
1327 Addressing Modes Of 80861327 Addressing Modes Of 8086
1327 Addressing Modes Of 8086
 
Knowledge representation
Knowledge representationKnowledge representation
Knowledge representation
 
Bayes Belief Networks
Bayes Belief NetworksBayes Belief Networks
Bayes Belief Networks
 
weak slot and filler
weak slot and fillerweak slot and filler
weak slot and filler
 
LU FACTORIZATION METHOD
 LU FACTORIZATION METHOD LU FACTORIZATION METHOD
LU FACTORIZATION METHOD
 
Static and dynamic scoping
Static and dynamic scopingStatic and dynamic scoping
Static and dynamic scoping
 
Cubic Spline Interpolation
Cubic Spline InterpolationCubic Spline Interpolation
Cubic Spline Interpolation
 
Karatsuba algorithm for fast mltiplication
Karatsuba algorithm for fast mltiplicationKaratsuba algorithm for fast mltiplication
Karatsuba algorithm for fast mltiplication
 
Theory of Computation
Theory of ComputationTheory of Computation
Theory of Computation
 
Recurrent Neural Networks (RNNs)
Recurrent Neural Networks (RNNs)Recurrent Neural Networks (RNNs)
Recurrent Neural Networks (RNNs)
 
Operating System Case Study and I/O System
Operating System Case Study and I/O SystemOperating System Case Study and I/O System
Operating System Case Study and I/O System
 
strong slot and filler
strong slot and fillerstrong slot and filler
strong slot and filler
 
AI - Local Search - Hill Climbing
AI - Local Search - Hill ClimbingAI - Local Search - Hill Climbing
AI - Local Search - Hill Climbing
 
verilog
verilogverilog
verilog
 
Simulated Annealing
Simulated AnnealingSimulated Annealing
Simulated Annealing
 
Iv defuzzification methods
Iv defuzzification methodsIv defuzzification methods
Iv defuzzification methods
 
Recursion tree method
Recursion tree methodRecursion tree method
Recursion tree method
 

Ähnlich wie Temporal Logic and FRP

"That scripting language called Prolog"
"That scripting language called Prolog""That scripting language called Prolog"
"That scripting language called Prolog"Sergei Winitzki
 
Detecting paraphrases using recursive autoencoders
Detecting paraphrases using recursive autoencodersDetecting paraphrases using recursive autoencoders
Detecting paraphrases using recursive autoencodersFeynman Liang
 
lecture01_lecture01_lecture0001_ceva.pdf
lecture01_lecture01_lecture0001_ceva.pdflecture01_lecture01_lecture0001_ceva.pdf
lecture01_lecture01_lecture0001_ceva.pdfAnaNeacsu5
 
Program Derivation of Operations in Finite Fields of Prime Order
Program Derivation of Operations in Finite Fields of Prime OrderProgram Derivation of Operations in Finite Fields of Prime Order
Program Derivation of Operations in Finite Fields of Prime OrderCharles Southerland
 
NFM 2015 - Sum of abstract domains
NFM 2015 - Sum of abstract domainsNFM 2015 - Sum of abstract domains
NFM 2015 - Sum of abstract domainsGianluca Amato
 
Class 18: Measuring Cost
Class 18: Measuring CostClass 18: Measuring Cost
Class 18: Measuring CostDavid Evans
 
Stochastic Frank-Wolfe for Constrained Finite Sum Minimization @ Montreal Opt...
Stochastic Frank-Wolfe for Constrained Finite Sum Minimization @ Montreal Opt...Stochastic Frank-Wolfe for Constrained Finite Sum Minimization @ Montreal Opt...
Stochastic Frank-Wolfe for Constrained Finite Sum Minimization @ Montreal Opt...Geoffrey Négiar
 
Yampa AFRP Introduction
Yampa AFRP IntroductionYampa AFRP Introduction
Yampa AFRP IntroductionChengHui Weng
 
Typing quantum superpositions and measurement
Typing quantum superpositions and measurementTyping quantum superpositions and measurement
Typing quantum superpositions and measurementAlejandro Díaz-Caro
 
Problem Understanding through Landscape Theory
Problem Understanding through Landscape TheoryProblem Understanding through Landscape Theory
Problem Understanding through Landscape Theoryjfrchicanog
 
Computational complexity
Computational complexityComputational complexity
Computational complexityFulvio Corno
 
Support Vector Machine
Support Vector MachineSupport Vector Machine
Support Vector MachineLucas Xu
 
Lecture 05 syntax analysis 2
Lecture 05 syntax analysis 2Lecture 05 syntax analysis 2
Lecture 05 syntax analysis 2Iffat Anjum
 
Calculus- Basics
Calculus- BasicsCalculus- Basics
Calculus- BasicsRabin BK
 

Ähnlich wie Temporal Logic and FRP (20)

"That scripting language called Prolog"
"That scripting language called Prolog""That scripting language called Prolog"
"That scripting language called Prolog"
 
Elm talk bayhac2015
Elm talk bayhac2015Elm talk bayhac2015
Elm talk bayhac2015
 
Detecting paraphrases using recursive autoencoders
Detecting paraphrases using recursive autoencodersDetecting paraphrases using recursive autoencoders
Detecting paraphrases using recursive autoencoders
 
lecture01_lecture01_lecture0001_ceva.pdf
lecture01_lecture01_lecture0001_ceva.pdflecture01_lecture01_lecture0001_ceva.pdf
lecture01_lecture01_lecture0001_ceva.pdf
 
Program Derivation of Operations in Finite Fields of Prime Order
Program Derivation of Operations in Finite Fields of Prime OrderProgram Derivation of Operations in Finite Fields of Prime Order
Program Derivation of Operations in Finite Fields of Prime Order
 
Program on Quasi-Monte Carlo and High-Dimensional Sampling Methods for Applie...
Program on Quasi-Monte Carlo and High-Dimensional Sampling Methods for Applie...Program on Quasi-Monte Carlo and High-Dimensional Sampling Methods for Applie...
Program on Quasi-Monte Carlo and High-Dimensional Sampling Methods for Applie...
 
NFM 2015 - Sum of abstract domains
NFM 2015 - Sum of abstract domainsNFM 2015 - Sum of abstract domains
NFM 2015 - Sum of abstract domains
 
Class 18: Measuring Cost
Class 18: Measuring CostClass 18: Measuring Cost
Class 18: Measuring Cost
 
Stochastic Frank-Wolfe for Constrained Finite Sum Minimization @ Montreal Opt...
Stochastic Frank-Wolfe for Constrained Finite Sum Minimization @ Montreal Opt...Stochastic Frank-Wolfe for Constrained Finite Sum Minimization @ Montreal Opt...
Stochastic Frank-Wolfe for Constrained Finite Sum Minimization @ Montreal Opt...
 
Yampa AFRP Introduction
Yampa AFRP IntroductionYampa AFRP Introduction
Yampa AFRP Introduction
 
Typing quantum superpositions and measurement
Typing quantum superpositions and measurementTyping quantum superpositions and measurement
Typing quantum superpositions and measurement
 
Dynamic programing
Dynamic programingDynamic programing
Dynamic programing
 
Slides
SlidesSlides
Slides
 
Problem Understanding through Landscape Theory
Problem Understanding through Landscape TheoryProblem Understanding through Landscape Theory
Problem Understanding through Landscape Theory
 
Computational complexity
Computational complexityComputational complexity
Computational complexity
 
Ambiguity Pilambda
Ambiguity PilambdaAmbiguity Pilambda
Ambiguity Pilambda
 
Ambiguity Pilambda
Ambiguity PilambdaAmbiguity Pilambda
Ambiguity Pilambda
 
Support Vector Machine
Support Vector MachineSupport Vector Machine
Support Vector Machine
 
Lecture 05 syntax analysis 2
Lecture 05 syntax analysis 2Lecture 05 syntax analysis 2
Lecture 05 syntax analysis 2
 
Calculus- Basics
Calculus- BasicsCalculus- Basics
Calculus- Basics
 

Kürzlich hochgeladen

Hubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroidsHubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroidsSérgio Sacani
 
Grafana in space: Monitoring Japan's SLIM moon lander in real time
Grafana in space: Monitoring Japan's SLIM moon lander  in real timeGrafana in space: Monitoring Japan's SLIM moon lander  in real time
Grafana in space: Monitoring Japan's SLIM moon lander in real timeSatoshi NAKAHIRA
 
Analytical Profile of Coleus Forskohlii | Forskolin .pptx
Analytical Profile of Coleus Forskohlii | Forskolin .pptxAnalytical Profile of Coleus Forskohlii | Forskolin .pptx
Analytical Profile of Coleus Forskohlii | Forskolin .pptxSwapnil Therkar
 
Behavioral Disorder: Schizophrenia & it's Case Study.pdf
Behavioral Disorder: Schizophrenia & it's Case Study.pdfBehavioral Disorder: Schizophrenia & it's Case Study.pdf
Behavioral Disorder: Schizophrenia & it's Case Study.pdfSELF-EXPLANATORY
 
Natural Polymer Based Nanomaterials
Natural Polymer Based NanomaterialsNatural Polymer Based Nanomaterials
Natural Polymer Based NanomaterialsAArockiyaNisha
 
Artificial Intelligence In Microbiology by Dr. Prince C P
Artificial Intelligence In Microbiology by Dr. Prince C PArtificial Intelligence In Microbiology by Dr. Prince C P
Artificial Intelligence In Microbiology by Dr. Prince C PPRINCE C P
 
Analytical Profile of Coleus Forskohlii | Forskolin .pdf
Analytical Profile of Coleus Forskohlii | Forskolin .pdfAnalytical Profile of Coleus Forskohlii | Forskolin .pdf
Analytical Profile of Coleus Forskohlii | Forskolin .pdfSwapnil Therkar
 
VIRUSES structure and classification ppt by Dr.Prince C P
VIRUSES structure and classification ppt by Dr.Prince C PVIRUSES structure and classification ppt by Dr.Prince C P
VIRUSES structure and classification ppt by Dr.Prince C PPRINCE C P
 
Spermiogenesis or Spermateleosis or metamorphosis of spermatid
Spermiogenesis or Spermateleosis or metamorphosis of spermatidSpermiogenesis or Spermateleosis or metamorphosis of spermatid
Spermiogenesis or Spermateleosis or metamorphosis of spermatidSarthak Sekhar Mondal
 
Nanoparticles synthesis and characterization​ ​
Nanoparticles synthesis and characterization​  ​Nanoparticles synthesis and characterization​  ​
Nanoparticles synthesis and characterization​ ​kaibalyasahoo82800
 
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...Sérgio Sacani
 
Luciferase in rDNA technology (biotechnology).pptx
Luciferase in rDNA technology (biotechnology).pptxLuciferase in rDNA technology (biotechnology).pptx
Luciferase in rDNA technology (biotechnology).pptxAleenaTreesaSaji
 
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43bNightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43bSérgio Sacani
 
Boyles law module in the grade 10 science
Boyles law module in the grade 10 scienceBoyles law module in the grade 10 science
Boyles law module in the grade 10 sciencefloriejanemacaya1
 
Is RISC-V ready for HPC workload? Maybe?
Is RISC-V ready for HPC workload? Maybe?Is RISC-V ready for HPC workload? Maybe?
Is RISC-V ready for HPC workload? Maybe?Patrick Diehl
 
Work, Energy and Power for class 10 ICSE Physics
Work, Energy and Power for class 10 ICSE PhysicsWork, Energy and Power for class 10 ICSE Physics
Work, Energy and Power for class 10 ICSE Physicsvishikhakeshava1
 
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...anilsa9823
 
Recombination DNA Technology (Nucleic Acid Hybridization )
Recombination DNA Technology (Nucleic Acid Hybridization )Recombination DNA Technology (Nucleic Acid Hybridization )
Recombination DNA Technology (Nucleic Acid Hybridization )aarthirajkumar25
 

Kürzlich hochgeladen (20)

Hubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroidsHubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroids
 
Grafana in space: Monitoring Japan's SLIM moon lander in real time
Grafana in space: Monitoring Japan's SLIM moon lander  in real timeGrafana in space: Monitoring Japan's SLIM moon lander  in real time
Grafana in space: Monitoring Japan's SLIM moon lander in real time
 
Analytical Profile of Coleus Forskohlii | Forskolin .pptx
Analytical Profile of Coleus Forskohlii | Forskolin .pptxAnalytical Profile of Coleus Forskohlii | Forskolin .pptx
Analytical Profile of Coleus Forskohlii | Forskolin .pptx
 
Behavioral Disorder: Schizophrenia & it's Case Study.pdf
Behavioral Disorder: Schizophrenia & it's Case Study.pdfBehavioral Disorder: Schizophrenia & it's Case Study.pdf
Behavioral Disorder: Schizophrenia & it's Case Study.pdf
 
Natural Polymer Based Nanomaterials
Natural Polymer Based NanomaterialsNatural Polymer Based Nanomaterials
Natural Polymer Based Nanomaterials
 
Artificial Intelligence In Microbiology by Dr. Prince C P
Artificial Intelligence In Microbiology by Dr. Prince C PArtificial Intelligence In Microbiology by Dr. Prince C P
Artificial Intelligence In Microbiology by Dr. Prince C P
 
Analytical Profile of Coleus Forskohlii | Forskolin .pdf
Analytical Profile of Coleus Forskohlii | Forskolin .pdfAnalytical Profile of Coleus Forskohlii | Forskolin .pdf
Analytical Profile of Coleus Forskohlii | Forskolin .pdf
 
VIRUSES structure and classification ppt by Dr.Prince C P
VIRUSES structure and classification ppt by Dr.Prince C PVIRUSES structure and classification ppt by Dr.Prince C P
VIRUSES structure and classification ppt by Dr.Prince C P
 
Spermiogenesis or Spermateleosis or metamorphosis of spermatid
Spermiogenesis or Spermateleosis or metamorphosis of spermatidSpermiogenesis or Spermateleosis or metamorphosis of spermatid
Spermiogenesis or Spermateleosis or metamorphosis of spermatid
 
Nanoparticles synthesis and characterization​ ​
Nanoparticles synthesis and characterization​  ​Nanoparticles synthesis and characterization​  ​
Nanoparticles synthesis and characterization​ ​
 
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
 
Luciferase in rDNA technology (biotechnology).pptx
Luciferase in rDNA technology (biotechnology).pptxLuciferase in rDNA technology (biotechnology).pptx
Luciferase in rDNA technology (biotechnology).pptx
 
9953056974 Young Call Girls In Mahavir enclave Indian Quality Escort service
9953056974 Young Call Girls In Mahavir enclave Indian Quality Escort service9953056974 Young Call Girls In Mahavir enclave Indian Quality Escort service
9953056974 Young Call Girls In Mahavir enclave Indian Quality Escort service
 
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43bNightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
Nightside clouds and disequilibrium chemistry on the hot Jupiter WASP-43b
 
Boyles law module in the grade 10 science
Boyles law module in the grade 10 scienceBoyles law module in the grade 10 science
Boyles law module in the grade 10 science
 
Is RISC-V ready for HPC workload? Maybe?
Is RISC-V ready for HPC workload? Maybe?Is RISC-V ready for HPC workload? Maybe?
Is RISC-V ready for HPC workload? Maybe?
 
Work, Energy and Power for class 10 ICSE Physics
Work, Energy and Power for class 10 ICSE PhysicsWork, Energy and Power for class 10 ICSE Physics
Work, Energy and Power for class 10 ICSE Physics
 
The Philosophy of Science
The Philosophy of ScienceThe Philosophy of Science
The Philosophy of Science
 
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
 
Recombination DNA Technology (Nucleic Acid Hybridization )
Recombination DNA Technology (Nucleic Acid Hybridization )Recombination DNA Technology (Nucleic Acid Hybridization )
Recombination DNA Technology (Nucleic Acid Hybridization )
 

Temporal Logic and FRP

  • 1. Temporal Logic and Functional Reactive Programming Sergei Winitzki Bay Area Categories and Types April 25, 2014 Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 1 / 23
  • 2. What is reactive programming Transformational programs Reactive programs example: pdflatex frp_talk.tex example: any GUI program start, run, then stop keep running indenitely read some input, write some output wait for signals, send messages execution: sequential + some parallel main run loop + concurrency diculty: algorithms signal/response sequences specication: classical logic temporal logic? owcharts? verication: prove it correct model checking? synthesis: extract code from proof temporal synthesis? type theory: intuitionistic logic intuitionistic temporal logic Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 2 / 23
  • 3. The uses of logic in computer science 1 Logic as a specication language - enables automatic verication Automatic synthesis of programs from specications? 2 (Intuitionistic) logic as type theory - guides language design Mathematicians have already minimized the set of axioms! 3 Logic programming - use a decidable subset of logic Very high-level language, but limited to its domain 4 Automated theorem proving - derive a program as a proof artifact Requires advanced type systems and proof heuristics Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 3 / 23
  • 4. Part 1: Introduction to temporal logic Let's forget all philosophy, what is time, what is true, modal logic... We want to see logic as a down-to-earth, computationally useful tool We begin with the computational view of classical Boolean logic Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 4 / 23
  • 5. Boolean algebra: notation Classical propositional (Boolean) logic: T , F , a ∨ b, a ∧ b, ¬a, a → b A notation better adapted to school-level algebra: 1, 0, a + b, ab, a The only new rule is 1 + 1 = 1 Dene a → b = a + b Some identities: 0a = 0, 1a = a, a + 0 = a, a + 1 = 1, a + a = a, aa = a, a + a = 1, aa = 0, (a + b) = a b , (ab) = a + b , a = a a (b + c) = ab + ac, (a + b) (a + c) = a + bc DNF = expand all brackets. Some DNF simplication tricks: a + ab = a, a (a + b) = a, (a → b) a → c = ab + a c, (a → x) b → x = a + x b + x = x a + xb Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 5 / 23
  • 6. Boolean algebra: example Of the three suspects A, B, C , only one is guilty of a crime. Suspect A says: B did it. Suspect B says: C is innocent. The guilty one is lying, the innocent ones tell the truth. φ = ab c + a bc + a b c a b + ab b c + bc Simplify: expand the brackets, omit aa , bb , cc , replace aa = a etc.: φ = ab c + 0 + 0 = ab c The guilty one is A. Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 6 / 23
  • 7. Synthesis of Boolean programs Specication of a Boolean program: If the boss is in, I need to work unless the telephone rings. If the boss is not in, I go drink tea. b =boss is in, r =telephone rings, w =I work, w =I drink tea φ(b, r , w ) = br → w b → w = w br + wb = w b + r + wb Goal: given any b and r , compute w such that φ(b, r , w ) = 1. One solution is just φ(b, r , w = 1): w = φ(b, r , 1) = 0 b + r + 1b = b I work if and only if the boss is in (Other solutions exist, e.g. w = br ) Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 7 / 23
  • 8. Propositional linear-time temporal logic (LTL) Reactive programs respond to an innite stream of signals So let's work with innite boolean sequences (linear time) Boolean operations: a = [a0, a1, a2, ...] ; b = [b0, b1, b2, ...] ; a + b = [a0 + b0, a1 + b1, ...] ; a = a0, a1, ... ; ab = [a0b0, a1b1, ...] Temporal operations: (Next) Na = [a1, a2, ...] (Sometimes) Fa = [a0 + a1 + a2 + ..., a1 + a2 + ..., ...] (Always) Ga = [a0a1a2a3..., a1a2a3..., a2a3..., ...] Other notation (from modal logic): Na ≡ a; Fa ≡ ♦a; Ga ≡ a Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 8 / 23
  • 9. Temporal xpoints and the µ-calculus notation LTL admits only temporal functions dened by xpoints: Fa = [a0 + a1 + a2 + a3 + ..., a1 + a2 + a3 + ..., ...] Fa = a + N(Fa) Ga = [a0a1a2a3..., a1a2a3..., a2a3..., ...] Ga = aN(Ga) Notation: µ for the least xpoint, ν for the greatest xpoint Fa = µx. (a + Nx) ; Ga = νx. (a(Nx)) but νx. (a + Nx) = 1; µx. (a(Nx)) = 0 The most general xpoints involving only one N: (weak Until) pUq = νx. (q + p(Nx)) (strict Until) p ˙Uq = µx. (q + p(Nx)) Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 9 / 23
  • 10. LTL: interpretation of Until Weak Until: pUq = p holds from now on until q rst becomes true pUq = q + pN(q + pN(q + ...)) Example: a = [1, 0, 0, 0, 1, 0, ...] b = [0, 1, 0, 1, 0, 1, ...] aUb = [1, 1, 0, 1, 1, 1, ...] Strict Until: p ˙Uq = q must become true, and p holds until then Dualities: (Fa) = G(a ); also (p ˙Uq) = q U(p q ) Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 10 / 23
  • 11. LTL: temporal specication Whenever the boss comes by my oce, I will start working. Once I start working, I will keep working until the telephone rings. G((b → Fw ) (w → w Ur )) = G b + Fw w + w Ur Whenever the button is pressed, the dialog will appear. The dialog will disappear after 1 minute of user inactivity. G (b → Fd ) (d → Ft) d → d Utd The timer t is an external event and is not specied here Dicult to say x stays true until further notice Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 11 / 23
  • 12. LTL: disjunctive normal form What would be the DNF in LTL? Let's just expand brackets: φ = G b + Fw w + w Ur = b + Fw w + w Ur Nφ = b + w + N(Fw ) w + r + w N(w Ur ) Nφ = b + w + N(w + N(Fw )) w + r + w N(r + w N(w Ur )) N(...) = ... N(... ...N(... ...N(...))) ... We will never nish expanding those brackets! But many subformulas under N(...) are the same: φ1 = Fw ; φ2 = w Ur ; φ = b + w + Nφ1 w + r + w Nφ2 Nφ = rw + b w Nφ + w N(φφ1) + w N(φφ2) Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 12 / 23
  • 13. LTL: disjunctive normal form Let's expand and simplify φφ1 and φφ2: we get simultaneous xpoints φ = rw + b w N(φ) + w N(φφ1) + w N(φφ2); φφ1 = rw N(φ) + r + w N(φφ1) + w N(φφ2); φφ2 = r w + b N(φ) + r N(φφ1) + w N(φφ2). The DNF for LTL is a graph! φ φφ1 rw + b′ w′ w′ w rw r φφ2 w r + w′ r(w + b′ ) w Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 13 / 23
  • 14. The failure of LTL program synthesis Goal: given b and r , determine w The DNF generates a nondeterministic nite automaton (NFA) for w States of the automaton are φ, φφ1, φφ2, ... (sets of xpoints of φ) The DNF construction generates these states for us Determinizing the automaton may exponentially increase its size Worst case: for φ with n xpoints, DFA will have 2 2n states Specications will generally need to use many xpoints. Example: Whenever b is pressed, send query q and show w (Waiting). Upon reply r , show d (Done). Pressing c (Cancel) stops waiting. φ = G[ bw → bUd w w → d w U(c + r ) cw → cUw q ↔ bw rw → r Udw ]. LTL is not particularly convenient for modular specication Synthesis is not practical (I write and debug my automata by hand...) Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 14 / 23
  • 15. Part 2: Temporal logic as type theory Logic gives a recipe for designing a minimal programming language (Curry-Howard isomorphism) Typically, we use an intuitionistic version of the logic: No negation, no ⊥; only a + b, ab, a → b No law of excluded middle No truth tables, no simplication Usually, cannot derive proofs automatically Axioms are predened terms needed in the language Example: (a → c) → (b → c) → (a + b → c) is the case operator Proof rules are predened constructions needed in the language Example: modus ponens (a; a → b so b) is function application Natural deduction rules are typing rules for the language Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 15 / 23
  • 16. Interpreting values typed by LTL What does it mean to have a value x of type, say, G(α → αUβ)? x : Nα means that x : α will be available only at the next time tick (x is a deferred value of type α) x : Fα means that x : α will be available at some future tick(s) (x is an event of type α) x : Gα means that a (dierent) value x : α is available at every tick (x is an innite stream of type α) x : αUβ means a nite stream of α that may end with a β Some temporal axioms of intuitionistic LTL: (deferred apply) N(α → β) → (Nα → Nβ) ; (streamed apply) G(α → β) → (Gα → Gβ) ; (generate a stream) G(α → Nα) → (α → Gα) ; (read innite stream) Gα → αN(Gα) (read nite stream) αUβ → β + αN(αUβ) Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 16 / 23
  • 17. A small FRP language: Elm Core Elm: polymorphic λ-calculus with lift2, foldp, async lift2 : (α → β → γ) → Gα → Gβ → Gγ foldp : (α → β → β) → β → Gα → Gβ async : Gα → Gα (lift2 makes G an applicative functor) async is a special scheduling instruction Limitations: Cannot have a type G(Gα), also no concept of N or F Cannot construct temporal values by hand This language is an incomplete Curry-Howard image of LTL! I work after the boss comes by and until the phone rings: let after_until w (b,r) = (w or b) and not r in foldp after_until false (boss, phone) Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 17 / 23
  • 18. Legacy FRP systems: FrTime, Fran, AFRP, etc. Two functors: continuous behavior Gα and discrete event Fα Time is conceptually continuous Explicit N, delay by time ∆t, explicit values of time Many predened combinators that do not follow from type theory: value-now, delay-by, integral, ... (FrTime) merge, switcher, G(Gα), ... (Fran) AFRP: temporal values are not available, only combinators! Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 18 / 23
  • 19. A lower-level FRP language: AdjS A lower-level type system: Nα (next), ˆµα.Σ (µ+next), α (stable) Explicit one-step temporal xpoints, for example Fτ = ˆµα.τ + α τ = ˆµα.Σ ∼= ˆµα. Nτ α Σ Term assignments, simplied (see Krishnaswamy's paper): Γ e : α Γ next e : Nα NI Γ f : Nα Γ, x : α e : β let next x = f in e : β NE Γ e : [N(ˆµα.Σ)/α] Σ Γ into e : ˆµα.Σ ˆµI Γ e : ˆµα.Σ Γ out e : [N(ˆµα.Σ)/α] Σ ˆµE Γ e : α Γ stable e : α I Γ f : α Γ, x : α e : β Γ let stable x = f in e : β E Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 19 / 23
  • 20. Dreams of an ideal FRP language Requirements for a broadly usable FRP language: stable and temporal types distinguished statically seamless conversion from int to G(int) and back, for stable types construct values of type Fα by hand: from asynchronous scheduling construct values of type Fα from external sources (environment) tick-free operation: N is not needed, use F instead the runloop (UI thread / background threads) needs to be represented I guess we are still in the research phase here... Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 20 / 23
  • 21. Conclusions and outlook LTL is not a good t as a specication language for reactive programs LTL synthesis from specication is theoretical, not practical FRP tries to make specication closer to implementation There are some languages that implement FRP in various ad hoc ways The ideal is not (yet) reached Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 21 / 23
  • 22. Abstract In my day job, most bugs come from imperatively implemented reactive programs. Temporal Logic and FRP are declarative approaches that promise to solve my problems. I will briey review the motivations behind and the connections between temporal logic and FRP. I propose a rather pedestrian approach to propositional linear-time temporal logic (LTL), showing how to perform calculations in LTL and how to synthesize programs from LTL formulas. I intend to explain why LTL largely failed to solve the synthesis problem, and how FRP tries to cope. FRP can be formulated as a λ-calculus with types given by the propositional intuitionistic LTL. I will discuss the limitations of this approach, and outline the features of FRP that are required by typical application programming scenarios. My talk will be largely self-contained and should be understandable to anyone familiar with Curry-Howard and functional programming. Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 22 / 23
  • 23. Suggested reading E. Czaplicki, S. Chong. Asynchronous FRP for GUIs. (2013) E. Czaplicki. Concurrent FRP for functional GUI (2012). N. R. Krishnaswamy. https://www.mpi-sws.org/∼neelk/simple-frp.pdfHigher-order functional reactive programming without spacetime leaks(2013). M. F. Dam. Lectures on temporal logic. Slides: Syntax and semantics of LTL, A Hilbert-style proof system for LTL E. Bainomugisha, et al. A survey of reactive programming (2013). W. Jeltsch. Temporal logic with Until, Functional Reactive Programming with processes, and concrete process categories. (2013). A. Jerey. LTL types FRP. (2012). D. Marchignoli. Natural deduction systems for temporal logic. (2002). See Chapter 2 for a natural deduction system for modal and temporal logics. Sergei Winitzki (Versal Group Inc.) Temporal Logic and FRP April 25, 2014 23 / 23