NEWS
author haftmann
Mon, 17 Nov 2008 17:00:21 +0100
changeset 28819 daca685d7bb7
parent 28741 1b257449f804
child 28855 5d21a3e7303c
permissions -rw-r--r--
whitespace tuning
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5363
0cf15843b82f isatool install;
wenzelm
parents: 5332
diff changeset
     1
Isabelle NEWS -- history user-relevant changes
0cf15843b82f isatool install;
wenzelm
parents: 5332
diff changeset
     2
==============================================
2553
ed941505cab7 Isabelle NEWS -- history of user-visible changes;
wenzelm
parents:
diff changeset
     3
27122
63d92a5e3784 proper news header;
wenzelm
parents: 27104
diff changeset
     4
New in this Isabelle version
63d92a5e3784 proper news header;
wenzelm
parents: 27104
diff changeset
     5
----------------------------
27104
791607529f6d rep_datatype command now takes list of constructors as input arguments
haftmann
parents: 27067
diff changeset
     6
27599
ca23ef50c178 added command 'linear_undo';
wenzelm
parents: 27556
diff changeset
     7
*** General ***
ca23ef50c178 added command 'linear_undo';
wenzelm
parents: 27556
diff changeset
     8
28504
7ad7d7d6df47 simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents: 28475
diff changeset
     9
* Simplified main Isabelle executables, with less surprises on
7ad7d7d6df47 simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents: 28475
diff changeset
    10
case-insensitive file-systems (such as Mac OS).
7ad7d7d6df47 simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents: 28475
diff changeset
    11
7ad7d7d6df47 simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents: 28475
diff changeset
    12
  - The main Isabelle tool wrapper is now called "isabelle" instead of
7ad7d7d6df47 simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents: 28475
diff changeset
    13
    "isatool."
7ad7d7d6df47 simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents: 28475
diff changeset
    14
7ad7d7d6df47 simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents: 28475
diff changeset
    15
  - The former "isabelle" alias for "isabelle-process" has been
7ad7d7d6df47 simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents: 28475
diff changeset
    16
    removed (should rarely occur to regular users).
7ad7d7d6df47 simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents: 28475
diff changeset
    17
7ad7d7d6df47 simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents: 28475
diff changeset
    18
  - The "Isabelle" alias for "isabelle-interface" has been removed.
7ad7d7d6df47 simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents: 28475
diff changeset
    19
7ad7d7d6df47 simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents: 28475
diff changeset
    20
Within scripts and make files, the Isabelle environment variables
7ad7d7d6df47 simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents: 28475
diff changeset
    21
ISABELLE_TOOL and ISABELLE_PROCESS replace old ISATOOL and ISABELLE,
7ad7d7d6df47 simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents: 28475
diff changeset
    22
respectively.  (The latter are still available as legacy feature.)
7ad7d7d6df47 simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents: 28475
diff changeset
    23
7ad7d7d6df47 simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents: 28475
diff changeset
    24
Also note that user interfaces are now better wrapped as regular
7ad7d7d6df47 simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents: 28475
diff changeset
    25
Isabelle tools instead of using the special isabelle-interface wrapper
7ad7d7d6df47 simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents: 28475
diff changeset
    26
(which can be confusing if the interface is uninstalled or changed
7ad7d7d6df47 simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents: 28475
diff changeset
    27
otherwise).  See "isabelle tty" and "isabelle emacs" for contemporary
7ad7d7d6df47 simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents: 28475
diff changeset
    28
examples.
7ad7d7d6df47 simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents: 28475
diff changeset
    29
7ad7d7d6df47 simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents: 28475
diff changeset
    30
INCOMPATIBILITY, need to adapt derivative scripts.  Users may need to
7ad7d7d6df47 simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents: 28475
diff changeset
    31
purge installed copies of Isabelle executables and re-run "isabelle
7ad7d7d6df47 simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents: 28475
diff changeset
    32
install -p ...", or use symlinks.
7ad7d7d6df47 simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
wenzelm
parents: 28475
diff changeset
    33
28252
79b8efed66bf updated system manual;
wenzelm
parents: 28248
diff changeset
    34
* The Isabelle System Manual (system) has been updated, with formally
79b8efed66bf updated system manual;
wenzelm
parents: 28248
diff changeset
    35
checked references as hyperlinks.
79b8efed66bf updated system manual;
wenzelm
parents: 28248
diff changeset
    36
27599
ca23ef50c178 added command 'linear_undo';
wenzelm
parents: 27556
diff changeset
    37
* Generalized Isar history, with support for linear undo, direct state
ca23ef50c178 added command 'linear_undo';
wenzelm
parents: 27556
diff changeset
    38
addressing etc.
27104
791607529f6d rep_datatype command now takes list of constructors as input arguments
haftmann
parents: 27067
diff changeset
    39
27191
0fe5b95797da * Recovered hiding of consts;
wenzelm
parents: 27145
diff changeset
    40
* Recovered hiding of consts, which was accidentally broken in
0fe5b95797da * Recovered hiding of consts;
wenzelm
parents: 27145
diff changeset
    41
Isabelle2007.  Potential INCOMPATIBILITY, ``hide const c'' really
0fe5b95797da * Recovered hiding of consts;
wenzelm
parents: 27145
diff changeset
    42
makes c inaccessible; consider using ``hide (open) const c'' instead.
0fe5b95797da * Recovered hiding of consts;
wenzelm
parents: 27145
diff changeset
    43
27599
ca23ef50c178 added command 'linear_undo';
wenzelm
parents: 27556
diff changeset
    44
* Removed exotic 'token_translation' command.  INCOMPATIBILITY, use ML
ca23ef50c178 added command 'linear_undo';
wenzelm
parents: 27556
diff changeset
    45
interface instead.
ca23ef50c178 added command 'linear_undo';
wenzelm
parents: 27556
diff changeset
    46
ca23ef50c178 added command 'linear_undo';
wenzelm
parents: 27556
diff changeset
    47
ca23ef50c178 added command 'linear_undo';
wenzelm
parents: 27556
diff changeset
    48
*** Pure ***
ca23ef50c178 added command 'linear_undo';
wenzelm
parents: 27556
diff changeset
    49
28629
c5a915b45390 goal-directed proof now enforces strict proof irrelevance wrt. sort hypotheses;
wenzelm
parents: 28606
diff changeset
    50
* Goal-directed proof now enforces strict proof irrelevance wrt. sort
c5a915b45390 goal-directed proof now enforces strict proof irrelevance wrt. sort hypotheses;
wenzelm
parents: 28606
diff changeset
    51
hypotheses.  Sorts required in the course of reasoning need to be
c5a915b45390 goal-directed proof now enforces strict proof irrelevance wrt. sort hypotheses;
wenzelm
parents: 28606
diff changeset
    52
covered by the constraints in the initial statement, completed by the
c5a915b45390 goal-directed proof now enforces strict proof irrelevance wrt. sort hypotheses;
wenzelm
parents: 28606
diff changeset
    53
type instance information of the background theory.  Non-trivial sort
c5a915b45390 goal-directed proof now enforces strict proof irrelevance wrt. sort hypotheses;
wenzelm
parents: 28606
diff changeset
    54
hypotheses, which rarely occur in practice, may be specified via
28633
wenzelm
parents: 28631
diff changeset
    55
vacuous propositions of the form SORT_CONSTRAINT('a::c).  For example:
28629
c5a915b45390 goal-directed proof now enforces strict proof irrelevance wrt. sort hypotheses;
wenzelm
parents: 28606
diff changeset
    56
c5a915b45390 goal-directed proof now enforces strict proof irrelevance wrt. sort hypotheses;
wenzelm
parents: 28606
diff changeset
    57
  lemma assumes "SORT_CONSTRAINT('a::empty)" shows False ...
c5a915b45390 goal-directed proof now enforces strict proof irrelevance wrt. sort hypotheses;
wenzelm
parents: 28606
diff changeset
    58
c5a915b45390 goal-directed proof now enforces strict proof irrelevance wrt. sort hypotheses;
wenzelm
parents: 28606
diff changeset
    59
The result contains an implicit sort hypotheses as before --
28631
wenzelm
parents: 28629
diff changeset
    60
SORT_CONSTRAINT premises are eliminated as part of the canonical rule
wenzelm
parents: 28629
diff changeset
    61
normalization.
28629
c5a915b45390 goal-directed proof now enforces strict proof irrelevance wrt. sort hypotheses;
wenzelm
parents: 28606
diff changeset
    62
28178
e56b8b044bef * Changed defaults for unify configuration options;
wenzelm
parents: 28143
diff changeset
    63
* Changed defaults for unify configuration options:
e56b8b044bef * Changed defaults for unify configuration options;
wenzelm
parents: 28143
diff changeset
    64
e56b8b044bef * Changed defaults for unify configuration options;
wenzelm
parents: 28143
diff changeset
    65
  unify_trace_bound = 50 (formerly 25)
e56b8b044bef * Changed defaults for unify configuration options;
wenzelm
parents: 28143
diff changeset
    66
  unify_search_bound = 60 (formerly 30)
e56b8b044bef * Changed defaults for unify configuration options;
wenzelm
parents: 28143
diff changeset
    67
28143
e5c6c4aac52c different bookkeeping for code equations
haftmann
parents: 28114
diff changeset
    68
* Different bookkeeping for code equations:
e5c6c4aac52c different bookkeeping for code equations
haftmann
parents: 28114
diff changeset
    69
  a) On theory merge, the last set of code equations for a particular constant
