Skip to main content
QUICK REVIEW

[论文解读] A General Framework For Lazy Functional Logic Programming With Algebraic Polymorphic Types

Puri Arenas-Sánchez, Mario Rodríguez-Artalejo|ArXiv.org|Apr 24, 2004
Logic, programming, and type systems参考文献 52被引用 14
一句话总结

本文提出了一种通用的惰性函数式逻辑编程框架,支持多态类型、带有等式公理的代数数据构造子以及非确定性。该框架引入了一种新颖的逻辑,结合基于C的重写演算与模型,实现了可靠性、完备性及类型保持性,通过基于C的惰性归约实现了可靠且完备的目标求解过程。

ABSTRACT

We propose a general framework for first-order functional logic programming, supporting lazy functions, non-determinism and polymorphic datatypes whose data constructors obey a set C of equational axioms. On top of a given C, we specify a program as a set R of C-based conditional rewriting rules for defined functions. We argue that equational logic does not supply the proper semantics for such programs. Therefore, we present an alternative logic which includes C-based rewriting calculi and a notion of model. We get soundness and completeness for C-based rewriting w.r.t. models, existence of free models for all programs, and type preservation results. As operational semantics, we develop a sound and complete procedure for goal solving, which is based on the combination of lazy narrowing with unification modulo C. Our framework is quite expressive for many purposes, such as solving action and change problems, or realizing the GAMMA computation model.

研究动机与目标

  • 为解决等式逻辑在捕捉惰性函数式语言语义时的局限性,即无法对无限值进行等式判断。
  • 为支持惰性求值、非确定性及多态类型的函数式逻辑编程提供逻辑基础。
  • 克服由于等式逻辑中无限项相等性不可判定而导致的条件归约不完备性问题。
  • 基于基于C的重写与模型构建形式化语义,确保可靠性与完备性。
  • 通过类型良好的操作过程确保类型安全与计算过程中的类型保持性。

提出的方法

  • 该框架将程序定义为基于C的条件重写规则集合,其中C是控制数据构造子的等式理论。
  • 引入一种新逻辑,将基于C的重写演算与模型论语义相结合,取代等式逻辑作为基础。
  • 通过结合基于C的合一与惰性归约,开发出一种可靠且完备的目标求解过程。
  • 该框架支持多态类型,并通过类型良好环境与类型变体确保类型保持性。
  • 区分代数等式(≈)与严格等式(==),与惰性语言的指称语义保持一致。
  • 模型论包括所有程序的自由模型,并确保语义蕴含关系与逻辑推导性相对应。

实验结果

研究问题

  • RQ1能否为惰性函数式逻辑程序定义一种逻辑语义,以捕捉无限值并支持非确定性?
  • RQ2如何扩展或替代等式逻辑,以支持具有无限数据结构的惰性函数式语言的语义?
  • RQ3是否可能为该框架中的目标求解设计一种可靠且完备的操作过程?
  • RQ4如何将多态类型与等式数据构造子结合,同时保持类型安全性?
  • RQ5基于归约的操作语义与模型论语义之间存在何种关系?

主要发现

  • 所提出的逻辑确保了基于C的重写相对于模型的可靠性与完备性,提供了坚实的语义基础。
  • 所有程序均存在自由模型,保证了明确的指称语义。
  • 该框架实现了类型保持性,确保良好类型的程序在计算过程中仍保持良好类型。
  • 基于C的惰性归约的操作过程在目标求解中既可靠又完备。
  • 该框架支持GAMMA计算模型,可用于求解涉及动作与变化的问题。
  • 代数等式与严格等式的区分解决了等式逻辑中无限项不可判定性的问题。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。