equal
deleted
inserted
replaced
4852 just guides the heuristic. To find suitable measure functions, the |
4852 just guides the heuristic. To find suitable measure functions, the |
4853 termination prover sets up the goal "is_measure ?f" of the appropriate |
4853 termination prover sets up the goal "is_measure ?f" of the appropriate |
4854 type and generates all solutions by prolog-style backwards proof using |
4854 type and generates all solutions by prolog-style backwards proof using |
4855 the declared rules. |
4855 the declared rules. |
4856 |
4856 |
4857 This setup also deals with rules like |
4857 This setup also deals with rules like |
4858 |
4858 |
4859 "is_measure f ==> is_measure (list_size f)" |
4859 "is_measure f ==> is_measure (list_size f)" |
4860 |
4860 |
4861 which accommodates nested datatypes that recurse through lists. |
4861 which accommodates nested datatypes that recurse through lists. |
4862 Similar rules are predeclared for products and option types. |
4862 Similar rules are predeclared for products and option types. |
5624 |
5624 |
5625 * Simplifier: by default the simplifier trace only shows top level |
5625 * Simplifier: by default the simplifier trace only shows top level |
5626 rewrites now. That is, trace_simp_depth_limit is set to 1 by |
5626 rewrites now. That is, trace_simp_depth_limit is set to 1 by |
5627 default. Thus there is less danger of being flooded by the trace. The |
5627 default. Thus there is less danger of being flooded by the trace. The |
5628 trace indicates where parts have been suppressed. |
5628 trace indicates where parts have been suppressed. |
5629 |
5629 |
5630 * Provers/classical: removed obsolete classical version of elim_format |
5630 * Provers/classical: removed obsolete classical version of elim_format |
5631 attribute; classical elim/dest rules are now treated uniformly when |
5631 attribute; classical elim/dest rules are now treated uniformly when |
5632 manipulating the claset. |
5632 manipulating the claset. |
5633 |
5633 |
5634 * Provers/classical: stricter checks to ensure that supplied intro, |
5634 * Provers/classical: stricter checks to ensure that supplied intro, |
5663 * Method "metis" proves goals by applying the Metis general-purpose |
5663 * Method "metis" proves goals by applying the Metis general-purpose |
5664 resolution prover (see also http://gilith.com/software/metis/). |
5664 resolution prover (see also http://gilith.com/software/metis/). |
5665 Examples are in the directory MetisExamples. WARNING: the |
5665 Examples are in the directory MetisExamples. WARNING: the |
5666 Isabelle/HOL-Metis integration does not yet work properly with |
5666 Isabelle/HOL-Metis integration does not yet work properly with |
5667 multi-threading. |
5667 multi-threading. |
5668 |
5668 |
5669 * Command 'sledgehammer' invokes external automatic theorem provers as |
5669 * Command 'sledgehammer' invokes external automatic theorem provers as |
5670 background processes. It generates calls to the "metis" method if |
5670 background processes. It generates calls to the "metis" method if |
5671 successful. These can be pasted into the proof. Users do not have to |
5671 successful. These can be pasted into the proof. Users do not have to |
5672 wait for the automatic provers to return. WARNING: does not really |
5672 wait for the automatic provers to return. WARNING: does not really |
5673 work with multi-threading. |
5673 work with multi-threading. |
6029 for small examples, and the separate tutorial on the function |
6029 for small examples, and the separate tutorial on the function |
6030 package. The old recdef "package" is still available as before, but |
6030 package. The old recdef "package" is still available as before, but |
6031 users are encouraged to use the new package. |
6031 users are encouraged to use the new package. |
6032 |
6032 |
6033 * Method "lexicographic_order" automatically synthesizes termination |
6033 * Method "lexicographic_order" automatically synthesizes termination |
6034 relations as lexicographic combinations of size measures. |
6034 relations as lexicographic combinations of size measures. |
6035 |
6035 |
6036 * Case-expressions allow arbitrary constructor-patterns (including |
6036 * Case-expressions allow arbitrary constructor-patterns (including |
6037 "_") and take their order into account, like in functional |
6037 "_") and take their order into account, like in functional |
6038 programming. Internally, this is translated into nested |
6038 programming. Internally, this is translated into nested |
6039 case-expressions; missing cases are added and mapped to the predefined |
6039 case-expressions; missing cases are added and mapped to the predefined |
6113 * HOL/records: generalised field-update to take a function on the |
6113 * HOL/records: generalised field-update to take a function on the |
6114 field rather than the new value: r(|A := x|) is translated to A_update |
6114 field rather than the new value: r(|A := x|) is translated to A_update |
6115 (K x) r The K-combinator that is internally used is called K_record. |
6115 (K x) r The K-combinator that is internally used is called K_record. |
6116 INCOMPATIBILITY: Usage of the plain update functions has to be |
6116 INCOMPATIBILITY: Usage of the plain update functions has to be |
6117 adapted. |
6117 adapted. |
6118 |
6118 |
6119 * Class "semiring_0" now contains annihilation axioms x * 0 = 0 and 0 |
6119 * Class "semiring_0" now contains annihilation axioms x * 0 = 0 and 0 |
6120 * x = 0, which are required for a semiring. Richer structures do not |
6120 * x = 0, which are required for a semiring. Richer structures do not |
6121 inherit from semiring_0 anymore, because this property is a theorem |
6121 inherit from semiring_0 anymore, because this property is a theorem |
6122 there, not an axiom. INCOMPATIBILITY: In instances of semiring_0, |
6122 there, not an axiom. INCOMPATIBILITY: In instances of semiring_0, |
6123 there is more to prove, but this is mostly trivial. |
6123 there is more to prove, but this is mostly trivial. |
7009 mult_pos_neg2_le now named mult_nonneg_nonpos2 |
7009 mult_pos_neg2_le now named mult_nonneg_nonpos2 |
7010 mult_neg now named mult_neg_neg |
7010 mult_neg now named mult_neg_neg |
7011 mult_neg_le now named mult_nonpos_nonpos |
7011 mult_neg_le now named mult_nonpos_nonpos |
7012 |
7012 |
7013 * The following lemmas in Ring_and_Field have been added to the simplifier: |
7013 * The following lemmas in Ring_and_Field have been added to the simplifier: |
7014 |
7014 |
7015 zero_le_square |
7015 zero_le_square |
7016 not_square_less_zero |
7016 not_square_less_zero |
7017 |
7017 |
7018 The following lemmas have been deleted from Real/RealPow: |
7018 The following lemmas have been deleted from Real/RealPow: |
7019 |
7019 |
7020 realpow_zero_zero |
7020 realpow_zero_zero |
7021 realpow_two |
7021 realpow_two |
7022 realpow_less |
7022 realpow_less |
7023 zero_le_power |
7023 zero_le_power |
7024 realpow_two_le |
7024 realpow_two_le |
7025 abs_realpow_two |
7025 abs_realpow_two |
7026 realpow_two_abs |
7026 realpow_two_abs |
7027 |
7027 |
7028 * Theory Parity: added rules for simplifying exponents. |
7028 * Theory Parity: added rules for simplifying exponents. |
7029 |
7029 |
7030 * Theory List: |
7030 * Theory List: |
7031 |
7031 |