递归阶段
一个阶段(stage)= 由若干关卡(gate)界定出的一段自由区;这段自由区本身也可以是一条阶段-关卡序列。这个结构是自相似的(分形的)。
我们已经有一个两层的实例——面试: 会话层面的阶段(框定 → 证明 → 资格核实 → 转化),而在一个阶段内部,逐问题的流水线(read → retrieve → compose → guard)本身又是一条独立的阶段-关卡链。形式化地说,这就是选项套选项(options-within-options,formalizations):一个阶段内部的策略 π 可以是一个作用于子选项之上的策略。Simon–Ando:一个模块在向外耦合之前,内部先有自己的快速动力学。
让递归真正运作(而不坍塌)的规则
每一层都需要自己真正的关卡。 递归只有在每一层都收敛(recursion-convergence-contraction)时才划算:子阶段的出口关卡要在父阶段基于它的结果继续构建之前,先验证这个结果。跳过某一层的关卡 → 那一层的误差会沿递归向上复利(pⁿ,necessity)→ 整座塔就会漂移。所以递归阶段 = 每一个边界都有一道关卡。
递归在何处触底(基准情形)
- 只在一个阶段内部确实存在可验证的"完成"之处,才把它拆成子阶段;没有可验证的子边界 → 不要拆(保留一个自由区就好)。
- 深度受关卡成本(
√(2δM)那套逻辑)约束:当子步骤已经原子化、足够便宜,以至于一道关卡不值得设时,就停止递归。这就是基准情形。
什么会跨越层级(干净的递归)
- Simon–Ando: 一个通过了的子关卡只把一份摘要/接口暴露给上一层;父阶段基于这个已验证的接口继续构建,而不是基于子阶段内部的一团乱麻。
- Hoare / LCF: 子阶段的后置条件是父阶段要用的一条引理;token/凭证是嵌套的(子关卡铸造的凭证,被父关卡消费)。大型证明就是由这样一层层嵌套、每一步都经过内核检查的战术构建出来的。
一句话
阶段会递归,而且应该递归——但只能递归到你能在每一层都放一道真正的关卡为止。没有关卡的递归复利出误差;有关卡的递归复利出能力。在某一步已经原子化、或内部没有可验证的"完成"之处触底。