【24h】

Dependent Types from Counterexamples

机译:来自Conterexamples的依赖类型

获取原文

摘要

Motivated by recent research in abstract model checking, we present a new approach to inferring dependent types. Unlike many of the existing approaches, our approach does not rely on programmers to supply the candidate (or the correct) types for the recursive functions and instead does counterexample-guided refinement to automatically generate the set of candidate dependent types. The main idea is to extend the classical fixed-point type inference routine to return a counterexample if the program is found untypable with the current set of candidate types. Then, an interpolating theorem prover is used to validate the counterexample as a real type error or generate additional candidate dependent types to refute the spurious counterexample. The process is repeated until either a real type error is found or sufficient candidates are generated to prove the program typable. Our system makes non-trivial use of "linear" intersection types in the refinement phase. The paper presents the type inference system and reports on the experience with a prototype implementation that infers dependent types for a subset of the Ocaml language. The implementation infers dependent types containing predicates from the quantifier-free theory of linear arithmetic and equality with uninterpreted function symbols.
机译:最近的研究中抽象模型检验的启发,提出了一种新的方法来推断相关的类型。与许多现有的方法中,我们的方法不依赖于程序员提供候选(或正确)类型的递归函数,而是做反引导的细化,自动生成一组候选相关的类型。其主要思想是,以延长经典定点类型推断程序,如果程序发现untypable与当前组的候选类型的返回一个反例。然后,内插定理证明用于验证所述反作为一个真正的类型的错误或产生附加候选依赖性类型反驳寄生反例。重复该过程,直到一个真实类型的错误被发现的或足够的候选生成证明程序键式。我们的系统使得非平凡使用在精制阶段“线性”交叉点类型。本文介绍了类型推断系统和报告的经验与原型实现,推断依赖类型OCaml的语言的一个子集。实施推断含有选自线性算术和平等与未解释的功能的符号的自由量词理论谓词依赖性类型。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号