首页> 外文会议>ACM SIGPLAN international conference on functional programming >How to Make Ad Hoc Proof Automation Less Ad Hoc
【24h】

How to Make Ad Hoc Proof Automation Less Ad Hoc

机译:如何使Ad Hoc证明自动化减少临时

获取原文

摘要

Most interactive theorem provers provide support for some form of user-customizable proof automation. In a number of popular systems, such as Coq and Isabelle, this automation is achieved primarily through tactics, which are programmed in a separate language from that of the prover's base logic. While tactics are clearly useful in practice, they can be difficult to maintain and compose because, unlike lemmas, their behavior cannot be specified within the expressive type system of the prover itself. We propose a novel approach to proof automation in Coq that allows the user to specify the behavior of custom automated routines in terms of Coq's own type system. Our approach involves a sophisticated application of Coq's canonical structures, which generalize Haskell type classes and facilitate a flexible style of dependently-typed logic programming. Specifically, just as Haskell type classes are used to infer the canonical implementation of an overloaded term at a given type, canonical structures can be used to infer the canonical proof of an overloaded lemma for a given instantiation of its parameters. We present a series of design patterns for canonical structure programming that enable one to carefully and predictably coax Coq's type inference engine into triggering the execution of user-supplied algorithms during unification, and we illustrate these patterns through several realistic examples drawn from Hoare Type Theory. We assume no prior knowledge of Coq and describe the relevant aspects of Coq type inference from first principles.
机译:大多数互动定理普通提供了对某种形式的用户可定制证明自动化的支持。在许多流行的系统中,例如COQ和Isabelle,这种自动化主要通过策略来实现,这些策略以单独的语言编程为来自谚语的基本逻辑的单独语言。虽然战术在实践中显然有用,但它们可能很难维持和撰写,因为与lemmas不同,他们的行为不能在谚语本身的表现类型系统中指定。我们提出了一种在COQ中证明自动化的新方法,允许用户在CAQ自己的类型系统方面指定自定义自动化例程的行为。我们的方法涉及CoQ的规范结构的复杂应用,它概括了Haskell类型类,并促进了依赖性类型逻辑编程的灵活风格。具体地,正如Haskell类型类用于以给定类型推断过载术语的规范实现,可以使用规范结构来推断给定的其参数的实例化的超载引理的规范证明。我们为规范结构编程提供了一系列设计模式,其使一个能够仔细和可预测的CoAX型推理引擎,以在统一期间触发用户提供的算法的执行,并且我们通过从HOARE类型理论中汲取的若干现实示例来说明这些模式。我们假设没有关于COQ的先验知识,并描述来自第一个原则的COQ型推论的相关方面。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号