e5c6c4aac52c different bookkeeping for code equations
haftmann
parents: 28114
diff changeset
    70
     is taken (in accordance with the policy applied by other parts of the
e5c6c4aac52c different bookkeeping for code equations
haftmann
parents: 28114
diff changeset
    71
     code generator framework).
e5c6c4aac52c different bookkeeping for code equations
haftmann
parents: 28114
diff changeset
    72
  b) Code equations stemming from explicit declarations (e.g. code attribute)
e5c6c4aac52c different bookkeeping for code equations
haftmann
parents: 28114
diff changeset
    73
     gain priority over default code equations stemming from definition, primrec,
e5c6c4aac52c different bookkeeping for code equations
haftmann
parents: 28114
diff changeset
    74
     fun etc.
e5c6c4aac52c different bookkeeping for code equations
haftmann
parents: 28114
diff changeset
    75
  INCOMPATIBILITY.
e5c6c4aac52c different bookkeeping for code equations
haftmann
parents: 28114
diff changeset
    76
28058
309c0a92e0da dropped parameter prefix for class theorems
haftmann
parents: 27979
diff changeset
    77
* Global versions of theorems stemming from classes do not carry
309c0a92e0da dropped parameter prefix for class theorems
haftmann
parents: 27979
diff changeset
    78
a parameter prefix any longer.  INCOMPATIBILITY.
309c0a92e0da dropped parameter prefix for class theorems
haftmann
parents: 27979
diff changeset
    79
28710
e2064974c114 Dropped context element 'includes'.
ballarin
parents: 28700
diff changeset
    80
* Dropped locale element "includes".  This is a major INCOMPATIBILITY.
e2064974c114 Dropped context element 'includes'.
ballarin
parents: 28700
diff changeset
    81
In existing theorem specifications replace the includes element by the
e2064974c114 Dropped context element 'includes'.
ballarin
parents: 28700
diff changeset
    82
respective context elements of the included locale, omitting those that
e2064974c114 Dropped context element 'includes'.
ballarin
parents: 28700
diff changeset
    83
are already present in the theorem specification.  Multiple assume
e2064974c114 Dropped context element 'includes'.
ballarin
parents: 28700
diff changeset
    84
elements of a locale should be replaced by a single one involving the
e2064974c114 Dropped context element 'includes'.
ballarin
parents: 28700
diff changeset
    85
locale predicate.  In the proof body, declarations (most notably
e2064974c114 Dropped context element 'includes'.
ballarin
parents: 28700
diff changeset
    86
theorems) may be regained by interpreting the respective locales in the
e2064974c114 Dropped context element 'includes'.
ballarin
parents: 28700
diff changeset
    87
proof context as required (command "interpret").
e2064974c114 Dropped context element 'includes'.
ballarin
parents: 28700
diff changeset
    88
If using "includes" in replacement of a target solely because the
e2064974c114 Dropped context element 'includes'.
ballarin
parents: 28700
diff changeset
    89
parameter types in the theorem are not as general as in the target,
e2064974c114 Dropped context element 'includes'.
ballarin
parents: 28700
diff changeset
    90
consider declaring a new locale with additional type constraints on the
e2064974c114 Dropped context element 'includes'.
ballarin
parents: 28700
diff changeset
    91
parameters (context element "constrains").
e2064974c114 Dropped context element 'includes'.
ballarin
parents: 28700
diff changeset
    92
27761
b95e9ba0ca1d Interpretation command (theory/proof context) no longer simplifies goal.
ballarin
parents: 27717
diff changeset
    93
* Dropped "locale (open)".  INCOMPATBILITY.
b95e9ba0ca1d Interpretation command (theory/proof context) no longer simplifies goal.
ballarin
parents: 27717
diff changeset
    94
28085
914183e229e9 Interpretation commands no longer accept interpretation attributes.
ballarin
parents: 28067
diff changeset
    95
* Interpretation commands no longer attempt to simplify goal.
27761
b95e9ba0ca1d Interpretation command (theory/proof context) no longer simplifies goal.
ballarin
parents: 27717
diff changeset
    96
INCOMPATIBILITY: in rare situations the generated goal differs.  Use
b95e9ba0ca1d Interpretation command (theory/proof context) no longer simplifies goal.
ballarin
parents: 27717
diff changeset
    97
methods intro_locales and unfold_locales to clarify.
27681
8cedebf55539 dropped locale (open)
haftmann
parents: 27651
diff changeset
    98
28085
914183e229e9 Interpretation commands no longer accept interpretation attributes.
ballarin
parents: 28067
diff changeset
    99
* Interpretation commands no longer accept interpretation attributes.
914183e229e9 Interpretation commands no longer accept interpretation attributes.
ballarin
parents: 28067
diff changeset
   100
INCOMPATBILITY.
914183e229e9 Interpretation commands no longer accept interpretation attributes.
ballarin
parents: 28067
diff changeset
   101
27651
16a26996c30e moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents: 27599
diff changeset
   102
* Command 'instance': attached definitions no longer accepted.
27141
9bfcdb1905e1 * Attributes cases, induct, coinduct support del option.
wenzelm
parents: 27122
diff changeset
   103
INCOMPATIBILITY, use proper 'instantiation' target.
27104
791607529f6d rep_datatype command now takes list of constructors as input arguments
haftmann
parents: 27067
diff changeset
   104
791607529f6d rep_datatype command now takes list of constructors as input arguments
haftmann
parents: 27067
diff changeset
   105
* Keyword 'code_exception' now named 'code_abort'.  INCOMPATIBILITY.
791607529f6d rep_datatype command now takes list of constructors as input arguments
haftmann
parents: 27067
diff changeset
   106
28114
2637fb838f74 axiomatization is now global-only;
wenzelm
parents: 28103
diff changeset
   107
* The 'axiomatization' command now only works within a global theory
2637fb838f74 axiomatization is now global-only;
wenzelm
parents: 28103
diff changeset
   108
context.  INCOMPATIBILITY.
2637fb838f74 axiomatization is now global-only;
wenzelm
parents: 28103
diff changeset
   109
27104
791607529f6d rep_datatype command now takes list of constructors as input arguments
haftmann
parents: 27067
diff changeset
   110
27381
19ae7064f00f @{lemma}: 'by' keyword;
wenzelm
parents: 27380
diff changeset
   111
*** Document preparation ***
19ae7064f00f @{lemma}: 'by' keyword;
wenzelm
parents: 27380
diff changeset
   112
19ae7064f00f @{lemma}: 'by' keyword;
wenzelm
parents: 27380
diff changeset
   113
* Antiquotation @{lemma} now imitates a regular terminal proof,
27392
wenzelm
parents: 27391
diff changeset
   114
demanding keyword 'by' and supporting the full method expression
27519
59b54d80d2ae slightly improved @{lemma} (both for latex and ML);
wenzelm
parents: 27485
diff changeset
   115
syntax just like the Isar command 'by'.
27381
19ae7064f00f @{lemma}: 'by' keyword;
wenzelm
parents: 27380
diff changeset
   116
19ae7064f00f @{lemma}: 'by' keyword;
wenzelm
parents: 27380
diff changeset
   117
27104
791607529f6d rep_datatype command now takes list of constructors as input arguments
haftmann
parents: 27067
diff changeset
   118
*** HOL ***
791607529f6d rep_datatype command now takes list of constructors as input arguments
haftmann
parents: 27067
diff changeset
   119
28741
1b257449f804 simproc for let
haftmann
parents: 28710
diff changeset
   120
* If methods "eval" and "evaluation" encounter a structured proof state
1b257449f804 simproc for let
haftmann
parents: 28710
diff changeset
   121
with !!/==>, only the conclusion is evaluated to True (if possible),
1b257449f804 simproc for let
haftmann
parents: 28710
diff changeset
   122
avoiding strange error messages.
1b257449f804 simproc for let
haftmann
parents: 28710
diff changeset
   123
1b257449f804 simproc for let
haftmann
parents: 28710
diff changeset
   124
* Simplifier: simproc for let expressions now unfolds if bound variable
1b257449f804 simproc for let
haftmann
parents: 28710
diff changeset
   125
occurs at most one time in let expression body.  INCOMPATIBILITY.
1b257449f804 simproc for let
haftmann
parents: 28710
diff changeset
   126
28685
275122631271 new classes "top" and "bot"
haftmann
parents: 28676
diff changeset
   127
* New classes "top" and "bot" with corresponding operations "top" and "bot"
275122631271 new classes "top" and "bot"
haftmann
parents: 28676
diff changeset
   128
in theory Orderings;  instantiation of class "complete_lattice" requires
275122631271 new classes "top" and "bot"
haftmann
parents: 28676
diff changeset
   129
instantiation of classes "top" and "bot".  INCOMPATIBILITY.
275122631271 new classes "top" and "bot"
haftmann
parents: 28676
diff changeset
   130
275122631271 new classes "top" and "bot"
haftmann
parents: 28676
diff changeset
   131
* Changed definition lemma "less_fun_def" in order to provide an instance
275122631271 new classes "top" and "bot"
haftmann
parents: 28676
diff changeset
   132
for preorders on functions;  use lemma "less_le" instead.  INCOMPATIBILITY.
275122631271 new classes "top" and "bot"
haftmann
parents: 28676
diff changeset
   133
28604
f36496b73227 generic ATP manager based on threads (by Fabian Immler);
wenzelm
parents: 28563
diff changeset
   134
* Unified theorem tables for both code code generators.  Thus
f36496b73227 generic ATP manager based on threads (by Fabian Immler);
wenzelm
parents: 28563
diff changeset
   135
[code func] has disappeared and only [code] remains.  INCOMPATIBILITY.
f36496b73227 generic ATP manager based on threads (by Fabian Immler);
wenzelm
parents: 28563
diff changeset
   136
28685
275122631271 new classes "top" and "bot"
haftmann
parents: 28676
diff changeset
   137
