I want to find theorems. I have read the section on find_theorems
in the Isabelle/Isar reference manual:
find_theorems criteria
Retrieves facts from the theory or proof context matching all of given search criteria. The criterion
name: p
selects all theorems whose fully qualified name matches pattern p, which may contain "*
" wildcards. The criteriaintro
,elim
, anddest
select theorems that match the current goal as introduction, elimination or destruction rules, respectively. The criterionsolves
returns all rules that would directly solve the current goal. The criterionsimp: t
selects all rewrite rules whose left-hand side matches the given term. The criterion term t selects all theorems that contain the pattern t -- as usual, patterns may contain occurrences of the dummy "_
" , schematic variables, and type constraints.Criteria can be preceded by "
-
" to select theorems that do not match. Note that giving the empty list of criteria yields all currently known facts. An optional limit for the number of printed facts may be given; the default is 40. By default, duplicates are removed from the search result. Usewith_dups
to display duplicates.
As far as I understand, find_theorems
is used in the find window of Isabelle/jEdit. The above does not help me finding relevant theorems for the following situation (Lambda is a theory of the Nominal Isabelle extension. The tarball is here):
theory First
imports Lambda
begin
theorem "Lam [x].(Lam [y].(App (Var x)(Var y))) = Lam [y].(Lam [x].(App (Var y)(Var x)))"
When I try the search expression Lam
Isabelle/jedit says
Inner syntax error: unexpected end of input
Failed to parse term
How can I make it look for all the theorems that contain the constant Lam
?