Я поставил это как второй ответ, так как он достаточно разный.
Я просматривал изменения в хранилище, и это привело меня к следующим файлам Isabelle2013-2 ML, связанным с try
и try0
(но не заперт в полностью, потому что список других файлов, чтобы показать все меняется) :
Файл try.ML
дает эту строку источника:
val get_tools : theory -> tool list
Я полагаю, используя ML, человек может получить список инструментов, используемых try
, но если это так, то это, вероятно, соответствует описанию, приведенному в другой ответ от isar-ref.pdf
.
В принципе, есть try
, который вызывает другие инструменты, sledgehammer
, который делает свою особую вещь, где использование try0
является частью арсенала, solve_direct
, а затем полностью автоматические методы доказательства, используемые try0
, которые перечислены в try0.ML
,
Большинство автоматических методов доказательства, которые перечислены в try0.ML
упоминаются в isar-ref.pdf разделах
- 9.3 Simplifier [187]
- 9.4.4 Полностью автоматизированные методы [211],
- 12,7 Модель Устранение и разрешение [263], и
- 12.8 Алгебраические рассуждения с использованием баз Грёбнера [263].
Теперь некоторые изменения, которые идут вниз по трубе, взят из последних файлов или ревизий:
Из последнего репозитория try0.ML
он дает список методов доказательства th на try0
попробует. Если вы посмотрите на Isabelle2013-2 try0.ML
выше, вы увидите, что список, указанный в этом файле, представляет собой тот же список методов, показанных в другом ответе при попытке доказать False
.
Здесь есть дополнительные автоматические методы доказательства, которые в настоящее время не используются с Isabelle2013-2.
val full_attrs = (SOME "simp", SOME "intro", SOME "elim", SOME "dest");
val clas_attrs = (NONE, SOME "intro", SOME "elim", SOME "dest");
val simp_attrs = (SOME "add", NONE, NONE, NONE);
val metis_attrs = (SOME "", SOME "", SOME "", SOME "");
val no_attrs = (NONE, NONE, NONE, NONE);
(* name * ((all_goals, run_if_auto_try), (simp, intro, elim, dest) *)
val named_methods =
[("simp", ((false, true), simp_attrs)),
("auto", ((true, true), full_attrs)),
("blast", ((false, true), clas_attrs)),
("metis", ((false, true), metis_attrs)),
("linarith", ((false, true), no_attrs)),
("presburger", ((false, true), no_attrs)),
("algebra", ((false, true), no_attrs)),
("fast", ((false, false), clas_attrs)),
("fastforce", ((false, false), full_attrs)),
("force", ((false, false), full_attrs)),
("meson", ((false, false), metis_attrs))]