NEWS
changeset 53971 c4156b37627f
parent 53968 814dbc4e84a3
child 53981 1f4d6870b7b2
equal deleted inserted replaced
53970:eee1863c565a 53971:c4156b37627f
     1 Isabelle NEWS -- history user-relevant changes
     1 Isabelle NEWS -- history user-relevant changes
     2 ==============================================
     2 ==============================================
     3 
     3 
     4 New in this Isabelle version
     4 New in Isabelle2013-1 (November 2013)
     5 ----------------------------
     5 -------------------------------------
     6 
     6 
     7 *** General ***
     7 *** General ***
       
     8 
       
     9 * Discontinued obsolete 'uses' within theory header.  Note that
       
    10 commands like 'ML_file' work without separate declaration of file
       
    11 dependencies.  Minor INCOMPATIBILITY.
       
    12 
       
    13 * Discontinued redundant 'use' command, which was superseded by
       
    14 'ML_file' in Isabelle2013.  Minor INCOMPATIBILITY.
     8 
    15 
     9 * Simplified subscripts within identifiers, using plain \<^sub>
    16 * Simplified subscripts within identifiers, using plain \<^sub>
    10 instead of the second copy \<^isub> and \<^isup>.  Superscripts are
    17 instead of the second copy \<^isub> and \<^isup>.  Superscripts are
    11 only for literal tokens within notation; explicit mixfix annotations
    18 only for literal tokens within notation; explicit mixfix annotations
    12 for consts or fixed variables may be used as fall-back for unusual
    19 for consts or fixed variables may be used as fall-back for unusual
    27 quick_and_dirty, instead of historical poking into mutable reference.
    34 quick_and_dirty, instead of historical poking into mutable reference.
    28 
    35 
    29 * Renamed command 'print_configs' to 'print_options'.  Minor
    36 * Renamed command 'print_configs' to 'print_options'.  Minor
    30 INCOMPATIBILITY.
    37 INCOMPATIBILITY.
    31 
    38 
    32 * Sessions may be organized via 'chapter' specifications in the ROOT
       
    33 file, which determines a two-level hierarchy of browser info.  The old
       
    34 tree-like organization via implicit sub-session relation, with its
       
    35 tendency towards erratic fluctuation of URLs, has been discontinued.
       
    36 The default chapter is "Unsorted".  Potential INCOMPATIBILITY for HTML
       
    37 presentation of theories.
       
    38 
       
    39 * Discontinued obsolete 'uses' within theory header.  Note that
       
    40 commands like 'ML_file' work without separate declaration of file
       
    41 dependencies.  Minor INCOMPATIBILITY.
       
    42 
       
    43 * Discontinued redundant 'use' command, which was superseded by
       
    44 'ML_file' in Isabelle2013.  Minor INCOMPATIBILITY.
       
    45 
       
    46 * Updated and extended "isar-ref" and "implementation" manual,
       
    47 eliminated old "ref" manual.
       
    48 
       
    49 * Proper diagnostic command 'print_state'.  Old 'pr' (with its
    39 * Proper diagnostic command 'print_state'.  Old 'pr' (with its
    50 implicit change of some global references) is retained for now as
    40 implicit change of some global references) is retained for now as
    51 control command, e.g. for ProofGeneral 3.7.x.
    41 control command, e.g. for ProofGeneral 3.7.x.
    52 
    42 
    53 * Discontinued 'print_drafts' command with its old-fashioned PS output
    43 * Discontinued 'print_drafts' command with its old-fashioned PS output
    54 and Unix command-line print spooling.  Minor INCOMPATIBILITY: use
    44 and Unix command-line print spooling.  Minor INCOMPATIBILITY: use
    55 'display_drafts' instead and print via the regular document viewer.
    45 'display_drafts' instead and print via the regular document viewer.
    56 
    46 
       
    47 * Updated and extended "isar-ref" and "implementation" manual,
       
    48 eliminated old "ref" manual.
       
    49 
    57 
    50 
    58 *** Prover IDE -- Isabelle/Scala/jEdit ***
    51 *** Prover IDE -- Isabelle/Scala/jEdit ***
    59 
    52 
    60 * File specifications in jEdit (e.g. file browser) may refer to
    53 * New manual "jedit" for Isabelle/jEdit, see isabelle doc or
    61 $ISABELLE_HOME on all platforms.  Discontinued obsolete
       
    62 $ISABELLE_HOME_WINDOWS variable.
       
    63 
       
    64 * Improved support of native Mac OS X functionality.
       
    65 
       
    66 * Separate manual "jedit" for Isabelle/jEdit, see isabelle doc or
       
    67 Documentation panel.
    54 Documentation panel.
    68 
    55 
    69 * Improved "Theories" panel: Continuous checking of proof document
    56 * Dockable window "Documentation" provides access to Isabelle
    70 (visible and required parts) may be controlled explicitly, using check
    57 documentation.
    71 box or shortcut "C+e ENTER".  Individual theory nodes may be marked
       
    72 explicitly as required and checked in full, using check box or
       
    73 shortcut "C+e SPACE".
       
    74 
       
    75 * Strictly monotonic document update, without premature cancelation of
       
    76 running transactions that are still needed: avoid reset/restart of
       
    77 such command executions while editing.
       
    78 
       
    79 * Support for asynchronous print functions, as overlay to existing
       
    80 document content.
       
    81 
       
    82 * Support for automatic tools in HOL, which try to prove or disprove
       
    83 toplevel theorem statements.
       
    84 
    58 
    85 * Dockable window "Find" provides query operations for formal entities
    59 * Dockable window "Find" provides query operations for formal entities
    86 (GUI front-end to 'find_theorems' command).
    60 (GUI front-end to 'find_theorems' command).
    87 
       
    88 * Dockable window "Documentation" provides access to Isabelle
       
    89 documentation.
       
    90 
    61 
    91 * Dockable window "Sledgehammer" manages asynchronous / parallel
    62 * Dockable window "Sledgehammer" manages asynchronous / parallel
    92 sledgehammer runs over existing document sources, independently of
    63 sledgehammer runs over existing document sources, independently of
    93 normal editing and checking process.
    64 normal editing and checking process.
    94 
    65 
    95 * Dockable window "Timing" provides an overview of relevant command
    66 * Dockable window "Timing" provides an overview of relevant command
    96 timing information.
    67 timing information.
    97 
    68 
    98 * Action isabelle.reset-font-size resets main text area font size
    69 * Improved dockable window "Theories": Continuous checking of proof
    99 according to Isabelle/Scala plugin option "jedit_font_reset_size"
    70 document (visible and required parts) may be controlled explicitly,
   100 (cf. keyboard shortcut C+0).
    71 using check box or shortcut "C+e ENTER".  Individual theory nodes may
   101 
    72 be marked explicitly as required and checked in full, using check box
   102 * Improved support for Linux look-and-feel "GTK+", see also "Utilities
    73 or shortcut "C+e SPACE".
   103 / Global Options / Appearance".
    74 
       
    75 * Strictly monotonic document update, without premature cancellation of
       
    76 running transactions that are still needed: avoid reset/restart of
       
    77 such command executions while editing.
   104 
    78 
   105 * Improved completion mechanism, which is now managed by the
    79 * Improved completion mechanism, which is now managed by the
   106 Isabelle/jEdit plugin instead of SideKick.
    80 Isabelle/jEdit plugin instead of SideKick.
   107 
    81 
   108   - Various Isabelle plugin options to control popup behaviour and
    82   - Various Isabelle plugin options to control popup behavior and
   109     immediate insertion into buffer.
    83     immediate insertion into buffer.
   110 
    84 
   111   - Light-weight popup, which avoids explicit window (more reactive
    85   - Light-weight popup, which avoids explicit window (more reactive
   112     and more robust).  Interpreted key events include TAB, ESCAPE, UP,
    86     and more robust).  Interpreted key events include TAB, ESCAPE, UP,
   113     DOWN, PAGE_UP, PAGE_DOWN.  All other key events are passed to
    87     DOWN, PAGE_UP, PAGE_DOWN.  All other key events are passed to
   132     \<forall> in its Unicode rendering.
   106     \<forall> in its Unicode rendering.
   133 
   107 
   134   - Refined table of Isabelle symbol abbreviations (see
   108   - Refined table of Isabelle symbol abbreviations (see
   135     $ISABELLE_HOME/etc/symbols).
   109     $ISABELLE_HOME/etc/symbols).
   136 
   110 
       
   111 * Support for asynchronous print functions, as overlay to existing
       
   112 document content.
       
   113 
       
   114 * Support for automatic tools in HOL, which try to prove or disprove
       
   115 toplevel theorem statements.
       
   116 
       
   117 * Action isabelle.reset-font-size resets main text area font size
       
   118 according to Isabelle/Scala plugin option "jedit_font_reset_size"
       
   119 (cf. keyboard shortcut C+0).
       
   120 
       
   121 * File specifications in jEdit (e.g. file browser) may refer to
       
   122 $ISABELLE_HOME on all platforms.  Discontinued obsolete
       
   123 $ISABELLE_HOME_WINDOWS variable.
       
   124 
       
   125 * Improved support for Linux look-and-feel "GTK+", see also "Utilities
       
   126 / Global Options / Appearance".
       
   127 
       
   128 * Improved support of native Mac OS X functionality via "MacOSX"
       
   129 plugin, which is now enabled by default.
       
   130 
   137 
   131 
   138 *** Pure ***
   132 *** Pure ***
   139 
   133 
   140 * Former global reference trace_unify_fail is now available as
   134 * Target-sensitive commands 'interpretation' and 'sublocale'.
   141 configuration option "unify_trace_failure" (global context only).
   135 Particularly, 'interpretation' now allows for non-persistent
   142 
   136 interpretation within "context ... begin ... end" blocks.  See
   143 * Type theory is now immutable, without any special treatment of
   137 "isar-ref" manual for details.
   144 drafts or linear updates (which could lead to "stale theory" errors in
   138 
   145 the past).  Discontinued obsolete operations like Theory.copy,
   139 * Improved locales diagnostic command 'print_dependencies'.
   146 Theory.checkpoint, and the auxiliary type theory_ref.  Minor
   140 
       
   141 * Discontinued obsolete 'axioms' command, which has been marked as
       
   142 legacy since Isabelle2009-2.  INCOMPATIBILITY, use 'axiomatization'
       
   143 instead, while observing its uniform scope for polymorphism.
       
   144 
       
   145 * Discontinued empty name bindings in 'axiomatization'.
   147 INCOMPATIBILITY.
   146 INCOMPATIBILITY.
   148 
   147 
   149 * System option "proofs" has been discontinued.  Instead the global
   148 * System option "proofs" has been discontinued.  Instead the global
   150 state of Proofterm.proofs is persistently compiled into logic images
   149 state of Proofterm.proofs is persistently compiled into logic images
   151 as required, notably HOL-Proofs.  Users no longer need to change
   150 as required, notably HOL-Proofs.  Users no longer need to change
   153 
   152 
   154 * Syntax translation functions (print_translation etc.) always depend
   153 * Syntax translation functions (print_translation etc.) always depend
   155 on Proof.context.  Discontinued former "(advanced)" option -- this is
   154 on Proof.context.  Discontinued former "(advanced)" option -- this is
   156 now the default.  Minor INCOMPATIBILITY.
   155 now the default.  Minor INCOMPATIBILITY.
   157 
   156 
   158 * Target-sensitive commands 'interpretation' and 'sublocale'.
   157 * Former global reference trace_unify_fail is now available as
   159 Particulary, 'interpretation' now allows for non-persistent
   158 configuration option "unify_trace_failure" (global context only).
   160 interpretation within "context ... begin ... end" blocks.  See
       
   161 "isar-ref" manual for details.
       
   162 
       
   163 * Improved locales diagnostic command 'print_dependencies'.
       
   164 
       
   165 * Discontinued obsolete 'axioms' command, which has been marked as
       
   166 legacy since Isabelle2009-2.  INCOMPATIBILITY, use 'axiomatization'
       
   167 instead, while observing its uniform scope for polymorphism.
       
   168 
       
   169 * Discontinued empty name bindings in 'axiomatization'.
       
   170 INCOMPATIBILITY.
       
   171 
   159 
   172 * SELECT_GOAL now retains the syntactic context of the overall goal
   160 * SELECT_GOAL now retains the syntactic context of the overall goal
   173 state (schematic variables etc.).  Potential INCOMPATIBILITY in rare
   161 state (schematic variables etc.).  Potential INCOMPATIBILITY in rare
   174 situations.
   162 situations.
   175 
   163 
   419 with HOL's type classes for rings.  INCOMPATIBILITY.
   407 with HOL's type classes for rings.  INCOMPATIBILITY.
   420 
   408 
   421 
   409 
   422 *** ML ***
   410 *** ML ***
   423 
   411 
       
   412 * Spec_Check is a Quickcheck tool for Isabelle/ML.  The ML function
       
   413 "check_property" allows to check specifications of the form "ALL x y
       
   414 z. prop x y z".  See also ~~/src/Tools/Spec_Check/ with its
       
   415 Examples.thy in particular.
       
   416 
   424 * Improved printing of exception trace in Poly/ML 5.5.1, with regular
   417 * Improved printing of exception trace in Poly/ML 5.5.1, with regular
   425 tracing output in the command transaction context instead of physical
   418 tracing output in the command transaction context instead of physical
   426 stdout.  See also Toplevel.debug, Toplevel.debugging and
   419 stdout.  See also Toplevel.debug, Toplevel.debugging and
   427 ML_Compiler.exn_trace.
   420 ML_Compiler.exn_trace.
   428 
   421 
   429 * Spec_Check is a Quickcheck tool for Isabelle/ML.  The ML function
   422 * ML type "theory" is now immutable, without any special treatment of
   430 "check_property" allows to check specifications of the form "ALL x y
   423 drafts or linear updates (which could lead to "stale theory" errors in
   431 z. prop x y z".  See also ~~/src/Tools/Spec_Check/ with its
   424 the past).  Discontinued obsolete operations like Theory.copy,
   432 Examples.thy in particular.
   425 Theory.checkpoint, and the auxiliary type theory_ref.  Minor
       
   426 INCOMPATIBILITY.
   433 
   427 
   434 * More uniform naming of goal functions for skipped proofs:
   428 * More uniform naming of goal functions for skipped proofs:
   435 
   429 
   436     Skip_Proof.prove  ~>  Goal.prove_sorry
   430     Skip_Proof.prove  ~>  Goal.prove_sorry
   437     Skip_Proof.prove_global  ~>  Goal.prove_sorry_global
   431     Skip_Proof.prove_global  ~>  Goal.prove_sorry_global
   438 
   432 
   439 * Antiquotation @{theory_context A} is similar to @{theory A}, but
   433 Minor INCOMPATIBILITY.
   440 presents the result as initial Proof.context.
       
   441 
       
   442 * Modifiers for classical wrappers (e.g. addWrapper, delWrapper)
       
   443 operate on Proof.context instead of claset, for uniformity with addIs,
       
   444 addEs, addDs etc. Note that claset_of and put_claset allow to manage
       
   445 clasets separately from the context.
       
   446 
   434 
   447 * Simplifier tactics and tools use proper Proof.context instead of
   435 * Simplifier tactics and tools use proper Proof.context instead of
   448 historic type simpset.  Old-style declarations like addsimps,
   436 historic type simpset.  Old-style declarations like addsimps,
   449 addsimprocs etc. operate directly on Proof.context.  Raw type simpset
   437 addsimprocs etc. operate directly on Proof.context.  Raw type simpset
   450 retains its use as snapshot of the main Simplifier context, using
   438 retains its use as snapshot of the main Simplifier context, using
   451 simpset_of and put_simpset on Proof.context.  INCOMPATIBILITY -- port
   439 simpset_of and put_simpset on Proof.context.  INCOMPATIBILITY -- port
   452 old tools by making them depend on (ctxt : Proof.context) instead of
   440 old tools by making them depend on (ctxt : Proof.context) instead of
   453 (ss : simpset), then turn (simpset_of ctxt) into ctxt.
   441 (ss : simpset), then turn (simpset_of ctxt) into ctxt.
   454 
   442 
       
   443 * Modifiers for classical wrappers (e.g. addWrapper, delWrapper)
       
   444 operate on Proof.context instead of claset, for uniformity with addIs,
       
   445 addEs, addDs etc. Note that claset_of and put_claset allow to manage
       
   446 clasets separately from the context.
       
   447 
   455 * Discontinued obsolete ML antiquotations @{claset} and @{simpset}.
   448 * Discontinued obsolete ML antiquotations @{claset} and @{simpset}.
   456 INCOMPATIBILITY, use @{context} instead.
   449 INCOMPATIBILITY, use @{context} instead.
       
   450 
       
   451 * Antiquotation @{theory_context A} is similar to @{theory A}, but
       
   452 presents the result as initial Proof.context.
   457 
   453 
   458 
   454 
   459 *** System ***
   455 *** System ***
   460 
   456 
   461 * Discontinued obsolete isabelle usedir, mkdir, make -- superseded by
   457 * Discontinued obsolete isabelle usedir, mkdir, make -- superseded by
   478 to run Isabelle/Scala source files as standalone programs.
   474 to run Isabelle/Scala source files as standalone programs.
   479 
   475 
   480 * Improved "isabelle keywords" tool (for old-style ProofGeneral
   476 * Improved "isabelle keywords" tool (for old-style ProofGeneral
   481 keyword tables): use Isabelle/Scala operations, which inspect outer
   477 keyword tables): use Isabelle/Scala operations, which inspect outer
   482 syntax without requiring to build sessions first.
   478 syntax without requiring to build sessions first.
       
   479 
       
   480 * Sessions may be organized via 'chapter' specifications in the ROOT
       
   481 file, which determines a two-level hierarchy of browser info.  The old
       
   482 tree-like organization via implicit sub-session relation (with its
       
   483 tendency towards erratic fluctuation of URLs) has been discontinued.
       
   484 The default chapter is called "Unsorted".  Potential INCOMPATIBILITY
       
   485 for HTML presentation of theories.
   483 
   486 
   484 
   487 
   485 
   488 
   486 New in Isabelle2013 (February 2013)
   489 New in Isabelle2013 (February 2013)
   487 -----------------------------------
   490 -----------------------------------