如您所知,要定义新类型系统,我们需要一种方法:
然后我们需要证明一些定理,我们相信它可以通过使用上面的输入规则来证明。为了证明这些定理,一种方法是我们可以使用归纳法(归纳法)。
例如,我们有一个这样的系统:
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.
我们可以使用定义的规则轻松证明这个定理。这称为规则归纳。
那么有没有人知道可以帮助实施规则归纳的来源?
答案 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