14 MAIO / TERÇA FEIRA / 04:35
FCUP PT 
 EN
 
 
APRESENTAÇÃO
PESSOAS
ENSINO
INVESTIGAÇÃO
BIBLIOTECA
NOTÍCIAS
CONTACTOS
PhD Thesis of Alípio Jorge

Iterative Induction of Logic Programs: an approach to logic program synthesis from incomplete specifications.

Alípio Jorge

LIACC
Universidade do Porto
Rua do Campo Alegre, 823 4150-180 Porto, Portugal

Setembro de 1998


Abstract

In this thesis we present a methodology for the synthesis of function free definite logic programs from incomplete specifications, background knowledge and programming knowledge. The methodology is implemented as system SKILit and sub-systems SKIL and MONIC. The specification consists of positive and negative examples (ground atoms) of the predicate to synthesize, together with its input/output mode declaration. It can also include the predicate type declaration and integrity constraints. The background knowledge contains auxiliary predicates that may be used in the definition of the target predicate. Programming knowledge can be expressed in the form of a clause structure grammar that defines the structure of clauses to be synthesized in terms of admissible sequences of predicates. The user can also partially describe how some particular positive examples are computed. This information is given to the system in the form of sketches.

The construction of each clause is made by searching for a relational link between the input arguments and the output arguments of one positive example. Examples with or without associated sketches are handled in a uniform way using a unique sketch refinement operator. The sketch refinement operator of SKIL is shown to be complete under appropriate assumptions. Our methodology is capable of synthesizing recursive programs from small and sparse sets of positive examples using the technique of iterative induction. This is an important result considering that there is no strong language bias imposed (the technique is successful in synthesizing programs with multiple recursive clauses and clauses with multiple recursive literals). The methodology can also perform multiple predicate synthesis.

Due to its expressiveness, one integrity constraint can replace a large number of ground negative examples. Typically, constraint handling is computationally heavy. In our methodology, integrity constraints are handled using a Monte Carlo strategy (MONIC). Although incomplete, the Monte Carlo approach provides an efficient solution to constraint handling, which is very important in the context of program synthesis.

The whole synthesis methodology has been empirically evaluated in a systematic way showing that it is robust in the synthesis of recursive definitions from randomly generated examples and that it competes well with some state-of-the-art approaches.


FCUP 2024