Deriving logic programs from input-output examples is a heavily studied problem in program synthesis, as it efficiently facilitates the discovery of complex relationships between columns within databases. Previous tools create programs by selecting from large pools of candidate rules, an approach which is not scalable to more complex programs.
Unlike these previous approaches, GenSynth
is a rule-free logic synthesizer that can handle challenging synthesis tasks with ease, such as those that require defining invented predicates or synthesizing intricate recursive programs.
Try adding your own input and output relations and see how GenSynth
discovers patterns between them!
Or try some of our examples:
for the sake of this demo, execution time is capped at 60 seconds. More expressive programs can be synthesized given more time.