~/talk

CN: Verifying Systems C Code with Separation-Logic Refinement Types

Talkat POPL 2023 · 2023-01-15..01-21
links:none on file
links:none on file
links:none on file
links:none on file
links:none on file
links:none on file
slides:none on file

CN is a separation-logic refinement type system for ISO C that uses a Cerberus translation to a core language, implements resource types as first-class resources, and reduces refinements to decidable SMT queries via Liquid-type style constraints solved by C3. It is implemented in OCaml, has a formal soundness proof for type checking, and verifies a real pkvm component: the allocator (the verified C is 364 lines C and yields ~5.9× verification overhead), with type checking taking about 155 seconds.

AI-written summary · about

  1. 0:00Introduction to CN
  2. 1:55The PKVM use case
  3. 3:04Key challenges and design
  4. 4:48Cerberus and C semantics
  5. 7:15Refinement types approach
  6. 9:26Resource ownership in C
  7. 12:04Handling quantifiers
  8. 16:03Case study and evaluation
  9. 20:04Future work and discussion
~/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.