* Constants "undefined" and "default" replace "arbitrary".  Usually
275122631271 new classes "top" and "bot"
haftmann
parents: 28676
diff changeset
   138
"undefined" is the right choice to replace "arbitrary", though logically
275122631271 new classes "top" and "bot"
haftmann
parents: 28676
diff changeset
   139
there is no difference.  INCOMPATIBILITY.
28604
f36496b73227 generic ATP manager based on threads (by Fabian Immler);
wenzelm
parents: 28563
diff changeset
   140
f36496b73227 generic ATP manager based on threads (by Fabian Immler);
wenzelm
parents: 28563
diff changeset
   141
* Generic ATP manager for Sledgehammer, based on ML threads instead of
28605
wenzelm
parents: 28604
diff changeset
   142
Posix processes.  Avoids potentially expensive forking of the ML
wenzelm
parents: 28604
diff changeset
   143
process.  New thread-based implementation also works on non-Unix
wenzelm
parents: 28604
diff changeset
   144
platforms (Cygwin).  Provers are no longer hardwired, but defined
28606
wenzelm
parents: 28605
diff changeset
   145
within the theory via plain ML wrapper functions.  Basic Sledgehammer
wenzelm
parents: 28605
diff changeset
   146
commands are covered in the isar-ref manual
28604
f36496b73227 generic ATP manager based on threads (by Fabian Immler);
wenzelm
parents: 28563
diff changeset
   147
f36496b73227 generic ATP manager based on threads (by Fabian Immler);
wenzelm
parents: 28563
diff changeset
   148
* Wrapper scripts for remote SystemOnTPTP service allows to use
28475
wenzelm
parents: 28474
diff changeset
   149
sledgehammer without local ATP installation (Vampire etc.).  See also
wenzelm
parents: 28474
diff changeset
   150
ISABELLE_HOME/contrib/SystemOnTPTP and the VAMPIRE_HOME setting
28604
f36496b73227 generic ATP manager based on threads (by Fabian Immler);
wenzelm
parents: 28563
diff changeset
   151
variable.  Other provers may be included via suitable ML wrappers, see
f36496b73227 generic ATP manager based on threads (by Fabian Immler);
wenzelm
parents: 28563
diff changeset
   152
also src/HOL/ATP_Linkup.thy.
28474
d0b8b0a1fca5 Vampire wrapper script for remote SystemOnTPTP service (by Fabian Immler);
wenzelm
parents: 28350
diff changeset
   153
28350
715163ec93c0 non left-linear equations for nbe
haftmann
parents: 28294
diff changeset
   154
* Normalization by evaluation now allows non-leftlinear equations.
715163ec93c0 non left-linear equations for nbe
haftmann
parents: 28294
diff changeset
   155
Declare with attribute [code nbe].
715163ec93c0 non left-linear equations for nbe
haftmann
parents: 28294
diff changeset
   156
715163ec93c0 non left-linear equations for nbe
haftmann
parents: 28294
diff changeset
   157
* Command "value" now integrates different evaluation
28248
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28233
diff changeset
   158
mechanisms.  The result of the first successful evaluation mechanism
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28233
diff changeset
   159
is printed.  In square brackets a particular named evaluation
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28233
diff changeset
   160
mechanisms may be specified (currently, [SML], [code] or [nbe]).  See
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28233
diff changeset
   161
further src/HOL/ex/Eval_Examples.thy.
28227
77221ee0f7b9 generic value command
haftmann
parents: 28178
diff changeset
   162
28088
723735f2d73a * Name bindings in higher specification mechanisms;
wenzelm
parents: 28085
diff changeset
   163
* HOL/Orderings: class "wellorder" moved here, with explicit induction
723735f2d73a * Name bindings in higher specification mechanisms;
wenzelm
parents: 28085
diff changeset
   164
rule "less_induct" as assumption.  For instantiation of "wellorder" by
723735f2d73a * Name bindings in higher specification mechanisms;
wenzelm
parents: 28085
diff changeset
   165
means of predicate "wf", use rule wf_wellorderI.  INCOMPATIBILITY.
27823
52971512d1a2 moved class wellorder to theory Orderings
haftmann
parents: 27793
diff changeset
   166
27793
29ad1d91a5a3 tuned formatting;
wenzelm
parents: 27761
diff changeset
   167
* HOL/Orderings: added class "preorder" as superclass of "order".
29ad1d91a5a3 tuned formatting;
wenzelm
parents: 27761
diff changeset
   168
INCOMPATIBILITY: Instantiation proofs for order, linorder
29ad1d91a5a3 tuned formatting;
wenzelm
parents: 27761
diff changeset
   169
etc. slightly changed.  Some theorems named order_class.* now named
29ad1d91a5a3 tuned formatting;
wenzelm
parents: 27761
diff changeset
   170
preorder_class.*.
29ad1d91a5a3 tuned formatting;
wenzelm
parents: 27761
diff changeset
   171
29ad1d91a5a3 tuned formatting;
wenzelm
parents: 27761
diff changeset
   172
* HOL/Ring_and_Field and HOL/Divides: Definition of "op dvd" has been
29ad1d91a5a3 tuned formatting;
wenzelm
parents: 27761
diff changeset
   173
moved to separate class dvd in Ring_and_Field; a couple of lemmas on
29ad1d91a5a3 tuned formatting;
wenzelm
parents: 27761
diff changeset
   174
dvd has been generalized to class comm_semiring_1.  Likewise a bunch
29ad1d91a5a3 tuned formatting;
wenzelm
parents: 27761
diff changeset
   175
of lemmas from Divides has been generalized from nat to class
29ad1d91a5a3 tuned formatting;
wenzelm
parents: 27761
diff changeset
   176
semiring_div.  INCOMPATIBILITY.  This involves the following theorem
29ad1d91a5a3 tuned formatting;
wenzelm
parents: 27761
diff changeset
   177
renames resulting from duplicate elimination:
27651
16a26996c30e moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents: 27599
diff changeset
   178
16a26996c30e moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents: 27599
diff changeset
   179
    dvd_def_mod ~>          dvd_eq_mod_eq_0
16a26996c30e moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents: 27599
diff changeset
   180
    zero_dvd_iff ~>         dvd_0_left_iff
28559
55c003a5600a tuned default rules of (dvd)
haftmann
parents: 28522
diff changeset
   181
    dvd_0 ~>                dvd_0_right
27651
16a26996c30e moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents: 27599
diff changeset
   182
    DIVISION_BY_ZERO_DIV ~> div_by_0
16a26996c30e moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents: 27599
diff changeset
   183
    DIVISION_BY_ZERO_MOD ~> mod_by_0
16a26996c30e moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents: 27599
diff changeset
   184
    mult_div ~>             div_mult_self2_is_id
16a26996c30e moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents: 27599
diff changeset
   185
    mult_mod ~>             mod_mult_self2_is_0
16a26996c30e moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents: 27599
diff changeset
   186
27599
ca23ef50c178 added command 'linear_undo';
wenzelm
parents: 27556
diff changeset
   187
* HOL/Library/GCD: Curried operations gcd, lcm (for nat) and zgcd,
ca23ef50c178 added command 'linear_undo';
wenzelm
parents: 27556
diff changeset
   188
zlcm (for int); carried together from various gcd/lcm developements in
ca23ef50c178 added command 'linear_undo';
wenzelm
parents: 27556
diff changeset
   189
the HOL Distribution.  zgcd and zlcm replace former igcd and ilcm;
ca23ef50c178 added command 'linear_undo';
wenzelm
parents: 27556
diff changeset
   190
corresponding theorems renamed accordingly.  INCOMPATIBILY.  To
ca23ef50c178 added command 'linear_undo';
wenzelm
parents: 27556
diff changeset
   191
recover tupled syntax, use syntax declarations like:
27556
292098f2efdf unified curried gcd, lcm, zgcd, zlcm
haftmann
parents: 27551
diff changeset
   192
292098f2efdf unified curried gcd, lcm, zgcd, zlcm
haftmann
parents: 27551
diff changeset
   193
    hide (open) const gcd
292098f2efdf unified curried gcd, lcm, zgcd, zlcm
haftmann
parents: 27551
diff changeset
   194
    abbreviation gcd where
292098f2efdf unified curried gcd, lcm, zgcd, zlcm
haftmann
parents: 27551
diff changeset
   195
      "gcd == (%(a, b). GCD.gcd a b)"
292098f2efdf unified curried gcd, lcm, zgcd, zlcm
haftmann
parents: 27551
diff changeset
   196
    notation (output)
292098f2efdf unified curried gcd, lcm, zgcd, zlcm
haftmann
parents: 27551
diff changeset
   197
      GCD.gcd ("gcd '(_, _')")
292098f2efdf unified curried gcd, lcm, zgcd, zlcm
haftmann
parents: 27551
diff changeset
   198
292098f2efdf unified curried gcd, lcm, zgcd, zlcm
haftmann
parents: 27551
diff changeset
   199
(analogously for lcm, zgcd, zlcm).
292098f2efdf unified curried gcd, lcm, zgcd, zlcm
haftmann
parents: 27551
diff changeset
   200
292098f2efdf unified curried gcd, lcm, zgcd, zlcm
haftmann
parents: 27551
diff changeset
   201
* HOL/Real/Rational: 'Fract k 0' now equals '0'.  INCOMPATIBILITY.
27551
9a5543d4cc24 Fract now total; improved code generator setup
haftmann
parents: 27519
diff changeset
   202
27651
16a26996c30e moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents: 27599
diff changeset
   203
* New ML antiquotation @{code}: takes constant as argument, generates
16a26996c30e moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents: 27599
diff changeset
   204
