Specialization of Recursive Predicates from Positive Examples Only
Moussa Demba
Journal of Computer Science, Volume 6, Issue 6, pp. 641–647 · doi.org/10.3844/jcssp.2010.641.647
Abstract
Problem statement: Given an overly general (definite) program P and its intended semantics Φ (the programmer’s intentions) where P does not satisfy Φ, find out a new version P’ of P such that P’ satisfies Φ. Approach: We proposed an approach for correcting overly general programs from positive examples by exploiting program synthesis techniques. The synthesized program, P’, is a specialization of the original one, P. In contrast to the previous approaches for logic program specialization, no negative examples were given as input but they will be discovered by the algorithm itself. The specialization process is performed according to the positive examples only. A method for refining logic programs into specialized version was then proposed. Results: The proposed approach was able to correct overly general programs using positive examples. We showed that positive examples can also be used for inducing finite-state machines, success sequences, that models the correct program. The failing sequences also exploited by theorem proved to produce counter-examples as in model checking, by composing substitutions used for inducing failing sequences. Conclusion: The contribution of the study was mainly the use of specification predicates to specialize an overly general logic program.
Licence and reuse
Free to read. This article carries the publisher’s copyright, as printed on it: © 2010 Science Publications. It is free to read; ask us before reusing it.
How to reuse this articleResponses (0)
About this article
Demba, M. (2010). Specialization of Recursive Predicates from Positive Examples Only. Journal of Computer Science, 6(6), 641–647. https://doi.org/10.3844/jcssp.2010.641.647
- Licence
- © Science Publications
- Issue
- Volume 6, Issue 6
- Policies
- Editorial independenceUse of generative AIData availabilityAppeals and complaints
- Version
- Version of record
