在我的coq开发中,我正在学习如何为我的问题域创建新的策略,la Prof. Adam Chlipala。如何使用自动重复自定义策略?
在该页面上,他描述了如何通过围绕match
包装repeat
来创建强大的策略,以响应各种有趣的条件。 repeat
然后迭代,允许深远的推论。
使用的repeat
有一个警告(重点煤矿):
,我们在这里使用的
repeat
被称为战术,或战术组合子。repeat t
的行为是循环运行t
,在所有生成的子目标上运行t
,在上运行t
,它们的生成的子目标等等。当t
在这个搜索树中的任何一点都失败时,那个特定的子目标会被稍后的策略处理。 因此,重要的是永远不要使用repeat
,这种策略总是成功的。
现在,我已经有了一个强大的战术使用,auto
。它类似地串联在一起的步骤链,这次从提示数据库中找到。从auto
的页面:
auto
要么完全解决目标,要么保持完好无损。auto
和trivial
永远不会失败。
嘘!我已经投入了一些精力策划auto
的暗示数据库,但似乎我使用repeat
雇用他们的战术被禁止(即,有趣的战术。)
是否存在的auto
一些变化可能出现故障,或否则可以在循环中正确使用?
例如,也许这个变体在“完成目标”时失败。
编辑:结合auto
成环是不是“正确”的方式做到这一点呢(见this),但汽车的一个失败的版本实际的问题仍然是可能有趣。
在我看来,你的问题实际上是两个问题:标题['progress auto'可能是你正在寻找的东西];以及你在体内描述的那个,你已经给出了答案。 –
不错,我想我应该重新命名为“如何在自定义策略中使用自动重复?” – phs
新标题听起来不错,但不会(部分)使@Zimm i48的答案无效?如果你真的可以分开问题,那将是非常好的,因为它们都很有趣。但这是你的电话:) –