interfacing with proof assistants for domain specific
play

Interfacing with Proof Assistants for Domain Specific Programming - PowerPoint PPT Presentation

Interfacing with Proof Assistants for Domain Specific Programming Using EventML Vincent Rahli PRL team - Cornell University July 13, 2012 Vincent Rahli EventML July 13, 2012 1/15 Credits Mark Bickford Robert Constable David


  1. Interfacing with Proof Assistants for Domain Specific Programming Using EventML Vincent Rahli PRL team - Cornell University July 13, 2012 Vincent Rahli EventML July 13, 2012 1/15

  2. Credits ◮ Mark Bickford ◮ Robert Constable ◮ David Guaspari ◮ Richard Eaton ◮ Vincent Rahli ◮ Robbert Van Renesse ◮ Nicolas Schiper ◮ Jason Wu Vincent Rahli EventML July 13, 2012 2/15

  3. Problem Problem: unverified protocols are wrong. Goal: automatic synthesis of verified diversifiable distributed systems. Our solution: building tools that cooperate with a Logical Programming Environment (e.g., a constructive theorem prover). Vincent Rahli EventML July 13, 2012 3/15

  4. EventML: specification and programming language ◮ A ML-like functional programming language. ◮ Features logical constructs ( Logic of Events combinators). ◮ To specify/code distributed protocols. ◮ EventML translates specifications into event classes. Logical aspect ◮ EventML synthesizes distributed programs (in the model underlying the Logic of Events) from specifications. Computational aspect Vincent Rahli EventML July 13, 2012 4/15

  5. Cooperation with a Logical Programming Environment Vincent Rahli EventML July 13, 2012 5/15

  6. Accomplishments We have specified many distributed protocols. We have proved the correctness of the following protocols: ◮ Leader election in a ring. ◮ Two-thirds consensus protocol. ◮ Paxos (in progress). The methodology works! Nicolas Schiper (Cornell postdoc) has implemented a replicated database (ShadowDB) on top of our synthesized two-thirds consensus protocol. It is used! Vincent Rahli EventML July 13, 2012 6/15

  7. An example: Maximum using Memory We have defined state machines in the Logic of Events. E.g., Memory1. We have automated some reasoning on state machines. Vincent Rahli EventML July 13, 2012 7/15

  8. Maximum input i n t : I n t c l a s s Maximum = Memory1 ( \ l o c . { 0 } ) ( \ l o c . \ x . \ s . imax x s ) i n t ’ b a s e ; ; Intuition: at any event, computes the maximum of the integers received in the past. Vincent Rahli EventML July 13, 2012 8/15

  9. Maximum Vincent Rahli EventML July 13, 2012 9/15

  10. Maximum Vincent Rahli EventML July 13, 2012 10/15

  11. Maximum Vincent Rahli EventML July 13, 2012 11/15

  12. Maximum Vincent Rahli EventML July 13, 2012 12/15

  13. Maximum Vincent Rahli EventML July 13, 2012 13/15

  14. Maximum One can specify state machine invariants in EventML: i n v a r i a n t pos max on n in Maximum == n > = 0 ; ; p r ogr e s s inc max on n1 then n2 in Maximum with n in i n t ’ b a s e and s = > n > s == n2 > n1 ; ; memory mem max on n1 then n2 in Maximum with n in i n t ’ b a s e == n2 > = n / \ n2 > = n1 ; ; Nuprl automatically proves these invariants. Vincent Rahli EventML July 13, 2012 14/15

  15. What’s next? ◮ Automation. ◮ Correct-by-construction optimizations. ◮ More expressive types: refinement types, dependent types... Vincent Rahli EventML July 13, 2012 15/15

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend