NEWS
changeset 76097 c6c0947804d6
parent 76096 a621e9fb295d
child 76110 0605eb327e60
equal deleted inserted replaced
76096:a621e9fb295d 76097:c6c0947804d6
     2 =================================================
     2 =================================================
     3 
     3 
     4 (Note: Isabelle/jEdit shows a tree-view of the NEWS file in Sidekick.)
     4 (Note: Isabelle/jEdit shows a tree-view of the NEWS file in Sidekick.)
     5 
     5 
     6 
     6 
     7 New in this Isabelle version
     7 New in Isabelle2022 (October 2022)
     8 ----------------------------
     8 ----------------------------------
     9 
     9 
    10 *** General ***
    10 *** General ***
    11 
       
    12 * Old-style {* verbatim *} tokens have been discontinued (legacy feature
       
    13 since Isabelle2019). INCOMPATIBILITY, use \<open>cartouche\<close> syntax instead.
       
    14 
       
    15 * Session ROOT files support 'chapter_definition' entries (optional).
       
    16 This allows to associate additional information as follows:
       
    17 
       
    18   - "chapter_definition NAME (GROUPS)" to make all sessions that belong
       
    19   to this chapter members of the given groups
       
    20 
       
    21   - "chapter_definition NAME description TEXT" to provide a description
       
    22   for presentation purposes
       
    23 
    11 
    24 * The instantiation of schematic goals is now displayed explicitly as a
    12 * The instantiation of schematic goals is now displayed explicitly as a
    25 list of variable assignments. This works for proof state output, and at
    13 list of variable assignments. This works for proof state output, and at
    26 the end of a toplevel proof. In rare situations, a proof command or
    14 the end of a toplevel proof. In rare situations, a proof command or
    27 proof method may violate the intended goal discipline, by not producing
    15 proof method may violate the intended goal discipline, by not producing
    28 an instance of the original goal, but there is only a warning, no hard
    16 an instance of the original goal, but there is only a warning, no hard
    29 error.
    17 error.
    30 
    18 
    31 * System option "show_states" controls output of toplevel command states
    19 * Session ROOT files support 'chapter_definition' entries (optional).
    32 (notably proof states) in batch-builds; in interactive mode this is
    20 This allows to associate additional information as follows:
    33 always done on demand. The option is relevant for tools that operate on
    21 
    34 exported PIDE markup, e.g. document presentation or diagnostics. For
    22   - "chapter_definition NAME (GROUPS)" to make all sessions that belong
    35 example:
    23   to this chapter members of the given groups
    36 
    24 
    37   isabelle build -o show_states FOL-ex
    25   - "chapter_definition NAME description TEXT" to provide a description
    38   isabelle log -v -U FOL-ex
    26   for presentation purposes
    39 
    27 
    40 Option "show_states" is also the default for the configuration option
    28 * Old-style {* verbatim *} tokens have been discontinued (legacy feature
    41 "show_results" within the formal context.
    29 since Isabelle2019). INCOMPATIBILITY, use \<open>cartouche\<close> syntax instead.
    42 
       
    43 Note that printing intermediate states may cause considerable slowdown
       
    44 in building a session.
       
    45 
    30 
    46 
    31 
    47 *** Isabelle/jEdit Prover IDE ***
    32 *** Isabelle/jEdit Prover IDE ***
    48 
    33 
    49 * Command 'print_state' outputs a plain message ("writeln" instead of
    34 * Command 'print_state' outputs a plain message, i.e. "writeln" instead
    50 "state"). Thus it is displayed in the Output panel, even if the option
    35 of "state". Thus it is displayed in the Output panel, even if the option
    51 "editor_output_state" is disabled.
    36 "editor_output_state" is disabled.
    52 
    37 
    53 
    38 
    54 *** Isabelle/VSCode Prover IDE ***
    39 *** Isabelle/VSCode Prover IDE ***
    55 
    40 
    93 presented session.
    78 presented session.
    94 
    79 
    95 
    80 
    96 *** HOL ***
    81 *** HOL ***
    97 
    82 
    98 * HOL record: new simproc that sorts update expressions, guarded by
    83 * HOL record types: new simproc that sorts update expressions, guarded
    99 configuration option "record_sort_updates" (default: false). Some
    84 by configuration option "record_sort_updates" (default: false). Some
   100 examples are in theory "HOL-Examples.Records".
    85 examples are in theory "HOL-Examples.Records".
   101 
    86 
   102 * HOL-Algebra: Facts renamed to avoid fact name clashes on interpretation:
    87 * Meson: added support for polymorphic "using" facts. Minor
   103 
       
   104     is_ring ~> ring_axioms
       
   105     cring ~> cring_axioms
       
   106     R_def ~> R_m_def
       
   107 
       
   108 INCOMPATIBILITY.
    88 INCOMPATIBILITY.
   109 
    89 
   110 * Moved auxiliary computation constant "divmod_nat" to theory
    90 * Moved auxiliary computation constant "divmod_nat" to theory
   111 "Euclidean_Division".  Minor INCOMPATIBILITY.
    91 "HOL.Euclidean_Division". Minor INCOMPATIBILITY.
   112 
    92 
   113 * Renamed attribute "arith_split" to "linarith_split".  Minor
    93 * Renamed attribute "arith_split" to "linarith_split". Minor
   114 INCOMPATIBILITY.
    94 INCOMPATIBILITY.
   115 
    95 
   116 * Theory Char_ord: streamlined logical specifications.
    96 * Theory "HOL.Rings": rule split_of_bool_asm is not split any longer,
   117 Minor INCOMPATIBILITY.
    97 analogously to split_if_asm. INCOMPATIBILITY.
   118 
       
   119 * New Theory Code_Abstract_Char implements characters by target language
       
   120 integers, sacrificing pattern patching in exchange for dramatically
       
   121 increased performance for comparisons.
       
   122 
       
   123 * New theory HOL-Library.NList of fixed length lists.
       
   124 
       
   125 * Rule split_of_bool_asm is not split any longer, analogously to
       
   126 split_if_asm.  INCOMPATIBILITY.
       
   127 
    98 
   128 * Theory "HOL.Bit_Operations": rule bit_0 is not default [simp] any
    99 * Theory "HOL.Bit_Operations": rule bit_0 is not default [simp] any
   129 longer. INCOMPATIBILITY.
   100 longer. INCOMPATIBILITY.
   130 
   101 
   131 * Streamlined primitive definitions of division and modulus on integers.
   102 * Streamlined primitive definitions of division and modulus on integers.
   184 * Theory "HOL.Transitive_Closure":
   155 * Theory "HOL.Transitive_Closure":
   185   - Added lemmas.
   156   - Added lemmas.
   186       total_on_trancl
   157       total_on_trancl
   187       totalp_on_tranclp
   158       totalp_on_tranclp
   188 
   159 
       
   160 * New theory "HOL-Library.NList" of fixed length lists.
       
   161 
       
   162 * New Theory "HOL-Library.Code_Abstract_Char" implements characters by
       
   163 target language integers, sacrificing pattern patching in exchange for
       
   164 dramatically increased performance for comparisons.
       
   165 
       
   166 * Theory "HOL-Library.Char_ord": streamlined logical specifications.
       
   167 Minor INCOMPATIBILITY.
       
   168 
   189 * Theory "HOL-Library.Multiset":
   169 * Theory "HOL-Library.Multiset":
   190   - Consolidated operation and fact names.
   170   - Consolidated operation and fact names.
   191         multp ~> multp_code
   171         multp ~> multp_code
   192         multeqp ~> multeqp_code
   172         multeqp ~> multeqp_code
   193         multp_cancel_add_mset ~> multp_cancel_add_mset0
   173         multp_cancel_add_mset ~> multp_cancel_add_mset0
   212       image_mset_filter_mset_swap
   192       image_mset_filter_mset_swap
   213       monotone_multp_multp_image_mset
   193       monotone_multp_multp_image_mset
   214       monotone_on_multp_multp_image_mset
   194       monotone_on_multp_multp_image_mset
   215       multp_image_mset_image_msetD
   195       multp_image_mset_image_msetD
   216 
   196 
   217 * Theory "HOL-Library.Sublist":
   197 * Theory "HOL-Library.Sublist": added lemma map_mono_strict_suffix.
   218   - Added lemma map_mono_strict_suffix.
   198 
   219 
   199 * Theory "HOL-ex.Sum_of_Powers" has been deleted. The same material is
   220 * Theory "HOL-ex.Sum_of_Powers":
   200 in the AFP as Bernoulli.
   221   - Deleted. The same material is in the AFP as Bernoulli.
   201 
   222 
   202 * Session HOL-Algebra: some facts have been renamed to avoid fact name
   223 * Nitpick: To avoid technical issues, prefer non-JNI solvers to JNI solvers by
   203 clashes on interpretation:
   224   default. Minor INCOMPATIBILITY.
   204 
       
   205     is_ring ~> ring_axioms
       
   206     cring ~> cring_axioms
       
   207     R_def ~> R_m_def
       
   208 
       
   209 INCOMPATIBILITY.
       
   210 
       
   211 * Nitpick: To avoid technical issues, prefer non-JNI solvers to JNI
       
   212 solvers by default. Minor INCOMPATIBILITY.
   225 
   213 
   226 * Sledgehammer:
   214 * Sledgehammer:
   227   - Redesigned multithreading to provide more fine grained prover schedules.
   215   - Redesigned multithreading to provide more fine grained prover
   228     The binary option 'slice' has been replaced by a numeric value 'slices'
   216     schedules. The binary option 'slice' has been replaced by a numeric
   229     indicating the number of desired slices. Stronger provers can now be run by
   217     value 'slices' indicating the number of desired slices. Stronger
   230     more than one thread simultaneously. The new option 'max_proofs' controls
   218     provers can now be run by more than one thread simultaneously. The
   231     the number of proofs shown. INCOMPATIBILITY.
   219     new option 'max_proofs' controls the number of proofs shown.
   232   - Introduced sledgehammer_outcome data type and changed return type of ML
   220     INCOMPATIBILITY.
   233     function Sledgehammer.run_sledgehammer from "bool * (string * string list)"
   221   - Introduced sledgehammer_outcome data type and changed return type of
   234     to "bool * (sledgehammer_outcome * string)". The former value can be
   222     ML function Sledgehammer.run_sledgehammer from "bool * (string *
   235     recomputed with "apsnd (ATP_Util.map_prod
   223     string list)" to "bool * (sledgehammer_outcome * string)". The
       
   224     former value can be recomputed with "apsnd (ATP_Util.map_prod
   236     Sledgehammer.short_string_of_sledgehammer_outcome single)".
   225     Sledgehammer.short_string_of_sledgehammer_outcome single)".
   237     INCOMPATIBILITY.
   226     INCOMPATIBILITY.
   238   - Added support for TX0 and TX1 TPTP formats and $ite/$let expressions
   227   - Added support for TX0 and TX1 TPTP formats and $ite/$let expressions
   239     in TH0 and TH1.
   228     in TH0 and TH1.
   240   - Added support for cvc5.
   229   - Added support for cvc5.
   241   - Generate Isar proofs by default when and only when the one-liner proof
   230   - Generate Isar proofs by default when and only when the one-liner
   242     fails to replay and the Isar proof succeeds.
   231     proof fails to replay and the Isar proof succeeds.
   243   - Replaced option "sledgehammer_atp_dest_dir" by
   232   - Replaced option "sledgehammer_atp_dest_dir" by
   244     "sledgehammer_atp_problem_dest_dir", for problem files, and
   233     "sledgehammer_atp_problem_dest_dir", for problem files, and
   245     "sledgehammer_atp_proof_dest_dir", for proof files. Minor INCOMPATIBILITY.
   234     "sledgehammer_atp_proof_dest_dir", for proof files. Minor
       
   235     INCOMPATIBILITY.
   246   - Removed support for experimental prover 'z3_tptp'.
   236   - Removed support for experimental prover 'z3_tptp'.
   247   - The fastest successfully preplayed proof is always suggested.
   237   - The fastest successfully preplayed proof is always suggested.
   248   - All SMT solvers but Z3 now resort to suggest (smt (verit)) when no proof
   238   - All SMT solvers but Z3 now resort to suggest (smt (verit)) when no
   249     could be preplayed.
   239     proof could be preplayed.
   250   - Added new "some_preplayed" value to "expect" option to specify that some
   240   - Added new "some_preplayed" value to "expect" option to specify that
   251     successfully preplayed proof is expected. This is in contrast to the "some"
   241     some successfully preplayed proof is expected. This is in contrast
   252     value which doesn't specify whether preplay succeeds or not.
   242     to the "some" value which doesn't specify whether preplay succeeds
       
   243     or not.
   253 
   244 
   254 * Mirabelle:
   245 * Mirabelle:
   255   - Replaced sledgehammer option "keep" by
   246   - Replaced sledgehammer option "keep" by "keep_probs", for problems
   256     "keep_probs", for problems files, and
   247     files, and "keep_proofs" for proof files. Minor INCOMPATIBILITY.
   257     "keep_proofs" for proof files. Minor INCOMPATIBILITY.
   248   - Added option "-r INT" to randomize the goals with a given 64-bit
   258   - Added option "-r INT" to randomize the goals with a given 64-bit seed before
   249     seed before selection.
   259     selection.
       
   260   - Added option "-y" for a dry run.
   250   - Added option "-y" for a dry run.
   261   - Renamed run_action to run in Mirabelle.action record. Minor INCOMPATIBILITY.
   251   - Renamed run_action to run in Mirabelle.action record. Minor
       
   252     INCOMPATIBILITY.
   262   - Run the actions on goals before commands "unfolding" and "using".
   253   - Run the actions on goals before commands "unfolding" and "using".
   263 
       
   264 * Meson
       
   265   - Added support for polymorphic "using" facts. Minor INCOMPATIBILITY.
       
   266 
   254 
   267 * (Co)datatype package:
   255 * (Co)datatype package:
   268   - BNFs now require a strict cardinality bound (<o instead of \<le>o).
   256   - BNFs now require a strict cardinality bound (<o instead of \<le>o).
   269     Minor INCOMPATIBILITY for existing manual BNF declarations.
   257     Minor INCOMPATIBILITY for existing manual BNF declarations.
   270   - Lemma map_ident_strong is now generated for all BNFs.
   258   - Lemma map_ident_strong is now generated for all BNFs.
   271 
   259 
   272 * More ambitious minimization of case expressions in generated code.
   260 * More ambitious minimization of case expressions in generated code.
   273 
   261 
   274 * Code generation for Scala: type annotations in pattern bindings
   262 * Code generation for Scala: type annotations in pattern bindings are
   275   are printed in a way suitable for Scala 3.
   263 printed in a way suitable for Scala 3.
   276 
   264 
   277 
   265 
   278 *** ML ***
   266 *** ML ***
   279 
   267 
   280 * Type Bytes.T supports scalable byte strings, beyond the limit of
   268 * Type Bytes.T supports scalable byte strings, beyond the limit of
   292 compiler ("dotty") and a quite different source language (we are using
   280 compiler ("dotty") and a quite different source language (we are using
   293 the classic Java-style syntax, not the new Python-style syntax).
   281 the classic Java-style syntax, not the new Python-style syntax).
   294 Occasional INCOMPATIBILITY, see also the official Scala documentation
   282 Occasional INCOMPATIBILITY, see also the official Scala documentation
   295 https://docs.scala-lang.org/scala3/guides/migration/compatibility-intro.html
   283 https://docs.scala-lang.org/scala3/guides/migration/compatibility-intro.html
   296 
   284 
   297 * Command-line tool "isabelle log" has been refined to support multiple
   285 * External Isabelle tools implemented as .scala scripts are no longer
   298 sessions, and to match messages against regular expressions (using Java
   286 supported. INCOMPATIBILITY, instead provide a proper Isabelle/Scala
   299 Pattern syntax).
   287 module with etc/build.props and "services" for a suitable class instance
       
   288 of isabelle.Isabelle_Scala_Tools. For example, see
       
   289 $ISABELLE_HOME/etc/build.props and its isabelle.Tools, which defines the
       
   290 standard Isabelle tools.
       
   291 
       
   292 * The session build database now maintains an additional "uuid" column
       
   293 to identity the original build process uniquely. Thus other tools may
       
   294 dependent symbolically on a particular build instance.
   300 
   295 
   301 * Command-line tool "isabelle scala_project" supports Gradle as
   296 * Command-line tool "isabelle scala_project" supports Gradle as
   302 alternative to Maven: either option -G or -M needs to be specified
   297 alternative to Maven: either option -G or -M needs to be specified
   303 explicitly. This increases the chances that the Java/Scala IDE project
   298 explicitly. This increases the chances that the Java/Scala IDE project
   304 works properly.
   299 works properly.
   312 jars and sessions images may be uploaded as well, to avoid redundant
   307 jars and sessions images may be uploaded as well, to avoid redundant
   313 builds on the remote side. This tool requires a Mercurial clone of the
   308 builds on the remote side. This tool requires a Mercurial clone of the
   314 Isabelle repository: a regular download of the distribution will not
   309 Isabelle repository: a regular download of the distribution will not
   315 work!
   310 work!
   316 
   311 
   317 * The session build database now maintains an additional "uuid" column
   312 * Command-line tool "isabelle log" has been refined to support multiple
   318 to identity the original build process uniquely. Thus other tools may
   313 sessions, and to match messages against regular expressions (using Java
   319 dependent symbolically on a particular build instance.
   314 Pattern syntax).
   320 
   315 
   321 * External Isabelle tools implemented as .scala scripts are no longer
   316 * System option "show_states" controls output of toplevel command states
   322 supported. INCOMPATIBILITY, instead provide a proper Isabelle/Scala
   317 (notably proof states) in batch-builds; in interactive mode this is
   323 module with etc/build.props and "services" for a suitable class instance
   318 always done on demand. The option is relevant for tools that operate on
   324 of isabelle.Isabelle_Scala_Tools. For example, see
   319 exported PIDE markup, e.g. document presentation or diagnostics. For
   325 $ISABELLE_HOME/etc/build.props and its isabelle.Tools, which defines the
   320 example:
   326 standard Isabelle tools.
   321 
       
   322   isabelle build -o show_states FOL-ex
       
   323   isabelle log -v -U FOL-ex
       
   324 
       
   325 Option "show_states" is also the default for the configuration option
       
   326 "show_results" within the formal context.
       
   327 
       
   328 Note that printing intermediate states may cause considerable slowdown
       
   329 in building a session.
   327 
   330 
   328 
   331 
   329 
   332 
   330 New in Isabelle2021-1 (December 2021)
   333 New in Isabelle2021-1 (December 2021)
   331 -------------------------------------
   334 -------------------------------------