[定理]
确定性
[定理] 确定性
对 [定义] 一步归约 定义的关系 ,若 且 ,则 。
证明的方法是穷举(case analysis,也叫分情形讨论):把所有可能的情形一个不漏地列出来,逐个证明。穷举法成立的前提是情形确实覆盖了每一种可能,漏掉一种,整个证明就不成立。这里能保证不漏,是因为 是最小关系,任何推导的最后一步只能是十条规则之一,所以下面恰好列十种情形;而在每种情形内部,又要对第二个推导的最后一步再穷举一次十条规则,逐条说明“适用”或“为什么不适用”。
具体地,对 的推导归纳( [定理] 对推导归纳 ),要证的性质是“对任意 , 蕴涵 ”。“任意 ”必须写进性质里,否则 归纳假设 只能用于某个固定的 ,在 E-If 情形就不够用。每个情形里,再看 的推导最后一步可能是哪条规则:它的结论左边必须和 形状相同。
- E-IfTrue:,。第二个推导若是 E-IfTrue,。不可能是 E-IfFalse,条件不是 。不可能是 E-If,那需要 ,与 [引理] 值不可归约 矛盾。
- E-IfFalse:与上一条对称。
- E-If:前提 。第二个推导不可能是 E-IfTrue 或 E-IfFalse:那时 是 或 ,而 能归约,与 [引理] 值不可归约 矛盾。所以它是 E-If,前提 。由 归纳假设 ,于是 。
- E-Succ:左边形如 的规则只有 E-Succ,由 归纳假设 即得。
- E-PredZero:。E-PredSucc 要求 后面是 ,不适用;E-Pred 要求 能归约,与 [引理] 值不可归约 矛盾。所以只能是 E-PredZero,。
- E-PredSucc:。E-PredZero 不适用;E-Pred 要求 能归约,但它是值,矛盾。所以只能是 E-PredSucc,结果相同。
- E-Pred:前提 ,所以 不是值( [引理] 值不可归约 ),E-PredZero 和 E-PredSucc 都不适用(它们要求 是 或 ,都是值)。剩下 E-Pred,用 归纳假设 。
- E-IsZeroZero、E-IsZeroSucc、E-IsZero:与 的三条一一对应,论证相同。
Backlinks
Backlinks
[附注] 为什么 E-PredSucc 要求 [numeric-value-restriction-in-predecessor-reduction]
[附注] 分支顺序里藏着证明 [proofs-behind-pattern-matching-order]
[附注] 求值策略、归约策略与合流性 [evaluation-strategies-reduction-strategies-and-confluence]
[附注] 为什么要“对 一般化” [generalizing-the-type-in-preservation-proofs]
[例] 多步归约到值 [multi-step-reduction-to-a-value]