corresponding code in background and inserts name of the corresponding
16a26996c30e moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents: 27599
diff changeset
   205
resulting ML value/function/datatype constructor binding in place.
16a26996c30e moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents: 27599
diff changeset
   206
All occurrences of @{code} with a single ML block are generated
16a26996c30e moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents: 27599
diff changeset
   207
simultaneously.  Provides a generic and safe interface for
16a26996c30e moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents: 27599
diff changeset
   208
instrumentalizing code generation.  See HOL/ex/Code_Antiq for a toy
16a26996c30e moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents: 27599
diff changeset
   209
example, or HOL/Complex/ex/ReflectedFerrack for a more ambitious
16a26996c30e moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents: 27599
diff changeset
   210
application.  In future you ought refrain from ad-hoc compiling
16a26996c30e moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents: 27599
diff changeset
   211
generated SML code on the ML toplevel.  Note that (for technical
16a26996c30e moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents: 27599
diff changeset
   212
reasons) @{code} cannot refer to constants for which user-defined
16a26996c30e moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents: 27599
diff changeset
   213
serializations are set.  Refer to the corresponding ML counterpart
16a26996c30e moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents: 27599
diff changeset
   214
directly in that cases.
16a26996c30e moved op dvd to theory Ring_and_Field; generalized a couple of lemmas
haftmann
parents: 27599
diff changeset
   215
27424
594fd97ce3d1 HOL += HOL-Complex
haftmann
parents: 27421
diff changeset
   216
* Integrated image HOL-Complex with HOL.  Entry points Main.thy and
594fd97ce3d1 HOL += HOL-Complex
haftmann
parents: 27421
diff changeset
   217
Complex_Main.thy remain as they are.
594fd97ce3d1 HOL += HOL-Complex
haftmann
parents: 27421
diff changeset
   218
27599
ca23ef50c178 added command 'linear_undo';
wenzelm
parents: 27556
diff changeset
   219
* New image HOL-Plain provides a minimal HOL with the most important
ca23ef50c178 added command 'linear_undo';
wenzelm
parents: 27556
diff changeset
   220
tools available (inductive, datatype, primrec, ...).  By convention
ca23ef50c178 added command 'linear_undo';
wenzelm
parents: 27556
diff changeset
   221
the corresponding theory Plain should be ancestor of every further
ca23ef50c178 added command 'linear_undo';
wenzelm
parents: 27556
diff changeset
   222
(library) theory.  Some library theories now have ancestor Plain
ca23ef50c178 added command 'linear_undo';
wenzelm
parents: 27556
diff changeset
   223
(instead of Main), thus theory Main occasionally has to be imported
ca23ef50c178 added command 'linear_undo';
wenzelm
parents: 27556
diff changeset
   224
explicitly.
27421
7e458bd56860 HOL += HOL-Complex
haftmann
parents: 27393
diff changeset
   225
28248
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28233
diff changeset
   226
* The metis method now fails in the usual manner, rather than raising
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28233
diff changeset
   227
an exception, if it determines that it cannot prove the theorem.
28233
f14f34194f63 The metis method now fails in the usual manner, rather than raising an exception,
paulson
parents: 28227
diff changeset
   228
28700
fb92b1d1b285 The metis method no longer fails because the theorem is too trivial
paulson
parents: 28685
diff changeset
   229
* The metis method no longer fails because the theorem is too trivial
fb92b1d1b285 The metis method no longer fails because the theorem is too trivial
paulson
parents: 28685
diff changeset
   230
(contains the empty clause).
fb92b1d1b285 The metis method no longer fails because the theorem is too trivial
paulson
parents: 28685
diff changeset
   231
27324
904acdaf4299 induct_tac: mutual rules work as for method "induct";
wenzelm
parents: 27305
diff changeset
   232
* Methods "case_tac" and "induct_tac" now refer to the very same rules
904acdaf4299 induct_tac: mutual rules work as for method "induct";
wenzelm
parents: 27305
diff changeset
   233
as the structured Isar versions "cases" and "induct", cf. the
904acdaf4299 induct_tac: mutual rules work as for method "induct";
wenzelm
parents: 27305
diff changeset
   234
corresponding "cases" and "induct" attributes.  Mutual induction rules
904acdaf4299 induct_tac: mutual rules work as for method "induct";
wenzelm
parents: 27305
diff changeset
   235
are now presented as a list of individual projections
904acdaf4299 induct_tac: mutual rules work as for method "induct";
wenzelm
parents: 27305
diff changeset
   236
(e.g. foo_bar.inducts for types foo and bar); the old format with
904acdaf4299 induct_tac: mutual rules work as for method "induct";
wenzelm
parents: 27305
diff changeset
   237
explicit HOL conjunction is no longer supported.  INCOMPATIBILITY, in
904acdaf4299 induct_tac: mutual rules work as for method "induct";
wenzelm
parents: 27305
diff changeset
   238
rare situations a different rule is selected --- notably nested tuple
904acdaf4299 induct_tac: mutual rules work as for method "induct";
wenzelm
parents: 27305
diff changeset
   239
elimination instead of former prod.exhaust: use explicit (case_tac t
904acdaf4299 induct_tac: mutual rules work as for method "induct";
wenzelm
parents: 27305
diff changeset
   240
rule: prod.exhaust) here.
27122
63d92a5e3784 proper news header;
wenzelm
parents: 27104
diff changeset
   241
27141
9bfcdb1905e1 * Attributes cases, induct, coinduct support del option.
wenzelm
parents: 27122
diff changeset
   242
* Attributes "cases", "induct", "coinduct" support "del" option.
9bfcdb1905e1 * Attributes cases, induct, coinduct support del option.
wenzelm
parents: 27122
diff changeset
   243
27122
63d92a5e3784 proper news header;
wenzelm
parents: 27104
diff changeset
   244
* Removed fact "case_split_thm", which duplicates "case_split".
63d92a5e3784 proper news header;
wenzelm
parents: 27104
diff changeset
   245
63d92a5e3784 proper news header;
wenzelm
parents: 27104
diff changeset
   246
* Command 'rep_datatype': instead of theorem names the command now
63d92a5e3784 proper news header;
wenzelm
parents: 27104
diff changeset
   247
takes a list of terms denoting the constructors of the type to be
63d92a5e3784 proper news header;
wenzelm
parents: 27104
diff changeset
   248
represented as datatype.  The characteristic theorems have to be
63d92a5e3784 proper news header;
wenzelm
parents: 27104
diff changeset
   249
proven.  INCOMPATIBILITY.  Also observe that the following theorems
63d92a5e3784 proper news header;
wenzelm
parents: 27104
diff changeset
   250
have disappeared in favour of existing ones:
63d92a5e3784 proper news header;
wenzelm
parents: 27104
diff changeset
   251
27104
791607529f6d rep_datatype command now takes list of constructors as input arguments
haftmann
parents: 27067
diff changeset
   252
    unit_induct                 ~> unit.induct
791607529f6d rep_datatype command now takes list of constructors as input arguments
haftmann
parents: 27067
diff changeset
   253
    prod_induct                 ~> prod.induct
791607529f6d rep_datatype command now takes list of constructors as input arguments
haftmann
parents: 27067
diff changeset
   254
    sum_induct                  ~> sum.induct
791607529f6d rep_datatype command now takes list of constructors as input arguments
haftmann
parents: 27067
diff changeset
   255
    Suc_Suc_eq                  ~> nat.inject
791607529f6d rep_datatype command now takes list of constructors as input arguments
haftmann
parents: 27067
diff changeset
   256
    Suc_not_Zero Zero_not_Suc   ~> nat.distinct
791607529f6d rep_datatype command now takes list of constructors as input arguments
haftmann
parents: 27067
diff changeset
   257
27122
63d92a5e3784 proper news header;
wenzelm
parents: 27104
diff changeset
   258
* Library/Nat_Infinity: added addition, numeral syntax and more
63d92a5e3784 proper news header;
wenzelm
parents: 27104
diff changeset
   259
instantiations for algebraic structures.  Removed some duplicate
63d92a5e3784 proper news header;
wenzelm
parents: 27104
diff changeset
   260
theorems.  Changes in simp rules.  INCOMPATIBILITY.
27104
791607529f6d rep_datatype command now takes list of constructors as input arguments
haftmann
parents: 27067
diff changeset
   261
28088
723735f2d73a * Name bindings in higher specification mechanisms;
wenzelm
parents: 28085
diff changeset
   262
* ATP selection (E/Vampire/Spass) is now via Proof General's settings
723735f2d73a * Name bindings in higher specification mechanisms;
wenzelm
parents: 28085
diff changeset
   263
menu.
28067
4b6783d3f0d9 *** empty log message ***
nipkow
parents: 28058
diff changeset
   264
27104
791607529f6d rep_datatype command now takes list of constructors as input arguments
haftmann
parents: 27067
diff changeset
   265
27696
15b65db66751 Unit_inv_l, Unit_inv_r made [simp];
ballarin
parents: 27681
diff changeset
   266
*** HOL-Algebra ***
15b65db66751 Unit_inv_l, Unit_inv_r made [simp];
ballarin
parents: 27681
diff changeset
   267
27713
95b36bfe7fc4 New locales for orders and lattices where the equivalence relation is not restricted to equality.
ballarin
parents: 27704
diff changeset
   268
* New locales for orders and lattices where the equivalence relation
95b36bfe7fc4 New locales for orders and lattices where the equivalence relation is not restricted to equality.
ballarin
parents: 27704
diff changeset
   269
  is not restricted to equality.  INCOMPATIBILITY: all order and
95b36bfe7fc4 New locales for orders and lattices where the equivalence relation is not restricted to equality.
ballarin
parents: 27704
diff changeset
   270
  lattice locales use a record structure with field eq for the
