reversible calculus
play

Reversible calculus Ioana Cristescu 22 June 2012 Ioana Cristescu - PowerPoint PPT Presentation

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


  1. Reversible π calculus Ioana Cristescu 22 June 2012 Ioana Cristescu Reversible π calculus

  2. 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

  3. � � � 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

  4. 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

  5. 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

  6. 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

  7. Reversibility in π calculus a ( x ) a ( x ) . P − − → P Ioana Cristescu Reversible π calculus

  8. Reversibility in π calculus a ( x ) �� ⊲ a ( x ) . P − − → � ⋆, a ( x ) � ⊲ P a ( x ) − ← − − − Ioana Cristescu Reversible π calculus

  9. Reversibility in π calculus a ( x ) �� ⊲ a ( x ) . P − − → � ⋆, a ( x ) � ⊲ P a ( x ) − ← − − − τ α. P | α. Q − − − − − → P | Q τ − ← − − − − − − Ioana Cristescu Reversible π calculus

  10. Reversibility in π calculus a ( x ) �� ⊲ a ( x ) . P − − → � ⋆, a ( x ) � ⊲ P a ( x ) − ← − − − τ � � ⊲ α. P | � � ⊲ α. Q − − − − − → � α � . � � ⊲ P | � α � . � � ⊲ Q τ − ← − − − − − − Ioana Cristescu Reversible π calculus

  11. 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

  12. 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

  13. 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

  14. 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

  15. The rules for the simple synchronizations � 1 � , � 2 � : τ � 1 � ⊲ a � y � | � 2 � ⊲ a ( t ) − − − − − → Ioana Cristescu Reversible π calculus

  16. 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

  17. 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

  18. 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

  19. 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

  20. � � 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

  21. � � 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

  22. ⇒ 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