Abstract

We address some issues related to the use of equivalence formulas for transforming and synthesizing logic programs.In the first part of the paper we describe a program transformation method based on the unfold/fold rules which can be used for proving that a given first order equivalence formula of the form: ∀X (∃Y F(X,Y) ↔ ∃Z G(X,Z)), where F and G are conjunctions of atoms, is true in the least Herbrand model of a given program. Equivalence formulas of that form can be used to perform goal replacement steps, which allow us to transform clauses by replacing goals by equivalent ones while preserving the least Herbrand model. We provide some simple conditions ensuring total correctness of the goal replacement steps.In the second part of the paper we show how the unfold/fold proof method described in the first part can be applied for solving synthesis problems which can be formulated as follows. Let us consider a program P and an equivalence formula of the form: ∀X (∃Y F(X,Y) ↔ ∃Z (H(X,Z), newp(X,Z))), where F and H contain predicates defined in P and newp is a predicate symbol not occurring in P. We want to synthesize a set of clauses, say Eureka, such that the above equivalence formula is true in the least Herbrand model of P ∪Eureka.KeywordsLogic ProgramPredicate SymbolProof MethodType CheckPredicate TransformationThese keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

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