Reversible π calculus Ioana Cristescu 22 June 2012 Ioana Cristescu Reversible π calculus
Internship at PPS Paris Diderot under the supervision of Jean Krivine and Daniele Varacca part of the ANR project on reversibility Reversibility in concurrency the consensus problem in distributed systems handle deadlocks ◮ by implementing backtracking ◮ by relying on a language that natively supports backtracking Ioana Cristescu Reversible π calculus
� � � Reversibility and process communication ◮ π calculus = model the process interaction ◮ implement undo α � P ′ P α − ◮ concurrency in an interleaving semantics a backward trace = one of the possible forward traces P | Q � � �������� � β � � � � α � � P ′ | Q P | Q ′ � � � �������� β � � � � α � � P ′ | Q ′ ◮ causality = ¬ concurrency Ioana Cristescu Reversible π calculus
Outline 1. The π calculus and reversibility 2. Reversible π calculus (R π ) and the labeled transition system 3. Properties of R π 3.1 correspondence with π calculus 4. Causality 5. Conclusions 5.1 Contributions of this internship 5.2 Future work Ioana Cristescu Reversible π calculus
The π calculus model for distributed computing a � y � output a � y � . P − − → P a ( x ) actions input a ( x ) . Q − − → Q τ synchronization a � y � . P | a ( x ) . Q − → P | Q { y / x } process constructor prefix α. P , α ∈ { a � y � , a ( x ) } parallel composition P | Q y ( t ) , y � t � restriction ν yP � − − − − − → names bound x ∈ bn ( a ( x ) . P ) and y ∈ bn ( ν yP ) free fn ( P ) Ioana Cristescu Reversible π calculus
The restriction in π y ( t ) , y � t � y is private in P ν yP � − − − − − → a ( ν y ) a is an extruder of y ν y ( a � y � P ) − − − → P a labeled transition system that is compositional open close x � y � x ( ν y ) x ( z ) → P ′ → P ′ → Q ′ − − − − − − − P P Q y / ∈ fn ( Q ) / { z } → ν y ( P ′ | Q ′ { y / z } ) τ x ( ν y ) → P ′ P | Q − ν yP − − − Environment P Q y Ioana Cristescu Reversible π calculus
Reversibility in π calculus a ( x ) a ( x ) . P − − → P Ioana Cristescu Reversible π calculus
Reversibility in π calculus a ( x ) �� ⊲ a ( x ) . P − − → � ⋆, a ( x ) � ⊲ P a ( x ) − ← − − − Ioana Cristescu Reversible π calculus
Reversibility in π calculus a ( x ) �� ⊲ a ( x ) . P − − → � ⋆, a ( x ) � ⊲ P a ( x ) − ← − − − τ α. P | α. Q − − − − − → P | Q τ − ← − − − − − − Ioana Cristescu Reversible π calculus
Reversibility in π calculus a ( x ) �� ⊲ a ( x ) . P − − → � ⋆, a ( x ) � ⊲ P a ( x ) − ← − − − τ � � ⊲ α. P | � � ⊲ α. Q − − − − − → � α � . � � ⊲ P | � α � . � � ⊲ Q τ − ← − − − − − − Ioana Cristescu Reversible π calculus
Reversibility in π calculus a ( x ) �� ⊲ a ( x ) . P − − → � ⋆, a ( x ) � ⊲ P a ( x ) − ← − − − � 1 � , � 2 � : τ � 1 � ⊲ α. P | � 2 � ⊲ α. Q − − − − − → � 2 , α � . � 1 � ⊲ P | � 1 , α � . � 2 � ⊲ Q � 1 � , � 2 � : τ − ← − − − − − − Ioana Cristescu Reversible π calculus
Reversibility in π calculus a ( x ) �� ⊲ a ( x ) . P − − → � ⋆, a ( x ) � ⊲ P a ( x ) − ← − − − � 1 � , � 2 � : τ � 1 � ⊲ α. P | � 2 � ⊲ α. Q − − − − − → � 2 , α � . � 1 � ⊲ P | � 1 , α � . � 2 � ⊲ Q � 1 � , � 2 � : τ − ← − − − − − − Objectives ◮ define a reversible π calculus (R π ) ◮ based on the work of [Danos and Krivine, 2004] ◮ problems: name substitution handling the private names ◮ symmetric rules for backward and forward ◮ compositional with respect to the extrusion Ioana Cristescu Reversible π calculus
Substitution τ a ( x ) . ( x ( t ) | y ( z )) | a � y � − → y ( t ) | y ( z ) − τ a ( x ) . ( x ( t ) | x ( z )) | a � y � ← − ⇒ add the substitution to the memory � 1 � , � 2 � : τ � 1 � ⊲ a ( x ) . ( x ( t ) | y ( z )) | � 2 � ⊲ a � y � − − − − − → � 2 , a [ y / x ] � . � 1 � ⊲ x ( t ) | y ( z ) | � 1 , a � y �� . � 2 � ⊲ 0 � 1 � , � 2 � : τ − − − − − − − → � 1 � ⊲ a ( x ) . ( x ( t ) | y ( z )) | � 2 � ⊲ a � y � backtrack � 1 � : y ( t ) − − − − → � ⋆, x [ ⋆/ t ] � . � 1 � . � 2 , a [ y / x ] � . � 1 � ⊲ 0 ... transition on x Ioana Cristescu Reversible π calculus
The axioms of the LTS ◮ do not apply the substitution on the process itself ◮ apply it on some names in a transition label x ′ ( z ) m ⊲ x ( z ) . P − − − → � ⋆, x [ ∗ / z ] � . m ⊲ P in+ x ′ ( z ) − � ⋆, x [ ∗ / z ] � . m ⊲ P − − − − → m ⊲ x ( z ) . P in- x ′ ( y ′ ) m ⊲ x � y � . P − − − → � ⋆, x � y �� . m ⊲ P out+ x ′ ( y ′ ) − � ⋆, x � y �� . m ⊲ P − − − − → m ⊲ x � y � . P out- Ioana Cristescu Reversible π calculus
The rules for the simple synchronizations � 1 � , � 2 � : τ � 1 � ⊲ a � y � | � 2 � ⊲ a ( t ) − − − − − → Ioana Cristescu Reversible π calculus
The rules for the simple synchronizations � 1 � : a � y � � 1 � ⊲ a � y � − − − − − → � ⋆, a � y �� . � 1 � ⊲ 0 � 1 � , � 2 � : τ � 1 � ⊲ a � y � | � 2 � ⊲ a ( t ) − − − − − → Ioana Cristescu Reversible π calculus
The rules for the simple synchronizations � 1 � : a � y � � 2 � : a ( t ) � 1 � ⊲ a � y � − − − − − → � ⋆, a � y �� . � 1 � ⊲ 0 � 2 � ⊲ a ( t ) − − − − → � ⋆, a [ ⋆/ t ] � . � 2 � ⊲ 0 � 1 � , � 2 � : τ � 1 � ⊲ a � y � | � 2 � ⊲ a ( t ) − − − − − → Ioana Cristescu Reversible π calculus
The rules for the simple synchronizations � 1 � : a � y � � 2 � : a ( t ) � 1 � ⊲ a � y � − − − − − → � ⋆, a � y �� . � 1 � ⊲ 0 � 2 � ⊲ a ( t ) − − − − → � ⋆, a [ ⋆/ t ] � . � 2 � ⊲ 0 � 1 � , � 2 � : τ � 1 � ⊲ a � y � | � 2 � ⊲ a ( t ) − − − − − → � 2 , a � y �� . � 1 � ⊲ 0 | � 1 , a [ y / t ] � . � 2 � ⊲ 0 Ioana Cristescu Reversible π calculus
The rules for the simple synchronizations � 1 � : a � y � � 2 � : a ( t ) � 1 � ⊲ a � y � − − − − − → � ⋆, a � y �� . � 1 � ⊲ 0 � 2 � ⊲ a ( t ) − − − − → � ⋆, a [ ⋆/ t ] � . � 2 � ⊲ 0 � 1 � , � 2 � : τ � 1 � ⊲ a � y � | � 2 � ⊲ a ( t ) − − − − − → � 2 , a � y �� . � 1 � ⊲ 0 | � 1 , a [ y / t ] � . � 2 � ⊲ 0 after a synchronization, update the memory ◮ add the substitution ◮ add the identifier of the synchronizing thread com- com+ φ 1 : x � y � − φ 2 : x ( z ) − φ 1 : x � y � φ 2 : x ( z ) → R ′ → S ′ → R ′ → S ′ R − − − − S − − − − R − − − − − S − − − − − → ( R ′ | S ′ ) @( φ 1 ,φ 2 , y ) φ 1 ,φ 2 : τ φ 1 ,φ 2 : τ − → R ′ | S ′ R | S − − − − ( R | S ) @( φ 1 ,φ 2 , y ) − − − − − − Ioana Cristescu Reversible π calculus
� � The private names y ( t ) ν y ( a � y � | y ( t )) − − → a ( ν y ) y ( t ) − − − → y ( t ) − − → y ( t ) ν y ( a � y � | b � y � | y ( t )) − − → a ( ν y ) y ( t ) − − − → b � y � | y ( t ) − − → b � y � − − → b ( ν y ) y ( t ) − − − → a � y � | y ( t ) − − → a � y � − − → Ioana Cristescu Reversible π calculus
� � The private names y ( t ) ν y ( a � y � | y ( t )) − − → a ( ν y ) y ( t ) − − − → y ( t ) − − → y ( t ) ν y ( a � y � | b � y � | y ( t )) − − → a ( ν y ) y ( t ) − − − → b � y � | y ( t ) − − → b � y � − − → b ( ν y ) y ( t ) − − − → a � y � | y ( t ) − − → a � y � − − → In a reversible π calculus � 2 � : y � t � − � ⋆, a � y �� . � 1 � ⊲ 0 | � ⋆, y � t �� . � 2 � ⊲ 0 − − − − − − → OK � 1 � : a � y � − − − − − − − → not OK Ioana Cristescu Reversible π calculus
⇒ remember the scope of ν δ = the “shadow” of ν η : x ( ν y ) ν y ( m ⊲ x � y � . P | R ) − − − − → δ y ( � ⋆, x � y �� . m ⊲ P | R ) ⇓ ⇓ bound freed open+ η : x � y � → R ′ − − − − R η : x ( ν y ) → δ yR ′ ν yR − − − − Ioana Cristescu Reversible π calculus
Recommend
More recommend