Download presentation
Presentation is loading. Please wait.
Published byTiffany Robinson Modified over 8 years ago
1
7 October 2002PPDP 20021 On the Expressive Power of Temporal Concurrent Constraint Programming Languages Mogens Nielsen, BRICS Catuscia Palamidessi, INRIA Frank Valencia, BRICS
2
7 October 2002PPDP 20022 Plan of the talk Introduction to timed ccp (tcc) Various tcc dialects: iteration / recursion, parameters yes / no, Non local vars yes / no static / dynamic scope Equivalence results Recursion, static scope, no pars Replication Recursion, dynamic scope, no pars Recursion, pars Separation results The first class is strictly less expressive than the second class
3
7 October 2002PPDP 20023 Timed ccp Ccp [Panangaden, Rinard, Saraswat 1991] processes communicate via a common store of constraints y > x tell(x=1) ask(y>0)
4
7 October 2002PPDP 20024 response Timed ccp tcc [Saraswat, Jagadeesan, Gupta, 1994] variant of deterministic ccp to program reactive systems time is divided in discrete intervals (time units) in each time unit a process receives a stimulus (initial store) and it computes till it reaches a resting point. The final store is the response. time unit stimulus
5
7 October 2002PPDP 20025 Timed ccp Syntax of tcc Finite processes P ::= skip | tell(c) | when c do P | P||Q | (local x) P | next P | unless c next P c represents a constraint when is tcc for ask local x is tcc for the existential next refers to the next time interval
6
7 October 2002PPDP 20026 Timed ccp Operational semantics of tcc Configuration: ( P, c ) Transition rules (tell(c), d) (skip, c and d) processstore (when c do P, d) (P, d) d |- c ( P||Q, c ) ( P || Q’, d ) ( Q, c ) ( Q’, d ) ( P||Q, c ) ( P’ || Q, d ) ( P, c ) ( P’, d )
7
7 October 2002PPDP 20027 ( (local x,c) P, d ) ( (local x,c’) P’, d and x c’ ) (unless c next P, d) (skip, d) ( P, c ) (F(Q), d ) Timed ccp Transition rules (cont.ed) d |- c ( P, c ) * ( Q, d ) ( P, c and x d) ( P’, c’ and x d) Future function F(next P) = P F(unless c next P) = P F(when c do P) = skip F(P || Q) = F(P) || F(Q) F((local x) P) = (local x) F(P)
8
7 October 2002PPDP 20028 Timed ccp Operators for infinite behavior Iteration ! P Recursion A(x) == P syntactic restrictions ensure that a process stops after a finite number of steps in each time unit Locality rule for static scope the standard ccp rule (shown before) induces dynamic scope (! P, c) (P || next ! P, c ) (A(y), c) (Q, d ) (P[y/x], c) (Q, d ) ((local x) P, c ) ( P[y/x], d ) y fresh
9
7 October 2002PPDP 20029 Timed ccp Dynamic scope vs Static scope Example: Let A be defined as A == tell(x=1) || P Consider the process (local x) A Classic rule: The x in A’s def is captured by the scope of (local x) ((local x) A,true) ((local x) tell(x=1) || P, true) ((local x, x=1) P, true) New rule: The first step eliminates (local x) ((local x) A,true) ( A, true) (tell(x=1) || P, true) ( P, x=1 )
10
7 October 2002PPDP 200210 Timed ccp Example A ==tell(light = off) || unless (toggle_switch) next A || when (toggle_switch) do next B B ==tell(light = on) || unless(toggle_switch) next B || when(toggle_switch) do next A ttptoff on off
11
7 October 2002PPDP 200211 Observables and equivalences Stimulus-response (or input-output) relation io(P) = { (c 1.c 2.c 3 …, d 1.d 2.d 3 … ) | (P, c 1 ) (P 1, d 1 ) (P 1, c 2 ) (P 2, d 2 ) (P 2, c 3 ) (P 3, d 3 ) … } Equivalence: P eq Q iff io(P) = io(Q) Timed ccp c1c1 c5c5 c4c4 d1d1 d2d2 d4d4 d3d3 d5d5 c2c2 c3c3
12
7 October 2002PPDP 200212 Variants of tcc Based on finite tcc replicatrecursparamsloc varsscope rep yesno --- rec 0 noyesno - rec p noyes no- rec i noyesidenticalno- rec d noyesnoyesdynamic rec s noyesnoyesstatic
13
7 October 2002PPDP 200213 rec i rec 0 The tcc hierarchy rep rec s rec p rec d inclusion encoding Undecidable Decidable
14
7 October 2002PPDP 200214 Undecidability of rec p The equivalence of processes in rec p is undecidable. In fact, it is possible to reduce the Post Correspondence Problem (PCP) to the problem of non-equivalence between rec p processes. Post Correspondence Problem: Given two sets of words V = {v 0, v 1, v 2, … } and W = {w 0, w 1, w 2, … } on a generic alphabet containing at least two symbols, the PCP consists in finding a sequence of indexes i 0,i 1,i 2,… such that v i 0.v i 1.v i 2. …= w i 0.w i 1.w i 2.… Given V, W, we define two processes A and B such that the PCP (V, W) has a solution iff it is not the case that A eq B
15
7 October 2002PPDP 200215 Undecidability of rec p wait c do P == when c do P || unless c next wait c do P repeat Q == Q || next repeat Q W i (x) == k< |wi| next k tell(x =w i [k]) V i (x) == k< |vi| next k tell(x =v i [k]) A i (b 1,b 2, ind,x) == (local a 1,a 2,ichosen) wait b 1 =1 do (W i (x) || next |wi| (tell(b 1 =0) || tell(a 1 =1) ) || wait b 2 =1 do (V i (x) || next |vi| (tell(b 2 =0) || tell(a 2 =1) ) || j in I when index=j do (tell(ichosen=1) || Aj(a1,a2,index,x) ) || Abort(ichosen) Abort(ichosen) == unless ichosen=1 next repeat tell(false) || when false do repeat tell(false)
16
7 October 2002PPDP 200216 Undecidability of rec p index = 3 v0v0 index = 2 index = 1 w0w0 v3v3 v1v1 w1w1 w3w3 b 1 =0 b 2 =0 The symbols of v i’ s and w j ’s are checked at every time interval, and if they do not correspond then we get an inconsistency (abort) The sequence 0, 3, 1 is a solution for the PCP for (V,W).
17
7 October 2002PPDP 200217
18
7 October 2002PPDP 200218 Undecidability of rec p B i (b 1,b 2, ind, x, ok) == (local a 1,a 2,ichosen) wait b 1 =1 do (W i (x) || next |wi| (tell(b 1 =0) || tell(a 1 =1) ) || wait b 2 =1 do (V i (x) || next |vi| (tell(b 2 =0) || tell(a 2 =1) ) || j in I when index=j do (tell(ichosen=1)) || Bj(a1,a2,index,x) ) || Abort(ichosen) || wait b1=0 and b2=0 do tell(ok=1) A(ind,x) == (local b 1 b 2 ) tell(b 1 =1) || tell(b 2 =1) || A 0 (b 1,b 2,ind,x) B(ind,x,ok) == (local b 1 b 2 ) tell(b 1 =1) || tell(b 2 =1) || B 0 (b 1,b 2,ind,x,ok)
19
7 October 2002PPDP 200219 Undecidability of rec p A(index,x) eq B(index,x,ok) iff the tell(ok=1) in B i is never executed, namely iff it is never the case that b 1 = 0 and b 2 = 0 at the same time. But this holds iff the answer to the PCP for (V,W) is negative. Since the PCP is undecidable, also the question whether P eq Q is undecidable.
20
7 October 2002PPDP 200220 Decidability of rep The key idea is to encode the processes of rep in Buchi automata in such a way that the stimulus-response behavior can be retrieved from the language accepted by the automaton Buchi automata are finite automata equipped with an acceptance condition that is appropriate for ( -) infinite sequences: A sequence is accepted by the automaton iff the automaton can read it from left to right while visiting a sequence of states in which some final state occurs infinitely often. a a b b b a a is not in the language (ab) and b are in the language Language equivalence of Buchi Automata is decidable
21
7 October 2002PPDP 200221 Relevant constraints of = {P 1,…,P n }: all constraints that can be constructed from constraints in P 1,…,P n. Formally: RC(skip) = {true} RC(tell(c)) = {c} RC(when c do P) = RC(unless c next P) = {c} U RC(P) RC(P || Q) = RC(P) U RC(Q) RC(!P) = RC(next P) = RC(P) RC((local x) P) = { Ex c, Ax c) | c in Closure(RC(P)) } RC = And_Closure( Closure(RC(P 1 ) ) U … U Closure(RC(P n )) ) Lemma 1: RC( ) is finite Lemma 2: For P in , (P,c) (P’,c and d) iff (P,c( )) (P’,c( ) and d) where c( ) = max { d in C( ) | c |- d } (it always exists because RC( ) is and-closed) RC( ) c( ) Construction of the finite automata for P,Q c
22
7 October 2002PPDP 200222 Let S be the set of relevant constraints for = { P, Q } Derivatives of P wrt S = { P’ | (P,c) * (P’,c’), c in S }/~, where ~ is the smallest congruence containing P ~ P || P Lemma: There are finitely many derivatives of P wrt S The automaton for P (the one for Q is analogous) States: The derivatives of P wrt S Arcs: (c,d) in S x S is and arc from P’ to P’’ iff (P’,c) (R,d) and P’’~ R Theorem: P eq Q iff the automaton corresponding to P and Q are language-equivalent Construction of the finite automata for P, Q
23
7 October 2002PPDP 200223 This separation is rather obvious: in rec 0 a process can be active through infinitely many time units, but eventually it will stop producing information, because recursion contains neither parameters, nor local variables, hence processes cannot communicate with the external world For instance, (true ,(x=1) ) is not in io(P) for any P in rec 0. In general the max number of steps during which info on x can be produced is not greater than the max number of nested next operators in whose scope x occurs free (not existentially quantified) In rep it is possible to expess such io behavior: ! tell(x=1) Separation between rep and rec 0
24
7 October 2002PPDP 200224 rec i rec 0 Expressiveness Equivalences rep rec s rec p rec d inclusion encoding Undecidable Decidable
25
7 October 2002PPDP 200225 [[ ! P ]] = R P (x) with procedure definition R P (x) == P || next R P (x) and x = fv(P) [[ ]] is homomorphic in all other operators Example: [[ ! tell(x=1) ]] = R(x) with R(x) == tell(x=1) || next R(x) Encoding rep in rec i
26
7 October 2002PPDP 200226 [[ P]] = (local z A1 … z An ) ( [[P]]’ || i [[ A i = P i ]]’ ) [[ A i == P i ]]’ = ! when call(z Ai ) do [[P]]’ [[ A i ]]’ = tell( call(z Ai ) ) [[ (local x) P ]]’ = (local y) ( [[P]]’ [y/x] ) with y fresh The other operators are translated homomorphically Example: A == tell(x=1) || A [[A]] = (local z) (tell(call(z A ))) || ! when call(z A ) do ( tell(x=1) || tell(call(z A )) ) Encoding rec s in rep
27
7 October 2002PPDP 200227 This encoding uses the representation of rep processes as Buchi Automata Let P be in rep and let A be the Buchi automaton associated to it (considering the relevant constraints of P only): Given a state Q of A, define A Q == (Q c =>(Q,d) when c do ( (tell(d) || unless e next A R ) ) where e = V { c’ | c’ =/= c, c’ |- c and (Q c =>(Q,d) } Encoding rep in rec s
28
7 October 2002PPDP 200228 [[ A == P ]] = A(x) == [[ P ]] where x = fv(P) [[ A ]] = A(x) All the other operators are homomorphic Encoding rec d in rec p
29
7 October 2002PPDP 200229 [[ A(x) == P ]] = A == [[ P ]] [[ A(y) ]] = (local x) (A || repeat tell(x=y)) All the other operators are homomorphic Encoding rec p in rec d
30
7 October 2002PPDP 200230 Various expressiveness results (positive and negative) for various tcc dialects The fact that we are in a timed framework does not seem to play a crucial role. Do the results hold also in (deterministic) ccp? The equivalence between rec d and rec p holds also in det ccp We don’t know about the separation results (although we feel they still hold) The other results involve rep and we should first define ! P in a non-timed context ( ! P = P || ! P is not interesting in deterministic ccp) Does static vs dynamic scope make a difference also in other concurrent languages, for instance ccs? And how about replication vs recursion? Conclusion and future work
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.