We propose a new methodology for synthesizing correct functional logic
programs. We aim to create an integrated development
environment in which it is possible to debug a program and correct it automatically. We start from a declarative diagnoser that we have developed previously which allows us to identify wrong program rules w.r.t. an intended specification. Then, a bug-correction, program synthesis methodology tries to correct the erroneous components of the wrong code.
We propose a hybrid, top-down (unfolding--based) as well as bottom-up (induction--based), approach for the automatic correction of functional logic programs which is driven by a set of evidence examples which are automatically produced as an outcome by the diagnoser. The resulting program is proven to be correct and complete w.r.t. the considered example sets. Finally, we also provide a prototypical implementation which we use for an experimental evaluation of our system.