~/talk

Two-way collaboration between flow and proof in SPARK

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

SPARK (AdaCore) implements a two‑way integration where a fast interprocedural data+information flow pass runs first to emit approximated global contracts, call graphs and termination flags, and a later deductive verification pass generates SMT verification conditions to prove dead branches, loop variants and value‑dependent initialization. A new relaxed initialization option tags objects or parameters so proof tracks per‑field initialized flags while flow still enforces strict cases; this increases precision, is mostly automated, preserves soundness and trades slower SMT solving and heavier contracts for fewer false positives.

AI-written summary · about

  1. 0:00SPARK introduction
  2. 3:54What SPARK verifies
  3. 7:47Flow analysis limits
  4. 10:17Flow supports proof
  5. 13:30Proof analysis
  6. 16:47Automated flow-proof
  7. 17:51Relaxed initialization
  8. 23:31Flow-proof summary
  9. 24:13Q&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.