[例] 多步归约到值

采用 [定义] 一步归约 的十条规则,⟶ ∗ 表示 [定义] 多步归约 的零步或有限多步归约;终点是否为值按 [定义] 值与数值 判断。

 if ( iszero ( pred ( succ 0 ) ) ) then  succ 0 else 0⟶ if ( iszero 0 ) then  succ 0 else 0 E-If + E-IsZero + E-PredSucc ⟶ if  true  then  succ 0 else 0 E-If + E-IsZeroZero ⟶ succ 0 E-IfTrue

每行右边列出了这一步推导用到的规则,从外层的同余规则写到最里层的计算规则。三步之后到达值 succ 0,所以

if ( iszero ( pred ( succ 0 ) ) ) then  succ 0 else 0⟶ ∗ succ 0

由 [定理] 确定性 ,每一步都别无选择,所以这条链是唯一的。⟶ ∗ 也包括中间每一站:这个项也多步归约到第二行、第三行的项,以及它自己(零步)。

References

[定义] 值与数值 [values-and-numeric-values]

[定义] 一步归约 [one-step-reduction]

[定义] 多步归约 [multi-step-reduction]

[定理] 确定性 [determinism]

Backlinks

Based on Typsite