У меня довольно большой срок foo
. Когда я типаОт «значения» до «леммы»
value "foo"
затем Isabelle оценивает foo
до значения, скажем foo_value
. Теперь я хотел бы доказать следующую лемму.
lemma "foo = foo_value"
Какой метод доказательства следует использовать? Я попробовал try
, но это приурочено. Наверное, я мог бы продолжить вручную, разворачивая различные определения, которые встречаются в foo
, но, безусловно, я должен использовать любой механизм, который использует команда value
, правильно?
Спасибо, Андреас, это очень интересно и полезно. Мне любопытно: если первые два метода обходят ядро, можно ли сказать, что лемма была правильно доказана? Можно ли, например, представить теорию, содержащую «by eval» в Архив официальных доказательств? –
Если вы используете один из первых двух методов, то вы надеетесь, что настройка генератора кода будет звуковой. Не должно быть проблем с отправкой доказательств «eval» в AFP, их уже есть пара. На самом деле все методы рефлексивного доказательства также основаны на оценке. Примером может служить метод 'regexp' в записи AFP Regular Sets and Expressions http://afp.sourceforge.net/entries/Regular-Sets.shtml. –