Recursively defined linked datastructures embedded in a pointer-based heap and their properties are naturally expressed in pure first-order logic with least fixpoint definitions (FO+lfp) combined with background theories. However, automated reasoning for such logics has not seen much progress. Such logics, unlike pure FOL, do not even admit complete procedures, let alone decidable ones. In this paper, we undertake a foundational study of automatically finding proofs that use induction to reason in these logics. By treating proofs as pure FO proofs that are punctuated by declarations of induction lemmas, we separate proofs into deductively reasoned components and statements of lemmas that need to be synthesized. While humans divine such lemmas with intuition, we propose a technique that guides the synthesis of such lemmas using counterexamples that are finite first-order models that witness the help required for proving a goal theorem as well as non-provability and invalidity of lemmas. We develop relatively complete procedures for synthesizing lemmas for powerful FO+lfp logics. We implement our procedures and evaluate them over a class of theorems involving heap datastructures that require inductive proofs.
翻译:在基于指示的堆积中嵌入的、有精确定义的、有再精确定义的数据结构,其特性自然以纯一阶逻辑和最不固定的定义(Fo+lfp)与背景理论结合来表达。然而,这些逻辑的自动推理没有取得多大进展。这些逻辑与纯FOL不同,甚至没有接受完整的程序,更不用说可分解的程序。在本文中,我们进行一项基础研究,以自动找到证据,这些证据在这些逻辑中采用引导为理性。通过将证明作为纯FO证据处理,这些证据被诱导 Lemmas 宣言所标出,我们把证据分解为需要合成的推论元素的推理成分和脂质说明。虽然人类用直觉来创造出这样的精质,但我们提出一种技术,用以指导这些精质的合成,而反偏移样本是有限的第一阶模型,证明需要帮助来证明目标的标本以及利玛的非概率和无效性。我们开发了相对完整的程序,将精准的液合成为强大的FO+lfp逻辑所需要合成的精质。我们实施的程序,并评估了包含 heemma的分类的数据结构。我们执行程序,并评估了它们。