CCS: & Semantics (Final Version) Prof. Susan Older 14 September 2017 (CIS 400/632) CCS & Semantics 14 September 2017 1 / 10
Relevant Syntactic Sets: A Recap from Last Time We have the following countably infinite sets: The set A of names (of actions/observable events) Examples: read, pass, jam (CIS 400/632) CCS & Semantics 14 September 2017 2 / 10
Relevant Syntactic Sets: A Recap from Last Time We have the following countably infinite sets: The set A of names (of actions/observable events) Examples: read, pass, jam The set A = {a a A} of co-names Examples: read, pass, jam (CIS 400/632) CCS & Semantics 14 September 2017 2 / 10
Relevant Syntactic Sets: A Recap from Last Time We have the following countably infinite sets: The set A of names (of actions/observable events) Examples: read, pass, jam The set A = {a a A} of co-names Examples: read, pass, jam The set L = A A of labels (CIS 400/632) CCS & Semantics 14 September 2017 2 / 10
Relevant Syntactic Sets: A Recap from Last Time We have the following countably infinite sets: The set A of names (of actions/observable events) Examples: read, pass, jam The set A = {a a A} of co-names Examples: read, pass, jam The set L = A A of labels The set Act = L {τ} = A A {τ} of actions (CIS 400/632) CCS & Semantics 14 September 2017 2 / 10
Relevant Syntactic Sets: A Recap from Last Time We have the following countably infinite sets: The set A of names (of actions/observable events) Examples: read, pass, jam The set A = {a a A} of co-names Examples: read, pass, jam The set L = A A of labels The set Act = L {τ} = A A {τ} of actions The set K of agent constants (i.e, names of processes) (CIS 400/632) CCS & Semantics 14 September 2017 2 / 10
CCS: Nil (A very boring process) 0 (CIS 400/632) CCS & Semantics 14 September 2017 3 / 10
CCS: Nil (A very boring process) Transition Rule 0 (this space intentially left blank) Comments 0 is the process that does nothing (i.e., never makes any transitions). (CIS 400/632) CCS & Semantics 14 September 2017 3 / 10
CCS: Prefixing α.p where α Act, P Proc (CIS 400/632) CCS & Semantics 14 September 2017 4 / 10
CCS: Prefixing Transition Rule α.p where α Act, P Proc Act α.p α P (CIS 400/632) CCS & Semantics 14 September 2017 4 / 10
CCS: Prefixing Transition Rule α.p where α Act, P Proc Act α.p α P Examples include: print.0 accept.print.0 τ.fail.0 (CIS 400/632) CCS & Semantics 14 September 2017 4 / 10
CCS: Choice (a.k.a. Summation) P + Q where P, Q Proc (CIS 400/632) CCS & Semantics 14 September 2017 5 / 10
CCS: Choice (a.k.a. Summation) P + Q where P, Q Proc Transition Rules Sum P α P 1 P + Q α P Sum Q α Q 2 P + Q α Q (CIS 400/632) CCS & Semantics 14 September 2017 5 / 10
CCS: Choice (a.k.a. Summation) P + Q where P, Q Proc Transition Rules Sum P α P 1 P + Q α P Sum Q α Q 2 P + Q α Q Examples include: print.0 + jam.0 0 + sleep.0 (CIS 400/632) CCS & Semantics 14 September 2017 5 / 10
CCS: Constants K (For naming and recursion) where K K (CIS 400/632) CCS & Semantics 14 September 2017 6 / 10
CCS: Constants K (For naming and recursion) where K K Transition Rule α Const P P K α P K def = P K def = P is a side condition in the rule: If the constant K is defined to behave as process P, then the transition rule is applicable. (CIS 400/632) CCS & Semantics 14 September 2017 6 / 10
CCS: Constants K (For naming and recursion) where K K Transition Rule α Const P P K α P K def = P K def = P is a side condition in the rule: If the constant K is defined to behave as process P, then the transition rule is applicable. Example of defining equations: Birthday def = age.celebrate Celebrate def = gift.thank.celebrate + cake.celebrate + sleep.0 (CIS 400/632) CCS & Semantics 14 September 2017 6 / 10
CCS: Restriction P\L where P Proc, L L (CIS 400/632) CCS & Semantics 14 September 2017 7 / 10
CCS: Restriction P\L where P Proc, L L Transition Rule Res P α P P\L α P \L α L L (CIS 400/632) CCS & Semantics 14 September 2017 7 / 10
CCS: Restriction P\L where P Proc, L L Transition Rule Res P α P P\L α P \L α L L Comments: L is the set of labels whose complements are in L: L = { l l L} P\L behaves like P, except that actions in L L are not permitted (CIS 400/632) CCS & Semantics 14 September 2017 7 / 10
CCS: Parallel Composition P Q where P, Q Proc (CIS 400/632) CCS & Semantics 14 September 2017 8 / 10
CCS: Parallel Composition P Q where P, Q Proc Transition Rules Com P α P 1 P Q α P Q Com Q α Q 2 P Q α P Q Com P l P Q l Q 3 P Q τ P Q (CIS 400/632) CCS & Semantics 14 September 2017 8 / 10
CCS: Parallel Composition P Q where P, Q Proc Transition Rules Com P α P 1 P Q α P Q Com Q α Q 2 P Q α P Q Com P l P Q l Q 3 P Q τ P Q Comments: Communication between processes is pairwise and synchronous: Transition P α P means P has potential to perform α When synchronization happens, that potential is consumed. (CIS 400/632) CCS & Semantics 14 September 2017 8 / 10
CCS: Relabeling P[f ] where P Proc, f a relabeling function (CIS 400/632) CCS & Semantics 14 September 2017 9 / 10
CCS: Relabeling P[f ] where P Proc, f a relabeling function Transition Rule Res P α P P[f ] f (α) P [f ] (CIS 400/632) CCS & Semantics 14 September 2017 9 / 10
CCS: Relabeling P[f ] where P Proc, f a relabeling function Transition Rule Res P α P P[f ] f (α) P [f ] Comments: 1 A relabeling function is a function f : Act Act such that: f (τ) = τ For all labels l, f (l) = f (l). Example: If f (a) = b, then f (a) = b. 2 Relabeling function f often written as [l 1 /l 1, l 2 /l 2,..., l n/l n ]: f (l i ) = l i, for each i f (l) = l, for each l n i=1 {l i, l i }. (CIS 400/632) CCS & Semantics 14 September 2017 9 / 10
Summary of & Transition Rules (By Sept 7) Abstract syntax for agent expressions (P, Q Proc): P ::= 0 α.p P + Q K P\L P Q P[f ] These are syntax-directed rules: Act α.p α P α Sum P α P 1 P + Q α P Sum Q α Q 2 P + Q α Q Const P P K α P K def = P Res P α P P\L α P \L α L L Com P α P 1 P Q α P Q Com Q α Q 2 P Q α P Q Com P l P Q l Q 3 P Q τ P Q Rel P α P P[f ] f (α) P [f ] (CIS 400/632) CCS & Semantics 14 September 2017 10 / 10