95b36bfe7fc4 New locales for orders and lattices where the equivalence relation is not restricted to equality.
ballarin
parents: 27704
diff changeset
   271
  equivalence.
95b36bfe7fc4 New locales for orders and lattices where the equivalence relation is not restricted to equality.
ballarin
parents: 27704
diff changeset
   272
95b36bfe7fc4 New locales for orders and lattices where the equivalence relation is not restricted to equality.
ballarin
parents: 27704
diff changeset
   273
* New theory of factorial domains.
95b36bfe7fc4 New locales for orders and lattices where the equivalence relation is not restricted to equality.
ballarin
parents: 27704
diff changeset
   274
27696
15b65db66751 Unit_inv_l, Unit_inv_r made [simp];
ballarin
parents: 27681
diff changeset
   275
* Units_l_inv and Units_r_inv are now simprules by default.
15b65db66751 Unit_inv_l, Unit_inv_r made [simp];
ballarin
parents: 27681
diff changeset
   276
INCOMPATIBILITY.  Simplifier proof that require deletion of l_inv
15b65db66751 Unit_inv_l, Unit_inv_r made [simp];
ballarin
parents: 27681
diff changeset
   277
and/or r_inv will now also require deletion of these lemmas.
15b65db66751 Unit_inv_l, Unit_inv_r made [simp];
ballarin
parents: 27681
diff changeset
   278
15b65db66751 Unit_inv_l, Unit_inv_r made [simp];
ballarin
parents: 27681
diff changeset
   279
* Renamed the following theorems.  INCOMPATIBILITY.
15b65db66751 Unit_inv_l, Unit_inv_r made [simp];
ballarin
parents: 27681
diff changeset
   280
UpperD ~> Upper_memD
15b65db66751 Unit_inv_l, Unit_inv_r made [simp];
ballarin
parents: 27681
diff changeset
   281
LowerD ~> Lower_memD
15b65db66751 Unit_inv_l, Unit_inv_r made [simp];
ballarin
parents: 27681
diff changeset
   282
least_carrier ~> least_closed
15b65db66751 Unit_inv_l, Unit_inv_r made [simp];
ballarin
parents: 27681
diff changeset
   283
greatest_carrier ~> greatest_closed
15b65db66751 Unit_inv_l, Unit_inv_r made [simp];
ballarin
parents: 27681
diff changeset
   284
greatest_Lower_above ~> greatest_Lower_below
27717
21bbd410ba04 Generalised polynomial lemmas from cring to ring.
ballarin
parents: 27713
diff changeset
   285
one_zero ~> carrier_one_zero
21bbd410ba04 Generalised polynomial lemmas from cring to ring.
ballarin
parents: 27713
diff changeset
   286
one_not_zero ~> carrier_one_not_zero  (collision with assumption)
27696
15b65db66751 Unit_inv_l, Unit_inv_r made [simp];
ballarin
parents: 27681
diff changeset
   287
27793
29ad1d91a5a3 tuned formatting;
wenzelm
parents: 27761
diff changeset
   288
27485
a5de2cbf548f HOL-NSA
huffman
parents: 27436
diff changeset
   289
*** HOL-NSA ***
a5de2cbf548f HOL-NSA
huffman
parents: 27436
diff changeset
   290
a5de2cbf548f HOL-NSA
huffman
parents: 27436
diff changeset
   291
* Created new image HOL-NSA, containing theories of nonstandard
a5de2cbf548f HOL-NSA
huffman
parents: 27436
diff changeset
   292
analysis which were previously part of HOL-Complex.  Entry point
a5de2cbf548f HOL-NSA
huffman
parents: 27436
diff changeset
   293
Hyperreal.thy remains valid, but theories formerly using
a5de2cbf548f HOL-NSA
huffman
parents: 27436
diff changeset
   294
Complex_Main.thy should now use new entry point Hypercomplex.thy.
a5de2cbf548f HOL-NSA
huffman
parents: 27436
diff changeset
   295
a5de2cbf548f HOL-NSA
huffman
parents: 27436
diff changeset
   296
27704
5b1585b48952 Zorn's Lemma for partial orders.
ballarin
parents: 27696
diff changeset
   297
*** ZF ***
5b1585b48952 Zorn's Lemma for partial orders.
ballarin
parents: 27696
diff changeset
   298
5b1585b48952 Zorn's Lemma for partial orders.
ballarin
parents: 27696
diff changeset
   299
* Proof of Zorn's Lemma for partial orders.
5b1585b48952 Zorn's Lemma for partial orders.
ballarin
parents: 27696
diff changeset
   300
5b1585b48952 Zorn's Lemma for partial orders.
ballarin
parents: 27696
diff changeset
   301
27246
df85326af57c * Rules and tactics that read instantiations now demand a proper context;
wenzelm
parents: 27200
diff changeset
   302
*** ML ***
28088
723735f2d73a * Name bindings in higher specification mechanisms;
wenzelm
parents: 28085
diff changeset
   303
28294
wenzelm
parents: 28290
diff changeset
   304
* Simplified ML oracle interface Thm.add_oracle promotes 'a -> cterm
wenzelm
parents: 28290
diff changeset
   305
to 'a -> thm, while results are always tagged with an authentic oracle
wenzelm
parents: 28290
diff changeset
   306
name.  The Isar command 'oracle' is now polymorphic, no argument type
wenzelm
parents: 28290
diff changeset
   307
is specified.  INCOMPATIBILITY, need to simplify existing oracle code
wenzelm
parents: 28290
diff changeset
   308
accordingly.  Note that extra performance may be gained by producing
wenzelm
parents: 28290
diff changeset
   309
the cterm carefully, avoiding slow Thm.cterm_of.
wenzelm
parents: 28290
diff changeset
   310
28282
44664ffc9725 * ML bindings produced via Isar commands are stored within the Isar context.
wenzelm
parents: 28254
diff changeset
   311
* ML bindings produced via Isar commands are stored within the Isar
44664ffc9725 * ML bindings produced via Isar commands are stored within the Isar context.
wenzelm
parents: 28254
diff changeset
   312
context (theory or proof).  Consequently, commands like 'use' and 'ML'
44664ffc9725 * ML bindings produced via Isar commands are stored within the Isar context.
wenzelm
parents: 28254
diff changeset
   313
become thread-safe and work with undo as expected (concerning
44664ffc9725 * ML bindings produced via Isar commands are stored within the Isar context.
wenzelm
parents: 28254
diff changeset
   314
top-level bindings, not side-effects on global references).
44664ffc9725 * ML bindings produced via Isar commands are stored within the Isar context.
wenzelm
parents: 28254
diff changeset
   315
INCOMPATIBILITY, need to provide proper Isar context when invoking the
44664ffc9725 * ML bindings produced via Isar commands are stored within the Isar context.
wenzelm
parents: 28254
diff changeset
   316
compiler at runtime; really global bindings need to be given outside a
44664ffc9725 * ML bindings produced via Isar commands are stored within the Isar context.
wenzelm
parents: 28254
diff changeset
   317
theory. [Poly/ML 5.2 or later]
44664ffc9725 * ML bindings produced via Isar commands are stored within the Isar context.
wenzelm
parents: 28254
diff changeset
   318
44664ffc9725 * ML bindings produced via Isar commands are stored within the Isar context.
wenzelm
parents: 28254
diff changeset
   319
* Command 'ML_prf' is analogous to 'ML' but works within a proof
44664ffc9725 * ML bindings produced via Isar commands are stored within the Isar context.
wenzelm
parents: 28254
diff changeset
   320
context. Top-level ML bindings are stored within the proof context in
44664ffc9725 * ML bindings produced via Isar commands are stored within the Isar context.
wenzelm
parents: 28254
diff changeset
   321
a purely sequential fashion, disregarding the nested proof structure.
44664ffc9725 * ML bindings produced via Isar commands are stored within the Isar context.
wenzelm
parents: 28254
diff changeset
   322
ML bindings introduced by 'ML_prf' are discarded at the end of the
44664ffc9725 * ML bindings produced via Isar commands are stored within the Isar context.
wenzelm
parents: 28254
diff changeset
   323
proof.  [Poly/ML 5.2 or later]
44664ffc9725 * ML bindings produced via Isar commands are stored within the Isar context.
wenzelm
parents: 28254
diff changeset
   324
28099
fb16a07d6580 * Generic Toplevel.add_hook interface allows to analyze the result of
wenzelm
parents: 28089
diff changeset
   325
* Generic Toplevel.add_hook interface allows to analyze the result of
28103
b79e61861f0f simplified Toplevel.add_hook: cover successful transactions only;
wenzelm
parents: 28099
diff changeset
   326
transactions.  E.g. see src/Pure/ProofGeneral/proof_general_pgip.ML
b79e61861f0f simplified Toplevel.add_hook: cover successful transactions only;
wenzelm
parents: 28099
diff changeset
   327
for theorem dependency output of transactions resulting in a new
b79e61861f0f simplified Toplevel.add_hook: cover successful transactions only;
wenzelm
parents: 28099
diff changeset
   328
theory state.
28099
fb16a07d6580 * Generic Toplevel.add_hook interface allows to analyze the result of
wenzelm
parents: 28089
diff changeset
   329
28088
723735f2d73a * Name bindings in higher specification mechanisms;
wenzelm
parents: 28085
diff changeset
   330
* Name bindings in higher specification mechanisms (notably
723735f2d73a * Name bindings in higher specification mechanisms;
wenzelm
parents: 28085
diff changeset
   331
LocalTheory.define, LocalTheory.note, and derived packages) are now
723735f2d73a * Name bindings in higher specification mechanisms;
wenzelm
parents: 28085
diff changeset
   332
