Lean 语言参考手册

15.7. 简化与重写🔗

simprw/rewrite 都使用等式引理,将项的一部分替换为等价形式。 不过,它们的预期用途和重写策略有所不同。 simp 系列的策略主要以标准化方式重新表述问题,使问题更便于人类理解和进一步自动化。 特别是,简化绝不应使原本可证的目标变得不可证。 rw 系列的策略主要用于应用人工选定的变换;这些变换不一定保持可证性,也不一定将项变为标准形式。 两类策略行为上的差异反映了各自侧重点的不同。

simp 策略主要从内向外重写。 它首先简化尽可能小的表达式,从而为外围表达式带来更多简化机会。 rw 策略选择与模式匹配的最左、最外层子项,并只重写一次。 两类策略都允许覆盖其默认策略:向 simp 集添加引理时, 修饰符使其在简化子项之前应用;rw 配置参数的 occs 字段则允许通过白名单或黑名单选择其他出现位置。