首页> 外文期刊>Journal of logic and computation >Well-definedness and observational equivalence for inductive-coinductive programs
【24h】

Well-definedness and observational equivalence for inductive-coinductive programs

机译:归纳-共归程序的良好定义和观测等价

获取原文
获取原文并翻译 | 示例

摘要

We define notions of well-definedness and observational equivalence for programs of mixed inductive and coinductive types. These notions are defined by means of tests formulas which combine structural congruence for inductive types and modal logic for coinductive types. Tests also correspond to certain evaluation contexts. We define a program to be well-defined if it is strongly normalizing under all tests, and two programs are observationally equivalent if they satisfy the same tests. We show that observational equivalence is sufficiently coarse to ensure that least and greatest fixed point types are initial algebras and final coalgebras, respectively. This yields inductive and coinductive proof principles for reasoning about program behaviour. On the other hand, we argue that observational equivalence does not identify too many terms, by showing that tests induce a topology that, on streams, coincides with usual topology induced by the prefix metric. As one would expect, observational equivalence is, in general, undecidable, but in order to develop some practically useful heuristics we provide coinductive techniques for establishing observational normalization and observational equivalence, along with up-to techniques for enhancing these methods.
机译:对于混合归纳和共归类型的程序,我们定义了定义明确和观察等效的概念。这些概念是通过测试公式定义的,这些公式结合了归纳类型的结构一致性和共归类型的模态逻辑。测试还对应于某些评估环境。如果程序在所有测试中均能进行严格归一化,则我们将其定义为良好定义的程序,并且如果两个程序满足相同的测试,则它们在观察上是等效的。我们表明,观测等价足够粗糙,以确保最小和最大不动点类型分别是初始代数和最终代数。这产生了用于推理程序行为的归纳和共归证明原理。另一方面,我们认为观察等价并不能证明太多术语,因为它们表明测试产生了一种拓扑,该拓扑在流上与前缀度量所诱导的通常拓扑一致。正如人们所期望的那样,观察等效性通常是不确定的,但是为了开发一些实用的启发式方法,我们提供了用于建立观察归一化和观察等效性的共归技术,以及改进这些方法的最新技术。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号