Abstract

In the context of (fuzzy) logic programs, ‘unfolding’ means to transform a program rule by replacing an atom call of the body (of that rule) by its definition. Unfolding is a semantics-preserving program transformation technique that is able to improve programs, generating more efficient code, since it anticipates computation steps. Unfolding is the basis for developing sophisticated and powerful programming tools, such as fold/unfold transformation systems or partial evaluators. In this paper we address the problem of extending the classical definition of the unfolding rule (for pure logic programs) to the setting of multi-adjoint logic programming, where a fuzzy computed answer is a pair 〈 truth degree ; substitution 〉 computed by a fuzzy generalization of the modus ponens inference rule. Our main contributions can be summarized as follows: • We proved the independence of the computation rule for multi-adjoint admissible computations. • Moreover, we defined a fuzzy unfolding rule and we demonstrated its strong correctness properties, that is, original and unfolded programs compute the same fuzzy computed answers for a given goal. • We also proved that unfolding transformations increase the efficiency of the residual programs, by reducing the length of fuzzy admissible derivations when solving goals.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call