I put this as a second answer, since it's different enough.
I was browsing through the repository changes, and that led me to the following Isabelle2013-2 ML files related to try
and try0
(but don't get locked in completely, because I list other files to show things are changing):
The file try.ML
gives this line of source:
val get_tools : theory -> tool list
I suppose, using ML, a person could get a list of the tools used by try
, but if so, then it would probably correspond with the description given in the other answer from isar-ref.pdf
.
Basically, there is try
which calls other tools, sledgehammer
which does its own special thing, where the use of try0
is part of its arsenal, solve_direct
, and then fully automatic proof methods used by try0
, which are listed in try0.ML
.
The majority of automatic proof methods which are listed in try0.ML
are referenced in isar-ref.pdf sections
- 9.3 The Simplifier [187]
- 9.4.4 Fully automated methods [211],
- 12.7 Model Elimination and Resolution [263], and
- 12.8 Algebraic reasoning via Gröbner bases [263].
Now for some changes that are coming down the pipe, taken from the latest files or changesets:
From the latest repository try0.ML
, it gives the list of proof methods that try0
will try. If you look at the Isabelle2013-2 try0.ML
above, you'll see that the list given in that file is the same list of methods shown in the other answer when trying to prove False
.
Here, there are extra automatic proof methods that aren't currently being tried with 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))]