NEWS
changeset 50645 cb8f93361e86
parent 50634 009a9fdabbad
child 50646 c02e6a75aa3f
equal deleted inserted replaced
50644:d15f1c39401c 50645:cb8f93361e86
  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