В моем развитии coq я изучаю, как создать новую тактику, адаптированную к моей проблемной области, a la Prof. Adam Chlipala.Как использовать авто с повторением в пользовательской тактике?
На этой странице он описывает, как создать мощную тактику, обернув repeat
вокруг match
, который отвечает на различные интересные условия. Затем repeat
повторяет итерации, что позволяет сделать далеко идущий вывод.
Использование repeat
имеет предостережение (курсив мой):
repeat
, что мы используем здесь называется тактический или тактика комбинатор. Поведениеrepeat t
состоит в том, чтобы выполнить циклt
, работающийt
во всех сгенерированных подцелях, работающихt
по их сгенерированных подцелей и т. Д. Когдаt
терпит неудачу в любой точке этого дерева поиска, этот конкретный подзаголовок оставлен для обработки поздней тактикой. Таким образом, важно, чтобы у игрокаrepeat
была очень хорошая тактичность.
Теперь у меня уже есть мощная тактика в использовании, auto
. Он аналогичным образом объединяет цепочки шагов, на этот раз найденные из баз данных подсказок. На странице auto
«s:
auto
либо решает полностью задачу, либо оставляет его без изменений.auto
иtrivial
никогда не сработает.
Boo! Я уже вложил определенные усилия в курирования auto
«s намекают базы данных, но, кажется, мне запрещено нанимать их в тактике использования repeat
(то есть, интересные тактики.)
Есть некоторые вариации auto
, которые могут потерпеть неудачу, или в противном случае правильно использовать петли?
Например, возможно, этот вариант не работает, когда он «оставляет цель целиком».
EDIT: Включение auto
в петлю не «правильный» способ сделать это в любом случае (см this), но актуальный вопрос о неисправном версии авто еще, возможно, интересно.
Мне кажется, что ваш вопрос на самом деле состоит из двух вопросов: один в заголовке ['progress auto' может быть тем, кем вы (были) ищете]; и тот, который вы описываете в теле, которому вы уже дали ответ. –
Верно, я полагаю, я должен переименовать его «Как использовать авто с повторением в пользовательской тактике?» – phs
Новое название звучит неплохо, но не будет ли (частично) аннулировать ответ @Zimm i48?Было бы здорово, если бы вы могли разделить вопросы, потому что оба они интересны. Но это ваш звонок :) –