~/talk

Necessity Specifications for Robustness

Talkat OOPSLA 2022 · 2022-12-05..12-10· [software-architecture, security]
links:none on file
links:none on file
links:none on file
slides:none on file

A formal language called necessity specifies robustness by stating explicit necessary preconditions: temporal-implication operators say exactly what must have held earlier for a later bad state to occur. A proof logic derives those necessity specs from ordinary functional specs (parametric over whatever verification method is used), relies on five proof ideas including encapsulation, and is mechanised in Coq. Case studies include the banking example (proved robust), the DAO reentrancy bug and ERC20-like contracts, crowdsale and DOM proxies.

AI-written summary · about

  1. 0:00Introduction
  2. 0:23Functional vs robustness specs
  3. 3:36Defining robustness
  4. 5:39Banking software example
  5. 8:54Necessity specifications semantics
  6. 13:29Proving necessity specs
  7. 18:43Soundness and encapsulation
  8. 20:07Case studies
  9. 24:42Conclusion
  10. 25:27Q&A
~/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.