Dynamic invariant detection
•Look for patterns in values the program computes
–Instrument the program to write data trace files
–Run the program on a test suite
–Invariant engine reads data traces, generates
  potential invariants, and checks them
•Roughly, machine learning over program traces
[No setup needed; dive right into this.]
[Remain excited!  (Here and on next slide.)]

All of these steps are automatic.
Instrumenters are source-to-source translators.
Define the front end here, or say “instrumenter” instead of “front end”.  Possibly define back end here; but I think I don’t use that term.