766 The @{attribute (HOL) arith_split} attribute declares case split |
766 The @{attribute (HOL) arith_split} attribute declares case split |
767 rules to be expanded before the arithmetic procedure is invoked. |
767 rules to be expanded before the arithmetic procedure is invoked. |
768 |
768 |
769 Note that a simpler (but faster) version of arithmetic reasoning is |
769 Note that a simpler (but faster) version of arithmetic reasoning is |
770 already performed by the Simplifier. |
770 already performed by the Simplifier. |
|
771 *} |
|
772 |
|
773 |
|
774 section {* Intuitionistic proof search *} |
|
775 |
|
776 text {* |
|
777 \begin{matharray}{rcl} |
|
778 @{method_def (HOL) "iprover"} & : & @{text method} \\ |
|
779 \end{matharray} |
|
780 |
|
781 \begin{rail} |
|
782 'iprover' ('!' ?) (rulemod *) |
|
783 ; |
|
784 \end{rail} |
|
785 |
|
786 The @{method iprover} method performs intuitionistic proof search, |
|
787 depending on specifically declared rules from the context, or given |
|
788 as explicit arguments. Chained facts are inserted into the goal |
|
789 before commencing proof search; ``@{method iprover}@{text "!"}'' |
|
790 means to include the current @{fact prems} as well. |
|
791 |
|
792 Rules need to be classified as @{attribute (Pure) intro}, |
|
793 @{attribute (Pure) elim}, or @{attribute (Pure) dest}; here the |
|
794 ``@{text "!"}'' indicator refers to ``safe'' rules, which may be |
|
795 applied aggressively (without considering back-tracking later). |
|
796 Rules declared with ``@{text "?"}'' are ignored in proof search (the |
|
797 single-step @{method rule} method still observes these). An |
|
798 explicit weight annotation may be given as well; otherwise the |
|
799 number of rule premises will be taken into account here. |
771 *} |
800 *} |
772 |
801 |
773 |
802 |
774 section {* Invoking automated reasoning tools -- The Sledgehammer *} |
803 section {* Invoking automated reasoning tools -- The Sledgehammer *} |
775 |
804 |