Progsynth

  • Second-order problem reduction
    • Reduce to first order (SMT/SAT-able)
  • Templates/DSL
    • vs. Sketch: Sketch is bounded, integer hole-filling.
  • Distinguishing inputs
    • Exists a complete but expensive validation oracle (VALIDATION ORACLE)
    • Find a distinguishing input that identified the incorrect candidate
    • BuildIOConstriant, BuildDistConstraint
  • Syntactic Bias: restricting the syntax of possible programs to consider
    • SKETCH
    • SyGuS: Formalizing program synthesis
  • Optimization: needs a cost-model
    • Ranking
      • MCMC: Metropolis-Hasting
      • Version space algebra: beam-search
      • ML
      • Meta-Sketch: CEGIS in subspace
  • ILP: Automatic inference of logical programs from examples
    • FOCUS: first-order rules and relations
    • Examples <-> Knowledge-base
    • Hypothesis search