automating formal proofs for reactive systems
play

Automating Formal Proofs for Reactive Systems Daniel Ricketts , - PowerPoint PPT Presentation

Automating Formal Proofs for Reactive Systems Daniel Ricketts , Valentin Robert, Zachary Danger Tatlock Dongseok Jang, Sorin Lerner University of California, San Diego University of Washington Proof Assistant Based Verification Proof


  1. Properties Components = Tab | CookieMgr | ... Messages = CookieSet | CookieGet | ... Handlers: When [Tab t] sends CookieSet(c): cp <- find CookieMgr(t.domain) send(cp, CookieSet(c)) When [Tab t] sends CookieGet(c): ...

  2. Properties Components = Tab | CookieMgr | ... Messages = CookieSet | CookieGet | ... Handlers: When [Tab t] sends CookieSet(c): cp <- find CookieMgr(t.domain) send(cp, CookieSet(c)) When [Tab t] sends CookieGet(c): ... Specify allowed behaviors

  3. Properties Components = Tab | CookieMgr | ... Messages = CookieSet | CookieGet | ... Handlers: When [Tab t] sends CookieSet(c): cp <- find CookieMgr(t.domain) send(cp, CookieSet(c)) When [Tab t] sends CookieGet(c): ... Specify allowed behaviors wrt sequence of system calls

  4. Properties Components = Tab | CookieMgr | ... Messages = CookieSet | CookieGet | ... Handlers: When [Tab t] sends CookieSet(c): When [Tab t] sends CookieSet(c): cp <- find CookieMgr(t.domain) cp <- find CookieMgr(t.domain) send(cp, CookieSet(c)) send(cp, CookieSet(c)) When [Tab t] sends CookieGet(c): ... Specify allowed behaviors wrt sequence of system calls

  5. Properties When [Tab t] sends CookieSet(c): cp <- find CookieMgr(t.domain) send(cp, CookieSet(c)) Specify allowed behaviors wrt sequence of system calls

  6. Properties When [Tab t] sends CookieSet(c): cp <- find CookieMgr(t.domain) send(cp, CookieSet(c)) Specify allowed behaviors wrt sequence of system calls Time

  7. Properties When [Tab t] sends CookieSet(c): cp <- find CookieMgr(t.domain) send(cp, CookieSet(c)) Specify allowed behaviors wrt sequence of system calls Time …

  8. Properties When [Tab t] sends CookieSet(c): cp <- find CookieMgr(t.domain) send(cp, CookieSet(c)) Specify allowed behaviors wrt sequence of system calls Time The system calls so far …

  9. Properties When [Tab t] sends CookieSet(c): [Tab t] sends CookieSet(c) cp <- find CookieMgr(t.domain) send(cp, CookieSet(c)) Specify allowed behaviors wrt sequence of system calls Time The system calls so far …

  10. Properties When [Tab t] sends CookieSet(c): cp <- find CookieMgr(t.domain) send(cp, CookieSet(c)) Specify allowed behaviors wrt sequence of system calls Time The system calls so far …

  11. Properties When [Tab t] sends CookieSet(c): cp <- find CookieMgr(t.domain) send(cp, CookieSet(c)) Specify allowed behaviors wrt sequence of system calls Time The system Recv(Tab, CookieSet(c)) calls so far …

  12. Properties When [Tab t] sends CookieSet(c): cp <- find CookieMgr(t.domain) cp <- find CookieMgr(t.domain) send(cp, CookieSet(c)) Specify allowed behaviors wrt sequence of system calls Time The system Recv(Tab, CookieSet(c)) calls so far …

  13. Properties When [Tab t] sends CookieSet(c): cp <- find CookieMgr(t.domain) send(cp, CookieSet(c)) Specify allowed behaviors wrt sequence of system calls Time The system Recv(Tab, CookieSet(c)) calls so far …

  14. Properties When [Tab t] sends CookieSet(c): cp <- find CookieMgr(t.domain) send(cp, CookieSet(c)) Specify allowed behaviors wrt sequence of system calls Spawn CookieMgr(t.domain) Time The system Recv(Tab, CookieSet(c)) calls so far …

  15. Properties When [Tab t] sends CookieSet(c): cp <- find CookieMgr(t.domain) send(cp, CookieSet(c)) send(cp, CookieSet(c)) Specify allowed behaviors wrt sequence of system calls Spawn CookieMgr(t.domain) Time The system Recv(Tab, CookieSet(c)) calls so far …

  16. Properties When [Tab t] sends CookieSet(c): cp <- find CookieMgr(t.domain) send(cp, CookieSet(c)) Specify allowed behaviors wrt sequence of system calls Spawn CookieMgr(t.domain) Time The system Recv(Tab, CookieSet(c)) calls so far …

  17. Properties When [Tab t] sends CookieSet(c): cp <- find CookieMgr(t.domain) send(cp, CookieSet(c)) Specify allowed behaviors wrt sequence of system calls Send(cp, CookieSet(c)) Spawn CookieMgr(t.domain) Time The system Recv(Tab, CookieSet(c)) calls so far …

  18. Example: Web browser kernel Components = Tab | CookieMgr | ... Messages = CookieSet | CookieGet | ... Handlers: When [Tab t] sends CookieSet(c): When [Tab t] sends CookieSet(c): cp <- find CookieMgr(t.domain) cp <- find CookieMgr(t.domain) send(cp, CookieSet(c)) send(cp, CookieSet(c)) When [Tab t] sends CookieGet(c): ...

  19. Example: Web browser kernel Components = Tab | CookieMgr | ... Messages = CookieSet | CookieGet | ... Handlers: When [Tab t] sends CookieSet(c): cp <- find CookieMgr(t.domain) send(cp, CookieSet(c)) When [Tab t] sends CookieGet(c): ...

  20. Example: Web browser kernel Specify cookie integrity Components = Tab | CookieMgr | ... Messages = CookieSet | CookieGet | ... Handlers: When [Tab t] sends CookieSet(c): cp <- find CookieMgr(t.domain) send(cp, CookieSet(c)) When [Tab t] sends CookieGet(c): ...

  21. Example: Web browser kernel Components = Tab | CookieMgr | ... Messages = CookieSet | CookieGet | ... Handlers: When [Tab t] sends CookieSet(c): cp <- find CookieMgr(t.domain) send(cp, CookieSet(c)) When [Tab t] sends CookieGet(c): ...

  22. Example: Web browser kernel forall d c, For any domain d and cookie c Components = Tab | CookieMgr | ... Messages = CookieSet | CookieGet | ... Handlers: When [Tab t] sends CookieSet(c): cp <- find CookieMgr(t.domain) send(cp, CookieSet(c)) When [Tab t] sends CookieGet(c): ...

  23. Example: Web browser kernel The kernel sends the cookie forall d c, manager for domain d a cookie c [Send(CookieMgr(d), CookieSet(c))] Components = Tab | CookieMgr | ... Messages = CookieSet | CookieGet | ... Handlers: When [Tab t] sends CookieSet(c): cp <- find CookieMgr(t.domain) send(cp, CookieSet(c)) When [Tab t] sends CookieGet(c): ...

  24. Example: Web browser kernel forall d c, Only if Enables [Send(CookieMgr(d), CookieSet(c))] Components = Tab | CookieMgr | ... Messages = CookieSet | CookieGet | ... Handlers: When [Tab t] sends CookieSet(c): cp <- find CookieMgr(t.domain) send(cp, CookieSet(c)) When [Tab t] sends CookieGet(c): ...

  25. Example: Web browser kernel forall d c, [Recv(Tab(d), CookieSet(c))] Enables [Send(CookieMgr(d), CookieSet(c))] Components = Tab | CookieMgr | ... The kernel already received a Messages = CookieSet | CookieGet | ... cookie c from a tab of domain d Handlers: When [Tab t] sends CookieSet(c): cp <- find CookieMgr(t.domain) send(cp, CookieSet(c)) When [Tab t] sends CookieGet(c): ...

  26. Example: Web browser kernel forall d c, [Recv(Tab(d), CookieSet(c))] Enables [Send(CookieMgr(d), CookieSet(c))] Components = Tab | CookieMgr | ... A Enables B Messages = CookieSet | CookieGet | ... iff every sys call B is preceded by sys call A Handlers: When [Tab t] sends CookieSet(c): cp <- find CookieMgr(t.domain) send(cp, CookieSet(c)) When [Tab t] sends CookieGet(c): ...

  27. Example: Web browser kernel forall d c, [Recv(Tab(d), CookieSet(c))] Enables [Send(CookieMgr(d), CookieSet(c))] Components = Tab | CookieMgr | ... Messages = CookieSet | CookieGet | ... Handlers: When [Tab t] sends CookieSet(c): cp <- find CookieMgr(t.domain) send(cp, CookieSet(c)) When [Tab t] sends CookieGet(c): ...

  28. Example: Web browser kernel forall d c, [Recv(Tab(d), CookieSet(c))] Enables [Send(CookieMgr(d), CookieSet(c))] Components = Tab | CookieMgr | ... Messages = CookieSet | CookieGet | ... Handlers: When [Tab t] sends CookieSet(c): cp <- find CookieMgr(t.domain) send(cp, CookieSet(c)) When [Tab t] sends CookieGet(c): ...

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