×

使用展开/折叠证明的逻辑程序的合成和转换。 (英语) Zbl 0944.68024号

摘要:我们提出了一种证明定逻辑程序性质的方法。这种方法被称为展开/折叠证明方法,因为它基于展开/折叠转换规则。给定一个程序(P)和两个目标(即原子的连接性)(F(X,Y))和(G(X,Z)),其中X,Y和Z是变量的不相交向量,展开/折叠证明方法可用于证明等价公式(对于所有上划线X(存在下划线Y F(上划线X,上划线Y))存在下划线Z G(上划线Y,上划线Z))在最小Herbrand模型(P)中成立。这种形式的等价公式可用于证明目标替换步骤的合理性,它允许我们通过用等价的新目标替换旧目标,如\(F(\overline X,\overlineY)\)来转换逻辑程序,例如\(G(\overrine X,\ overline Z)\)。如果我们找到相应等价公式的非升序展开/折叠证明,即展开/折叠验证,确保在(F(上划线X,上划线Y))和(G(下划线X,下划线Z))的成功SLID派生之间建立适当的良好顺序,则这些目标替换保留了最少的Herbrand模型语义,分别是。我们还提出了一种从隐式定义进行程序综合的方法。它可以用来为谓词(newp)导出一个确定的逻辑程序,该谓词由形式为(for all)overline X(exists)overlineY F(overlineX,overline Y)leftrightarrow exists(overline Z),newp(overlingX,overrineZ))的等价公式隐式定义,这样,目标\(F(X,Y)和(H(X,Z)中出现的谓词在给定的程序\(P)中定义,并且\(newp)是不出现在\(P\)中的谓词符号。定义newp的子句集,例如Eureka,允许我们使用展开/折叠证明证明上述等价公式在最小Herbrand模型(P\cup\text{Eureka})中成立。因此,我们的合成方法的正确性来源于展开/折叠证明方法。最后,我们通过一些程序专门化、程序合成和程序转换的例子来说明我们的合成方法,这些都可以看作是隐式定义的程序合成。

MSC公司:

68N17号 逻辑编程
PDF格式BibTeX公司 XML格式引用
全文: 内政部