doc-src/IsarRef/Thy/HOL_Specific.thy
changeset 43016 42330f25142c
parent 42705 528a2ba8fa74
child 43019 619f16bf2150
equal deleted inserted replaced
43015:21b6baec55b1 43016:42330f25142c
   929   tools search for proofs and provide an Isar proof snippet on success.
   929   tools search for proofs and provide an Isar proof snippet on success.
   930   These tools are available via the following commands.
   930   These tools are available via the following commands.
   931 
   931 
   932   \begin{matharray}{rcl}
   932   \begin{matharray}{rcl}
   933     @{command_def (HOL) "solve_direct"}@{text "\<^sup>*"} & : & @{text "proof \<rightarrow>"} \\
   933     @{command_def (HOL) "solve_direct"}@{text "\<^sup>*"} & : & @{text "proof \<rightarrow>"} \\
   934     @{command_def (HOL) "try"}@{text "\<^sup>*"} & : & @{text "proof \<rightarrow>"} \\
   934     @{command_def (HOL) "try_methods"}@{text "\<^sup>*"} & : & @{text "proof \<rightarrow>"} \\
   935     @{command_def (HOL) "sledgehammer"}@{text "\<^sup>*"} & : & @{text "proof \<rightarrow>"} \\
   935     @{command_def (HOL) "sledgehammer"}@{text "\<^sup>*"} & : & @{text "proof \<rightarrow>"} \\
   936     @{command_def (HOL) "sledgehammer_params"} & : & @{text "theory \<rightarrow> theory"}
   936     @{command_def (HOL) "sledgehammer_params"} & : & @{text "theory \<rightarrow> theory"}
   937   \end{matharray}
   937   \end{matharray}
   938 
   938 
   939   @{rail "
   939   @{rail "
   940     @@{command (HOL) try} ( ( ( 'simp' | 'intro' | 'elim' | 'dest' ) ':' @{syntax thmrefs} ) + ) ?
   940     @@{command (HOL) try_methods} ( ( ( 'simp' | 'intro' | 'elim' | 'dest' ) ':' @{syntax thmrefs} ) + ) ?
   941       @{syntax nat}?
   941       @{syntax nat}?
   942     ;
   942     ;
   943     @@{command (HOL) sledgehammer} ( '[' args ']' )? facts? @{syntax nat}?
   943     @@{command (HOL) sledgehammer} ( '[' args ']' )? facts? @{syntax nat}?
   944     ;
   944     ;
   945 
   945 
   949     args: ( @{syntax name} '=' value + ',' )
   949     args: ( @{syntax name} '=' value + ',' )
   950     ;
   950     ;
   951 
   951 
   952     facts: '(' ( ( ( ( 'add' | 'del' ) ':' ) ? @{syntax thmrefs} ) + ) ? ')'
   952     facts: '(' ( ( ( ( 'add' | 'del' ) ':' ) ? @{syntax thmrefs} ) + ) ? ')'
   953     ;
   953     ;
   954   "} % FIXME try: proper clasimpmod!?
   954   "} % FIXME try_methods: proper clasimpmod!?
   955   % FIXME check args "value"
   955   % FIXME check args "value"
   956 
   956 
   957   \begin{description}
   957   \begin{description}
   958 
   958 
   959   \item @{command (HOL) "solve_direct"} checks whether the current subgoals can
   959   \item @{command (HOL) "solve_direct"} checks whether the current subgoals can
   960     be solved directly by an existing theorem. Duplicate lemmas can be detected
   960     be solved directly by an existing theorem. Duplicate lemmas can be detected
   961     in this way.
   961     in this way.
   962 
   962 
   963   \item @{command (HOL) "try"} attempts to prove a subgoal using a combination
   963   \item @{command (HOL) "try_methods"} attempts to prove a subgoal using a combination
   964     of standard proof methods (@{text auto}, @{text simp}, @{text blast}, etc.).
   964     of standard proof methods (@{text auto}, @{text simp}, @{text blast}, etc.).
   965     Additional facts supplied via @{text "simp:"}, @{text "intro:"},
   965     Additional facts supplied via @{text "simp:"}, @{text "intro:"},
   966     @{text "elim:"}, and @{text "dest:"} are passed to the appropriate proof
   966     @{text "elim:"}, and @{text "dest:"} are passed to the appropriate proof
   967     methods.
   967     methods.
   968 
   968