What Is a Good Process Semantics?
Total Page:16
File Type:pdf, Size:1020Kb
What is a good process semantics? Robin Cockett [email protected] University of Calgary Estonia 2006: What is a good process semantics? July, 2006 – p. 1/61 What is a good process semantics? 1. Where are we? Where should we be? 2. Communication on a channel. 3. Polycategories and representability. 4. Communication on many channels. 5. Communication protocols. Estonia 2006: What is a good process semantics? July, 2006 – p. 2/61 1. Where are we? Where should we be? Estonia 2006: What is a good process semantics? July, 2006 – p. 3/61 Distributed computing: the reality ... In the 1970's networks, parallel, and distributed computing was going to solve everything! Practitioners pushed back with “the fallacies” (Joy, Lyon, Deutsch, Gosling): The network is reliable. Latency is zero. Bandwidth is infinite The network is secure. Topology doesn't change. Transport cost is zero. The network is homogeneous. Computing had blindly entered a new world of expectation and connectedness! There was no turning back ... Estonia 2006: What is a good process semantics? July, 2006 – p. 4/61 Practice ahead of theory ... Where was the theory? Where was the mathematics of processes, concurrency, communication? Was the theory only develop in response to practice? Was theory simply modeling practice? Should it? Was there a need to develop new theory ... .... or was it just taking time to link existing theory and practice? Does mathematics have anything insightful to say about communicating processes? Estonia 2006: What is a good process semantics? July, 2006 – p. 5/61 A brief history of process semantics ... Petri nets, C. A. Petri (1962). Communicating Sequential Processes (CSP), C. A. R. Hoare (1978). Calculus of Communicating Processes (CCS), R. Milner (1979) [book (1989)]. Algebra of Communicating Processes (ACP), J. Bergstra and J. W. Klop (1982). Robin Milner's quest to find the “λ-calculus of concurrency” produced the π-calculus with J. Parrow (1992) [book (1999)]. Others: ambient calculus L. Cardelli, A.D. Gordon), PEPA (J. Hillston), the fusion calculus (J. Parrow and B. Victor), the spy calculus (M. Abadi and A. Gordon), ... “What are the fundamental structures of concurrency? We still don't know!” “Is this profusion a scandal of our subject: I used to think so ... now I am not so sure.” Samson Abramsky (2005) Estonia 2006: What is a good process semantics? July, 2006 – p. 6/61 The complaint ... Abramsky's complaints: No Church's thesis for concurrency ... A tool kit: no unified theory ... Plasticity of definition, carvings in snow: no bedrock ... A profusion of syntax but no semantics ... Physics (quantum computing) and biology (biological modeling) are at our gates: what do we have to show them? Abramsky's resolution: Should we expect more than a tool kit? The tool kit is not so bad: bisimulation, hiding, scope extrusion, ... The subject covers a wide range of phenomena ... Estonia 2006: What is a good process semantics? July, 2006 – p. 7/61 So what is a good process semantics? _ _ _ _ _ _ _ _ _ Operational behaviors _ _ _6 _ _O _ _ i _ _ Term logic o / Categorical doctrine Ph P kk5 PPP kkk PP kkk PPP kkk PP( ukkk Proof theory _ _ _) _ _ _ _ _ _ Mathematical models _ _ _ _ _ _ _ _ _ Estonia 2006: What is a good process semantics? July, 2006 – p. 8/61 What is missing? Term logic: A convenient programming language: the focus of recent work. Categorical doctrine: The algebraic semantics: why is it important? Universally given constructs (properties versus structure). Basic equational rules of equality: allowing (localized) program transformations. Compositional semantics: allowing program construction. Modular description: allows “feature” addition with control over their interactions. Interface to mathematics: models of these settings with different properties. Proof theory: Detailed behavior of the free term model: Term construction Type inference and checking. Compositional behavior from cut elimination. Estonia 2006: What is a good process semantics? July, 2006 – p. 9/61 ... in other words BISIMULATION SUCKS Estonia 2006: What is a good process semantics? July, 2006 – p. 10/61 So where are we? Still developing the mathematics!! ... but we are further along than you might think! Estonia 2006: What is a good process semantics? July, 2006 – p. 11/61 2. Communication on a channel (A surprising bit of bedrock!) Estonia 2006: What is a good process semantics? July, 2006 – p. 12/61 Products and coproducts Abelian groups, suplattices, relations: A + B = A × B (biproducts) Sets, topoi, cartesian closed categories, extensive and distributive categories A + B = A t B (disjoint union) A × B (cartesian product) A × (B + C) =∼ (A × B) + (A × C) In all these settings the product and coproducts satisfy some very special properties! What does ΣΠ(A) the category with free products and coproducts generated by the category A look like? Andre Joyal: Free bicomplete categories. Estonia 2006: What is a good process semantics? July, 2006 – p. 13/61 Products Y p7 ? 1 ppp f1 pp ppp pp Π1 pp Π (f); g = Π (f; g) ppp k k pp . X / i Yi . f; (gi)i2I = (f; gi)i2I N (f ) . NNNi i ?? NNQ ? (fi)i2I ; Πk(g) = fk; g NN ?? Πn NNN ? fn NN ?? NN ?? NN' YN where Πk i Yi / Yk EE Q E Π ; f = Π (f) and Π = Π (1 ) EE f k k k k Yk Πk(f) EE E" Z Estonia 2006: What is a good process semantics? July, 2006 – p. 14/61 Coproducts X 1 ?OO ??OOO ? OO g1 ?? OOO q1 ? OO ?? OO f; q (g) = q (f; g) ? OOO k k . O' . i Xi / Y hfj ij2J ; g = hfj ; gij2J . hgii o7 ? oo ` oo qk(f); hgj ij2J = f; gk qn oo ooo oo gn ooo ooo Xn where qk Xk / j Yj O y< y ` f; q = q (f) and q = q (1 ) f yy k k k k Xk yy qk(f) yy Z Estonia 2006: What is a good process semantics? July, 2006 – p. 15/61 Interactions X1 / Y1 < h11 A << ÒÒ << ÒÒ << ÒÒ hn1< Ò . < Ò . h(hij )iij =(hhij ij )i . h Ò< . gives Y . 1mÒÒ << . i Xi / j j ÒÒ << Ò < ` Q ÒÒ << ÒÒ < Xn / Yn hnm and some other basic equalities: Πi(qj (f)) = qj (Πi(f)) Πk((gi)i) = (Πk(gi))i qk (hfj ij ) = hqk(fj )ij Estonia 2006: What is a good process semantics? July, 2006 – p. 16/61 Logic of products and coproducts id A `1A A fXj `fj Y gj2J fX `g Yigi2I cotuple i tuple j Xj `hfj ij2J Y X `(gi)i2I i Yi ` Q X `f Yk Xk `f Y coproj proj X `qk(f) i2I Yi i2I Xi `Πk(f) Y ` Q X `f Y Y `g Z cut X `f;g Z Estonia 2006: What is a good process semantics? July, 2006 – p. 17/61 Cut elimination ... is rewriting modulo equations: f; 1 +3 f 1; f +3 f f; qk(g) +3 qk(f; g) qk(hfj ij ) hqk(fj )ij Πk(f); g +3 Πk(f; g) Πk((fi)i) (Πk(fi))i hfiii; g +3 hfi; gii Πi(qj (f)) qj (Πi(f)) f; (gi)i +3 (f; gi)i (hfij ii)j h(fij )j ii qk(f); hgiii +3 f; gk (fi)i; Πk(g) +3 fk; g Estonia 2006: What is a good process semantics? July, 2006 – p. 18/61 Process reading ... k Output “k” on the right = qk(f) ()*+/.-,f k Output “k” on the left = Πk(g) ()*+/.-,g 4@ ~ @ Listen for input on the left = hf1; f2i ~~ @ 01237654f1 01237654f2 N { CC Listen for input on the right = (g ; g ) {{ C 1 2 01237654g1 01237654g2 Estonia 2006: What is a good process semantics? July, 2006 – p. 19/61 Process reading of a map ... h(Π1(1A); q1(Π2(1B ))) ; (Π1(1A); q2(Π2(1C )))i (A × B) + (A × C) / A × (B + C) q◦MM •6 qq MM ÑÑ 66 qqq MMM 4 ÑÑ 6 •6q •6 p NN Ñ 6 Ø 6 Ø 6 ppp NNN ()*+/.-,A ◦2 Ø 66 Ø 66 Npp NN 2 ØØ ØØ == == 22 A B A C ÒÒ == ÒÒ == 2 ()/.*+-, ()*+/.-, ()*+/.-, ()*+/.-, ÒÒ ÒÒ 1 1 1 2 ()*+/.-,B ()/.C*+-, 012376541A 2 01761A2354 2 89:;?>=<1B 01761C2354 Estonia 2006: What is a good process semantics? July, 2006 – p. 20/61 Process reading of the identities ... 4 N k : < k Ô : ÒÒ << ÔÔ :: ÒÒ << = Ô Ò = N 4 k k k k < Õ 99 Ò < ÕÕ 99 ÒÒ << ÕÕ 9 ÒÒ < ()*+/.-,f ()*+/.-,g ()/.f*+-, ()*+/.-,g ()*+/.-,f ()*+/.-,g ()/.f*+-, ()*+/.-,g N k j 4K s KK ss KKK ss KK sss KK ss KKK = Nss KN = 4ss 4 j k 4 4 4 4 44 44 44 44 4 4 4 4 ()/.f*+-, ()*+/.-,f 89:;?>=<f11 89?>f12:;=< 89?>f21:;=< 89?>f22:;=< 89?>f11:;=< 89?>f12:;=< 89:;?>=<f21 89?>f22:;=< Estonia 2006: What is a good process semantics? July, 2006 – p. 21/61 Slogan The logic of products and coproducts is the logic of communication along a channel. Joyal: “... the mathematics is saying something.” Estonia 2006: What is a good process semantics? July, 2006 – p. 22/61 Different readings ... TYPE THEORY CATEGORIES PROOF THEORY PROCESSES GAMES Type Object Proposition Protocol Game Terms Map Proof Process Mediator Substitution Composition Cut Communication Composition Variables Identities (Identity) axioms Relay Copy cat Joyal and Santocanale used the reading of games and mediators (Blass) ... Cockett and Seely used the reading of propositions and proofs ... Pastro used the reading as protocols and processes ... ... just products and coproducts. Estonia 2006: What is a good process semantics? July, 2006 – p. 23/61 Homework: J.R.B. Cockett and R.A.G.