formalized as type Name.binding, replacing old bstring.
723735f2d73a * Name bindings in higher specification mechanisms;
wenzelm
parents: 28085
diff changeset
   333
INCOMPATIBILITY, need to wrap strings via Name.binding function, see
723735f2d73a * Name bindings in higher specification mechanisms;
wenzelm
parents: 28085
diff changeset
   334
also Name.name_of.  Packages should pass name bindings given by the
723735f2d73a * Name bindings in higher specification mechanisms;
wenzelm
parents: 28085
diff changeset
   335
user to underlying specification mechanisms; this enables precise
723735f2d73a * Name bindings in higher specification mechanisms;
wenzelm
parents: 28085
diff changeset
   336
tracking of source positions, for example.
723735f2d73a * Name bindings in higher specification mechanisms;
wenzelm
parents: 28085
diff changeset
   337
28089
66ae1926482a * Result facts now refer to the *full* internal name;
wenzelm
parents: 28088
diff changeset
   338
* Result facts (from PureThy.note_thms, ProofContext.note_thms,
66ae1926482a * Result facts now refer to the *full* internal name;
wenzelm
parents: 28088
diff changeset
   339
LocalTheory.note etc.) now refer to the *full* internal name, not the
66ae1926482a * Result facts now refer to the *full* internal name;
wenzelm
parents: 28088
diff changeset
   340
bstring as before.  INCOMPATIBILITY, not detected by ML type-checking!
66ae1926482a * Result facts now refer to the *full* internal name;
wenzelm
parents: 28088
diff changeset
   341
27246
df85326af57c * Rules and tactics that read instantiations now demand a proper context;
wenzelm
parents: 27200
diff changeset
   342
* Rules and tactics that read instantiations (read_instantiate,
df85326af57c * Rules and tactics that read instantiations now demand a proper context;
wenzelm
parents: 27200
diff changeset
   343
res_inst_tac, thin_tac, subgoal_tac etc.) now demand a proper proof
df85326af57c * Rules and tactics that read instantiations now demand a proper context;
wenzelm
parents: 27200
diff changeset
   344
context, which is required for parsing and type-checking.  Moreover,
df85326af57c * Rules and tactics that read instantiations now demand a proper context;
wenzelm
parents: 27200
diff changeset
   345
the variables are specified as plain indexnames, not string encodings
df85326af57c * Rules and tactics that read instantiations now demand a proper context;
wenzelm
parents: 27200
diff changeset
   346
thereof.  INCOMPATIBILITY.
df85326af57c * Rules and tactics that read instantiations now demand a proper context;
wenzelm
parents: 27200
diff changeset
   347
27287
3b0d7a417a8b disposed Sign.read_typ etc;
wenzelm
parents: 27269
diff changeset
   348
* Disposed old type and term read functions (Sign.read_def_typ,
3b0d7a417a8b disposed Sign.read_typ etc;
wenzelm
parents: 27269
diff changeset
   349
Sign.read_typ, Sign.read_def_terms, Sign.read_term,
3b0d7a417a8b disposed Sign.read_typ etc;
wenzelm
parents: 27269
diff changeset
   350
Thm.read_def_cterms, Thm.read_cterm etc.).  INCOMPATIBILITY, should
3b0d7a417a8b disposed Sign.read_typ etc;
wenzelm
parents: 27269
diff changeset
   351
use regular Syntax.read_typ, Syntax.read_term, Syntax.read_typ_global,
27269
1e9c05cddc64 * Disposed old term read functions;
wenzelm
parents: 27246
diff changeset
   352
Syntax.read_term_global etc.; see also OldGoals.read_term as last
1e9c05cddc64 * Disposed old term read functions;
wenzelm
parents: 27246
diff changeset
   353
resort for legacy applications.
1e9c05cddc64 * Disposed old term read functions;
wenzelm
parents: 27246
diff changeset
   354
27380
ca505e7b7591 ML: improved antiquotations;
wenzelm
parents: 27324
diff changeset
   355
* Antiquotations: block-structured compilation context indicated by
27391
6c4649134fd6 additional ML antiquotations;
wenzelm
parents: 27381
diff changeset
   356
\<lbrace> ... \<rbrace>; additional antiquotation forms:
6c4649134fd6 additional ML antiquotations;
wenzelm
parents: 27381
diff changeset
   357
27519
59b54d80d2ae slightly improved @{lemma} (both for latex and ML);
wenzelm
parents: 27485
diff changeset
   358
  @{let ?pat = term}                      - term abbreviation (HO matching)
59b54d80d2ae slightly improved @{lemma} (both for latex and ML);
wenzelm
parents: 27485
diff changeset
   359
  @{note name = fact}                     - fact abbreviation
59b54d80d2ae slightly improved @{lemma} (both for latex and ML);
wenzelm
parents: 27485
diff changeset
   360
  @{thm fact}                             - singleton fact (with attributes)
59b54d80d2ae slightly improved @{lemma} (both for latex and ML);
wenzelm
parents: 27485
diff changeset
   361
  @{thms fact}                            - general fact (with attributes)
59b54d80d2ae slightly improved @{lemma} (both for latex and ML);
wenzelm
parents: 27485
diff changeset
   362
  @{lemma prop by method}                 - singleton goal
59b54d80d2ae slightly improved @{lemma} (both for latex and ML);
wenzelm
parents: 27485
diff changeset
   363
  @{lemma prop by meth1 meth2}            - singleton goal
59b54d80d2ae slightly improved @{lemma} (both for latex and ML);
wenzelm
parents: 27485
diff changeset
   364
  @{lemma prop1 ... propN by method}      - general goal
59b54d80d2ae slightly improved @{lemma} (both for latex and ML);
wenzelm
parents: 27485
diff changeset
   365
  @{lemma prop1 ... propN by meth1 meth2} - general goal
59b54d80d2ae slightly improved @{lemma} (both for latex and ML);
wenzelm
parents: 27485
diff changeset
   366
  @{lemma (open) ...}                     - open derivation
27380
ca505e7b7591 ML: improved antiquotations;
wenzelm
parents: 27324
diff changeset
   367
27246
df85326af57c * Rules and tactics that read instantiations now demand a proper context;
wenzelm
parents: 27200
diff changeset
   368
27979
58415a0de327 * Isabelle/lib/classes/Pure.jar;
wenzelm
parents: 27823
diff changeset
   369
*** System ***
58415a0de327 * Isabelle/lib/classes/Pure.jar;
wenzelm
parents: 27823
diff changeset
   370
28676
78688a5fafc2 multithreading support only for polyml-5.2.1 or later;
wenzelm
parents: 28633
diff changeset
   371
* Multithreading for Poly/ML 5.1/5.2 is no longer supported, only for
78688a5fafc2 multithreading support only for polyml-5.2.1 or later;
wenzelm
parents: 28633
diff changeset
   372
Poly/ML 5.2.1 or later.
28254
d67ba23e0277 multithreading for Poly/ML 5.1 is no longer supported;
wenzelm
parents: 28252
diff changeset
   373
28248
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28233
diff changeset
   374
* The Isabelle "emacs" tool provides a specific interface to invoke
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28233
diff changeset
   375
Proof General / Emacs, with more explicit failure if that is not
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28233
diff changeset
   376
installed (the old isabelle-interface script silently falls back on
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28233
diff changeset
   377
isabelle-process).  The PROOFGENERAL_HOME setting determines the
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28233
diff changeset
   378
installation location of the Proof General distribution.
b2869ebcf8e3 separate emacs tool for Proof General / Emacs;
wenzelm
parents: 28233
diff changeset
   379
27979
58415a0de327 * Isabelle/lib/classes/Pure.jar;
wenzelm
parents: 27823
diff changeset
   380
* Isabelle/lib/classes/Pure.jar provides basic support to integrate
58415a0de327 * Isabelle/lib/classes/Pure.jar;
wenzelm
parents: 27823
diff changeset
   381
the Isabelle process into a JVM/Scala application.  See
58415a0de327 * Isabelle/lib/classes/Pure.jar;
wenzelm
parents: 27823
diff changeset
   382
Isabelle/lib/jedit/plugin for a minimal example.  (The obsolete Java
58415a0de327 * Isabelle/lib/classes/Pure.jar;
wenzelm
parents: 27823
diff changeset
   383
process wrapper has been discontinued.)
58415a0de327 * Isabelle/lib/classes/Pure.jar;
wenzelm
parents: 27823
diff changeset
   384
58415a0de327 * Isabelle/lib/classes/Pure.jar;
wenzelm
parents: 27823
diff changeset
   385
* Status messages (with exact source position information) are
58415a0de327 * Isabelle/lib/classes/Pure.jar;
wenzelm
parents: 27823
diff changeset
   386
emitted, if proper markup print mode is enabled.  This allows
58415a0de327 * Isabelle/lib/classes/Pure.jar;
wenzelm
parents: 27823
diff changeset
   387
user-interface components to provide detailed feedback on internal
58415a0de327 * Isabelle/lib/classes/Pure.jar;
wenzelm
parents: 27823
diff changeset
   388
prover operations.
58415a0de327 * Isabelle/lib/classes/Pure.jar;
wenzelm
parents: 27823
diff changeset
   389
58415a0de327 * Isabelle/lib/classes/Pure.jar;
wenzelm
parents: 27823
diff changeset
   390
* Homegrown Isabelle font with unicode layout, see Isabelle/lib/fonts.
58415a0de327 * Isabelle/lib/classes/Pure.jar;
wenzelm
parents: 27823
diff changeset
   391
58415a0de327 * Isabelle/lib/classes/Pure.jar;
wenzelm
parents: 27823
diff changeset
   392
27143
574a09bcdb02 tuned spacing;
wenzelm
parents: 27141
diff changeset
   393
