~/talk

Modular Specification and Verification of Closures in Rust

Talkat OOPSLA 2021 · 2021-10-17..10-22· [rust]
links:none on file
links:none on file
links:none on file
links:none on file
slides:none on file

A Prusti extension encodes higher-order Rust closures into first-order Viper logic and discharges verification conditions to Z3, claiming modular verification of closure usage. It introduces history invariants to capture monotonic state across arbitrary calls, specification entailments for behavioural subtyping of passed closures, and call descriptions to name call results. The prototype verifies all Option higher-order functions and several Vec methods, runs in seconds, and catches injected errors quickly.

AI-written summary · about

  1. 0:00Introduction
  2. 0:23Closures in JavaScript
  3. 3:46Concrete Syntax
  4. 4:25Closure Verification
  5. 6:51Summary
  6. 10:19Call descriptions
  7. 11:38Summarize
  8. 12:03Implementation
  9. 13:00Evaluation
  10. 13:55Conclusion
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.