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.
Available: BibTeX-Entry