PV2 ⊧ 𝜏-DIGITSfill holes a given loop-free program from a probabilistic specification of its desired behaviour
Application domain/field
- Program synthesis
- Probabilistic synthesis
- Distribution-guided inductive synthesis (DIGITS)
- Sketch-based synthesis
Type of tool
Synthesis toolExpected input
Program sketch consisting of:- a program written in a loop-free language with "holes". These "holes" represent some constant terminals in expressions.
- Precondition?
- Postcondition: Boolean probabilistic correctness property
Format:
- Program sketch:
.frfile where the program is defined in a methodD(args). Holes can be indicated withHole(...) - Postcondition: in a method
post(Pr)in the same.frfile - Precondition: in a method
pre()in the same.frfile
Expected output
Instantiations for the holes in the program.Internals
The algorithm roughly follows the following steps to reduce the problem of probabilistic synthesis to non-probabilistic synthesis:- Approximate the input probability distribution with a finite sample set
- Synthesize a program for various possible output assignments of the finite sample set
- Invoke a probabilistic verifier to check if one of the synthesized programs adheres to the given specification.
