“…To address these issues, approaches have been proposed for automatically inferring specifications for library code, both based on dynamic analysis [3,8,30,35,36] and on static analysis [4,12,24,26,32,39]. In particular, tools have been designed to infer properties of missing code, including taint flow properties [13], function models [18,19], and callback control flow [20]. While these approaches are incomplete, and may not infer sound specifications, current static analyses used in production already rely on user-provided specifications [14], and as we will show, tools that automatically infer specifications can outperform human analysts.…”