核心概念
The existence of a logic program R that is strongly equivalent to the combination of a given program P and another given program Q, under a restricted vocabulary, can be characterized as a first-order entailment. Moreover, such a program R can be effectively constructed from a Craig interpolant of the entailment.
摘要
The paper presents a technique for synthesizing logic programs that are strongly equivalent to the combination of two given programs, under a restricted vocabulary. The key ideas are:
- Characterizing first-order formulas that encode logic programs, and extracting a logic program from such a formula.
- Defining a variation of Craig interpolation, called LP-interpolation, that produces an interpolant that also encodes a logic program.
- Showing that the existence of a strongly equivalent program R under a restricted vocabulary can be expressed as a first-order entailment, and that R can be effectively constructed from an LP-interpolant of this entailment.
The paper also presents a more fine-grained version of this result, where the allowed positions of predicates within rules are also constrained.
The technical approach relies on a known translation of logic programs to first-order logic for verifying strong equivalence, which is used in reverse to extract programs from formulas. The authors implement a prototype of the synthesis technique using first-order theorem provers for computing Craig interpolants.