27008
9e39f5403db7 misc tuning for Isabelle2008;
wenzelm
parents: 26964
diff changeset
   394
New in Isabelle2008 (June 2008)
9e39f5403db7 misc tuning for Isabelle2008;
wenzelm
parents: 26964
diff changeset
   395
-------------------------------
25464
0ca80ce89001 moved new NEWS from Isabelle2007 to this Isabelle version'';
wenzelm
parents: 25459
diff changeset
   396
25522
26851f8bdf14 \<chi> is now considered a letter;
wenzelm
parents: 25510
diff changeset
   397
*** General ***
26851f8bdf14 \<chi> is now considered a letter;
wenzelm
parents: 25510
diff changeset
   398
27061
a057cb0d7d55 reorganized isar-ref;
wenzelm
parents: 27008
diff changeset
   399
* The Isabelle/Isar Reference Manual (isar-ref) has been reorganized
a057cb0d7d55 reorganized isar-ref;
wenzelm
parents: 27008
diff changeset
   400
and updated, with formally checked references as hyperlinks.
a057cb0d7d55 reorganized isar-ref;
wenzelm
parents: 27008
diff changeset
   401
25994
d35484265f46 use_thy: do not set implicit ML context anymore;
wenzelm
parents: 25971
diff changeset
   402
* Theory loader: use_thy (and similar operations) no longer set the
d35484265f46 use_thy: do not set implicit ML context anymore;
wenzelm
parents: 25971
diff changeset
   403
implicit ML context, which was occasionally hard to predict and in
d35484265f46 use_thy: do not set implicit ML context anymore;
wenzelm
parents: 25971
diff changeset
   404
conflict with concurrency.  INCOMPATIBILITY, use ML within Isar which
d35484265f46 use_thy: do not set implicit ML context anymore;
wenzelm
parents: 25971
diff changeset
   405
provides a proper context already.
d35484265f46 use_thy: do not set implicit ML context anymore;
wenzelm
parents: 25971
diff changeset
   406
26323
73efc70edeef theory loader: discontinued *attached* ML scripts;
wenzelm
parents: 26315
diff changeset
   407
* Theory loader: old-style ML proof scripts being *attached* to a thy
73efc70edeef theory loader: discontinued *attached* ML scripts;
wenzelm
parents: 26315
diff changeset
   408
file are no longer supported.  INCOMPATIBILITY, regular 'uses' and
73efc70edeef theory loader: discontinued *attached* ML scripts;
wenzelm
parents: 26315
diff changeset
   409
'use' within a theory file will do the job.
73efc70edeef theory loader: discontinued *attached* ML scripts;
wenzelm
parents: 26315
diff changeset
   410
26650
f131f0fbf9cd * Name space merge now observes canonical order;
wenzelm
parents: 26575
diff changeset
   411
* Name space merge now observes canonical order, i.e. the second space
f131f0fbf9cd * Name space merge now observes canonical order;
wenzelm
parents: 26575
diff changeset
   412
is inserted into the first one, while existing entries in the first
26659
wenzelm
parents: 26650
diff changeset
   413
space take precedence.  INCOMPATIBILITY in rare situations, may try to
26650
f131f0fbf9cd * Name space merge now observes canonical order;
wenzelm
parents: 26575
diff changeset
   414
swap theory imports.
f131f0fbf9cd * Name space merge now observes canonical order;
wenzelm
parents: 26575
diff changeset
   415
27067
f8a7aff41acb some reorganization and fine-tuning;
wenzelm
parents: 27061
diff changeset
   416
* Syntax: symbol \<chi> is now considered a letter.  Potential
f8a7aff41acb some reorganization and fine-tuning;
wenzelm
parents: 27061
diff changeset
   417
INCOMPATIBILITY in identifier syntax etc.
f8a7aff41acb some reorganization and fine-tuning;
wenzelm
parents: 27061
diff changeset
   418
f8a7aff41acb some reorganization and fine-tuning;
wenzelm
parents: 27061
diff changeset
   419
* Outer syntax: string tokens no longer admit escaped white space,
f8a7aff41acb some reorganization and fine-tuning;
wenzelm
parents: 27061
diff changeset
   420
which was an accidental (undocumented) feature.  INCOMPATIBILITY, use
f8a7aff41acb some reorganization and fine-tuning;
wenzelm
parents: 27061
diff changeset
   421
white space without escapes.
f8a7aff41acb some reorganization and fine-tuning;
wenzelm
parents: 27061
diff changeset
   422
f8a7aff41acb some reorganization and fine-tuning;
wenzelm
parents: 27061
diff changeset
   423
* Outer syntax: string tokens may contain arbitrary character codes
f8a7aff41acb some reorganization and fine-tuning;
wenzelm
parents: 27061
diff changeset
   424
specified via 3 decimal digits (as in SML).  E.g. "foo\095bar" for
f8a7aff41acb some reorganization and fine-tuning;
wenzelm
parents: 27061
diff changeset
   425
"foo_bar".
f8a7aff41acb some reorganization and fine-tuning;
wenzelm
parents: 27061
diff changeset
   426
25522
26851f8bdf14 \<chi> is now considered a letter;
wenzelm
parents: 25510
diff changeset
   427
25502
9200b36280c0 instance command as rudimentary class target
haftmann
parents: 25464
diff changeset
   428
*** Pure ***
9200b36280c0 instance command as rudimentary class target
haftmann
parents: 25464
diff changeset
   429
26718
0c652e82fdf4 * Context-dependent token translations.
wenzelm
parents: 26681
diff changeset
   430
* Context-dependent token translations.  Default setup reverts locally
0c652e82fdf4 * Context-dependent token translations.
wenzelm
parents: 26681
diff changeset
   431
fixed variables, and adds hilite markup for undeclared frees.
0c652e82fdf4 * Context-dependent token translations.
wenzelm
parents: 26681
diff changeset
   432
26681
19e1d3c96f2f Added entry for unused_thms command.
berghofe
parents: 26660
diff changeset
   433
* Unused theorems can be found using the new command 'unused_thms'.
19e1d3c96f2f Added entry for unused_thms command.
berghofe
parents: 26660
diff changeset
   434
There are three ways of invoking it:
19e1d3c96f2f Added entry for unused_thms command.
berghofe
parents: 26660
diff changeset
   435
19e1d3c96f2f Added entry for unused_thms command.
berghofe
parents: 26660
diff changeset
   436
(1) unused_thms
19e1d3c96f2f Added entry for unused_thms command.
berghofe
parents: 26660
diff changeset
   437
     Only finds unused theorems in the current theory.
19e1d3c96f2f Added entry for unused_thms command.
berghofe
parents: 26660
diff changeset
   438
19e1d3c96f2f Added entry for unused_thms command.
berghofe
parents: 26660
diff changeset
   439
(2) unused_thms thy_1 ... thy_n -
19e1d3c96f2f Added entry for unused_thms command.
berghofe
parents: 26660
diff changeset
   440
     Finds unused theorems in the current theory and all of its ancestors,
19e1d3c96f2f Added entry for unused_thms command.
berghofe
parents: 26660
diff changeset
   441
     excluding the theories thy_1 ... thy_n and all of their ancestors.
19e1d3c96f2f Added entry for unused_thms command.
berghofe
parents: 26660
diff changeset
   442
19e1d3c96f2f Added entry for unused_thms command.
berghofe
parents: 26660
diff changeset
   443
(3) unused_thms thy_1 ... thy_n - thy'_1 ... thy'_m
19e1d3c96f2f Added entry for unused_thms command.
berghofe
parents: 26660
diff changeset
   444
     Finds unused theorems in the theories thy'_1 ... thy'_m and all of
19e1d3c96f2f Added entry for unused_thms command.
berghofe
parents: 26660
diff changeset
   445
     their ancestors, excluding the theories thy_1 ... thy_n and all of
19e1d3c96f2f Added entry for unused_thms command.
berghofe
parents: 26660
diff changeset
   446
     their ancestors.
19e1d3c96f2f Added entry for unused_thms command.
berghofe
parents: 26660
diff changeset
   447
26718
0c652e82fdf4 * Context-dependent token translations.
wenzelm
parents: 26681
diff changeset
   448
In order to increase the readability of the list produced by
0c652e82fdf4 * Context-dependent token translations.
wenzelm
parents: 26681
diff changeset
   449
unused_thms, theorems that have been created by a particular instance
26874
b2daa27fc0a7 misc tuning;
wenzelm
parents: 26765
diff changeset
   450
of a theory command such as 'inductive' or 'function' are considered
b2daa27fc0a7 misc tuning;
wenzelm
parents: 26765
diff changeset
   451
to belong to the same "group", meaning that if at least one theorem in
26718
0c652e82fdf4 * Context-dependent token translations.
wenzelm
parents: 26681
diff changeset
   452
this group is used, the other theorems in the same group are no longer
0c652e82fdf4 * Context-dependent token translations.
wenzelm
parents: 26681
diff changeset
   453
reported as unused.  Moreover, if all theorems in the group are
0c652e82fdf4 * Context-dependent token translations.
wenzelm
parents: 26681
diff changeset
   454
unused, only one theorem in the group is displayed.
0c652e82fdf4 * Context-dependent token translations.
wenzelm
parents: 26681
diff changeset
   455
0c652e82fdf4 * Context-dependent token translations.
wenzelm
parents: 26681
diff changeset
   456
Note that proof objects have to be switched on in order for
0c652e82fdf4 * Context-dependent token translations.
wenzelm
parents: 26681
diff changeset
   457
unused_thms to work properly (i.e. !proofs must be >= 1, which is
26874
b2daa27fc0a7 misc tuning;
wenzelm
parents: 26765
diff changeset
   458
usually the case when using Proof General with the default settings).
26681
19e1d3c96f2f Added entry for unused_thms command.
berghofe
parents: 26660
diff changeset
   459
