“…A related line of work also considers synthesizing programs by filling holes in user-provided sketches or templates [50,31,44]. This approach has also been applied to termination and runtime analysis of programs [15,17,16,37,10], invariant generation [18,47,25,42,30], static cost analysis of probabilistic programs [21,19,54,53,22,51], detection of deep bugs [8], and LTL model-checking [20]. A more recent but quite orthogonal paradigm is example-driven synthesis, where programs are synthesized from examples using techniques from formal methods and machine learning, e.g., [48,11,33].…”