~/talk

Formally Verifiable Generated ASN.1/ACN Encoders and Decoders: A Case Study

Talkat VMCAI 2025 · 2025-01-20..01-21· [software-architecture]
links:none on file
links:none on file
links:none on file
links:none on file
slides:none on file

Adds a verified Scala backend to ASN1SCC and uses Stainless verifier to prove crash freedom and semantic properties for generated serializers. Builds a Scala bitstream (≈3,700 LOC) and ACN codecs (≈4,000 LOC), proves absence of bounds/overflow/divzero and invertibility of decode(encode(x)) for the bitstream and records (sums/arrays and floats/strings remain partial). Generation emits sizes, pre/postconditions and lemmas automatically; verification produces about 335,000 VCs across ~300 PUSC and TC packet formats and uncovers bugs in existing C/Ada backends.

AI-written summary · about

  1. 0:00Introduction to ASN.1/ACN encoders
  2. 1:17Formal verification for space missions
  3. 2:22ASN.1 and ACN formats explained
  4. 4:30Stainless framework overview
  5. 7:17Verification of static primitives
  6. 8:41Bitstream data structure
  7. 13:14ACN codec primitives verification
  8. 15:27Tailoring code generation
  9. 17:32Generated code verification
  10. 19:20Experimental results
  11. 20:42Lessons learned and bugs
  12. 22:05Key takeaways
  13. 23:09Project conclusion
  14. 23:52Q&A: Scala efficiency
  15. 24:34Q&A: Extending to JSON/Protobuf
  16. 25:39Q&A: Comparison with others
~/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.