Curry-Howard在Isabelle中进行术语合成

时间:2018-11-15 13:28:41

标签: isabelle proof dependent-type lambda-calculus curry-howard

说我已经在Isabelle / HOL中证明了直觉命题逻辑的一些基本命题:

theorem ‹(A ⟶ B) ⟶ ((B ⟶ C) ⟶ (A ⟶ C))›
proof -
  {
    assume ‹A ⟶ B›
    {
      assume ‹B ⟶ C›
      {
        assume ‹A›
        with ‹A ⟶ B› have ‹B› by (rule mp)
        with ‹B ⟶ C› have ‹C› by (rule mp)
      }
      hence ‹A ⟶ C› by (rule impI)
    }
    hence ‹(B ⟶ C) ⟶ (A ⟶ C)› by (rule impI)
  }
  thus ?thesis by (rule impI)
qed

我从Curry-Howard对应关系中知道,命题对应于某个类型(a -> b) -> ((b -> c) -> (a -> c)),以及某个术语的证明,都在某种类型理论内(例如,在简单类型的λ微积分中)。从证明的结构来看,我知道对应的简单类型的λ项是λf:a→b. λg:b→c. λx:a. f(g(x))

有没有办法让伊莎贝尔为我构建这个?

我已经查看了Isabelle中的程序提取,并且据我所知,它在很大程度上还涉及其他内容:在Isabelle中编写功能程序的地方,对它们进行证明,然后将其提供给Haskell或ML某种翻译。

我还知道,HOL与依赖类型理论不是一回事,据我了解,HOL具有更强的Curry-Howard风格。我知道HOL本身在概念上有点像多态λ微积分,并且我发现了一些有关HOL如何在类型理论中对逻辑进行浅层编码的简短说明,但希望能进一步获得更多背景信息。我几乎无法拼凑所有这些不同的证明助手及其相关基础如何相互关联,也许更多的历史背景也会有所帮助。不幸的是,有关Isabelle,Coq等的文档似乎遍布各处。特别是对于伊莎贝尔(Isabelle),我似乎经常会发现已经过时20年的信息。

0 个答案:

没有答案