26650
f131f0fbf9cd * Name space merge now observes canonical order;
wenzelm
parents: 26575
diff changeset
   460
* Authentic naming of facts disallows ad-hoc overwriting of previous
f131f0fbf9cd * Name space merge now observes canonical order;
wenzelm
parents: 26575
diff changeset
   461
theorems within the same name space.  INCOMPATIBILITY, need to remove
f131f0fbf9cd * Name space merge now observes canonical order;
wenzelm
parents: 26575
diff changeset
   462
duplicate fact bindings, or even accidental fact duplications.  Note
f131f0fbf9cd * Name space merge now observes canonical order;
wenzelm
parents: 26575
diff changeset
   463
that tools may maintain dynamically scoped facts systematically, using
f131f0fbf9cd * Name space merge now observes canonical order;
wenzelm
parents: 26575
diff changeset
   464
PureThy.add_thms_dynamic.
f131f0fbf9cd * Name space merge now observes canonical order;
wenzelm
parents: 26575
diff changeset
   465
26660
f978a6f48949 added hide fact;
wenzelm
parents: 26659
diff changeset
   466
* Command 'hide' now allows to hide from "fact" name space as well.
f978a6f48949 added hide fact;
wenzelm
parents: 26659
diff changeset
   467
26496
49ae9456eba9 purely functional setup of claset/simpset/clasimpset;
wenzelm
parents: 26495
diff changeset
   468
* Eliminated destructive theorem database, simpset, claset, and
49ae9456eba9 purely functional setup of claset/simpset/clasimpset;
wenzelm
parents: 26495
diff changeset
   469
clasimpset.  Potential INCOMPATIBILITY, really need to observe linear
49ae9456eba9 purely functional setup of claset/simpset/clasimpset;
wenzelm
parents: 26495
diff changeset
   470
update of theories within ML code.
26479
3a2efce3e992 * Eliminated destructive theorem database.
wenzelm
parents: 26445
diff changeset
   471
26955
ebbaa935eae0 * Eliminated theory ProtoPure and CPure, leaving just one Pure theory.
wenzelm
parents: 26925
diff changeset
   472
* Eliminated theory ProtoPure and CPure, leaving just one Pure theory.
ebbaa935eae0 * Eliminated theory ProtoPure and CPure, leaving just one Pure theory.
wenzelm
parents: 26925
diff changeset
   473
INCOMPATIBILITY, object-logics depending on former Pure require
ebbaa935eae0 * Eliminated theory ProtoPure and CPure, leaving just one Pure theory.
wenzelm
parents: 26925
diff changeset
   474
additional setup PureThy.old_appl_syntax_setup; object-logics
ebbaa935eae0 * Eliminated theory ProtoPure and CPure, leaving just one Pure theory.
wenzelm
parents: 26925
diff changeset
   475
depending on former CPure need to refer to Pure.
26650
f131f0fbf9cd * Name space merge now observes canonical order;
wenzelm
parents: 26575
diff changeset
   476
26495
dd8996960cb0 fixed spelling;
wenzelm
parents: 26479
diff changeset
   477
* Commands 'use' and 'ML' are now purely functional, operating on
26479
3a2efce3e992 * Eliminated destructive theorem database.
wenzelm
parents: 26445
diff changeset
   478
theory/local_theory.  Removed former 'ML_setup' (on theory), use 'ML'
3a2efce3e992 * Eliminated destructive theorem database.
wenzelm
parents: 26445
diff changeset
   479
instead.  Added 'ML_val' as mere diagnostic replacement for 'ML'.
3a2efce3e992 * Eliminated destructive theorem database.
wenzelm
parents: 26445
diff changeset
   480
INCOMPATIBILITY.
3a2efce3e992 * Eliminated destructive theorem database.
wenzelm
parents: 26445
diff changeset
   481
26874
b2daa27fc0a7 misc tuning;
wenzelm
parents: 26765
diff changeset
   482
* Command 'setup': discontinued implicit version with ML reference.
26434
d004b791218e Command 'setup': discontinued implicit version.
wenzelm
parents: 26422
diff changeset
   483
25970
9053fd546501 * Default settings: PROOFGENERAL_OPTIONS no longer impose xemacs here;
wenzelm
parents: 25961
diff changeset
   484
* Instantiation target allows for simultaneous specification of class
9053fd546501 * Default settings: PROOFGENERAL_OPTIONS no longer impose xemacs here;
wenzelm
parents: 25961
diff changeset
   485
instance operations together with an instantiation proof.
9053fd546501 * Default settings: PROOFGENERAL_OPTIONS no longer impose xemacs here;
wenzelm
parents: 25961
diff changeset
   486
Type-checking phase allows to refer to class operations uniformly.
27067
f8a7aff41acb some reorganization and fine-tuning;
wenzelm
parents: 27061
diff changeset
   487
See src/HOL/Complex/Complex.thy for an Isar example and
f8a7aff41acb some reorganization and fine-tuning;
wenzelm
parents: 27061
diff changeset
   488
src/HOL/Library/Eval.thy for an ML example.
25502
9200b36280c0 instance command as rudimentary class target
haftmann
parents: 25464
diff changeset
   489
26201
d3363a854708 indexing literal facts: exclude background context;
wenzelm
parents: 26197
diff changeset
   490
* Indexing of literal facts: be more serious about including only
d3363a854708 indexing literal facts: exclude background context;
wenzelm
parents: 26197
diff changeset
   491
facts from the visible specification/proof context, but not the
d3363a854708 indexing literal facts: exclude background context;
wenzelm
parents: 26197
diff changeset
   492
background context (locale etc.).  Affects `prop` notation and method
d3363a854708 indexing literal facts: exclude background context;
wenzelm
parents: 26197
diff changeset
   493
"fact".  INCOMPATIBILITY: need to name facts explicitly in rare
d3363a854708 indexing literal facts: exclude background context;
wenzelm
parents: 26197
diff changeset
   494
situations.
d3363a854708 indexing literal facts: exclude background context;
wenzelm
parents: 26197
diff changeset
   495
26925
ce964f0df281 * Method "cases", "induct", "coinduct": removed obsolete "(open)" option;
wenzelm
parents: 26920
diff changeset
   496
* Method "cases", "induct", "coinduct": removed obsolete/undocumented
ce964f0df281 * Method "cases", "induct", "coinduct": removed obsolete "(open)" option;
wenzelm
parents: 26920
diff changeset
   497
"(open)" option, which used to expose internal bound variables to the
ce964f0df281 * Method "cases", "induct", "coinduct": removed obsolete "(open)" option;
wenzelm
parents: 26920
diff changeset
   498
proof text.
ce964f0df281 * Method "cases", "induct", "coinduct": removed obsolete "(open)" option;
wenzelm
parents: 26920
diff changeset
   499
ce964f0df281 * Method "cases", "induct", "coinduct": removed obsolete "(open)" option;
wenzelm
parents: 26920
diff changeset
   500
* Isar statements: removed obsolete case "rule_context".
ce964f0df281 * Method "cases", "induct", "coinduct": removed obsolete "(open)" option;
wenzelm
parents: 26920
diff changeset
   501
INCOMPATIBILITY, better use explicit fixes/assumes.
ce964f0df281 * Method "cases", "induct", "coinduct": removed obsolete "(open)" option;
wenzelm
parents: 26920
diff changeset
   502
26874
b2daa27fc0a7 misc tuning;
wenzelm
parents: 26765
diff changeset
   503
* Locale proofs: default proof step now includes 'unfold_locales';
b2daa27fc0a7 misc tuning;
wenzelm
parents: 26765
diff changeset
   504
hence 'proof' without argument may be used to unfold locale
b2daa27fc0a7 misc tuning;
wenzelm
parents: 26765
diff changeset
   505
predicates.
26765
f2ea56490bfb unfold_locales part of default method.
ballarin
parents: 26762
diff changeset
   506
f2ea56490bfb unfold_locales part of default method.
ballarin
parents: 26762
diff changeset
   507
26762
78ed28528ca6 added lemma antiquotation
haftmann
parents: 26748
diff changeset
   508
*** Document preparation ***
78ed28528ca6 added lemma antiquotation
haftmann
parents: 26748
diff changeset
   509
26914
a4b7fe1068f9 * Simplified pdfsetup.sty;
wenzelm
parents: 26877
diff changeset
   510
* Simplified pdfsetup.sty: color/hyperref is used unconditionally for
a4b7fe1068f9 * Simplified pdfsetup.sty;
wenzelm
parents: 26877
diff changeset
   511
both pdf and dvi (hyperlinks usually work in xdvi as well); removed
a4b7fe1068f9 * Simplified pdfsetup.sty;
wenzelm
parents: 26877
diff changeset
   512
obsolete thumbpdf setup (contemporary PDF viewers do this on the
a4b7fe1068f9 * Simplified pdfsetup.sty;
wenzelm
parents: 26877
diff changeset
   513
spot); renamed link color from "darkblue" to "linkcolor" (default
26920
wenzelm
parents: 26914
diff changeset
   514
value unchanged, can be redefined via \definecolor); no longer sets
wenzelm
parents: 26914
diff changeset
   515
"a4paper" option (unnecessary or even intrusive).
26914
a4b7fe1068f9 * Simplified pdfsetup.sty;
wenzelm
parents: 26877
diff changeset
   516
27008
9e39f5403db7 misc tuning for Isabelle2008;
wenzelm
parents: 26964
diff changeset
   517
* Antiquotation @{lemma A method} proves proposition A by the given
9e39f5403db7 misc tuning for Isabelle2008;
wenzelm
parents: 26964
diff changeset
   518
method (either a method name or a method name plus (optional) method