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 |