伊德里斯的自定义证明策略

时间:2014-04-13 13:38:24

标签: theorem-proving idris

如果我理解正确(主要来自applyTactic函数的存在),就可以为Idris中的定理证明者编写自定义策略。我可以用什么(或在哪里)学习如何做到这一点?

1 个答案:

答案 0 :(得分:7)

在伊德里斯有两种编写自定义策略的机制:高级和低级反思。

使用高级反射,您可以编写一个在语法而不是在评估数据上运行的函数 - 它不会减少其参数。这些功能返回了一种新的策略,使用伊德里斯现有的战术定义。如果您想直接返回证明词,可以随时使用Exact。这种反射的一个例子可以在the effects library中找到。在证明模式下使用byReflection调用高级反射策略。

在低级反思中,您直接使用Idris的核心类型理论中的引用术语。然后,策略是TT -> List (TTName, TT) -> Tactic中的函数,其中第一个参数是目标类型,第二个是本地证明上下文,返回结果与高级反射中的相同。这就是laughadelic与above有关。这些是在证明模式下使用applyTactic调用的。