Topic 7: inferring sw properties
•Context:
–Very soon, software verifiers will mature enough to be able to check powerful properties on large programs (see previous topic).
•Problem: 
–But where will the properties of correctness come from?
–These powerful tools will be of little use without enough properties to be checked!
•Solution:
–The huge software base contains invaluable information (that’s available nowhere else):
•When programmers resolve an problem with an API (e.g., “what arguments to pass to a library procedure?”), they often don’t document the solution.  Instead, the solution is encoded only in the code.
•can observe how multiple programmers use an API, and ”take a vote.”
–
–So, use “data mining” to infer the properties from code
•using the maxim that “common usage is correct usage.”
•
•Papers:
–Mining Specifications, Ammons et al
–Bugs as deviant behavior, Engler et al