在类型系统中练习规则归纳的任何文件?

时间:2014-06-03 10:34:45

标签: logic proof type-systems computation-theory induction

如您所知,要定义新类型系统,我们需要一种方法:

  1. 语言语法
  2. 打字规则
  3. 然后我们需要证明一些定理,我们相信它可以通过使用上面的输入规则来证明。为了证明这些定理,一种方法是我们可以使用归纳法(归纳法)。

    例如,我们有一个这样的系统:

    nat n ::= 0 | S n
    

    我们定义了2条规则" Zero"和" Succ"像这样:

                    n nat 
    _____ Zero     _______ Succ  
    0 nat          S n nat 
    

    然后,我们提出一个定理,我们相信这个定理是正确的,我们需要证明它。

    If n nat, then S S n nat.
    

    我们可以使用定义的规则轻松证明这个定理。这称为规则归纳。

    那么有没有人知道可以帮助实施规则归纳的来源?

1 个答案:

答案 0 :(得分:1)

您可以使用结构归纳法来证明这一点,但考虑到您不必在归纳步骤中使用归纳假设,这是非常不必要的。

要显示n nat -> S S n nat,您只需假设n nat并显示S S n nat,即可完成以下操作:

 _____ (By assumption)
 n nat
 _______ Succ
 S n nat
_________ Succ
S S n nat